В этом посте вы можете понять основы самой известной модели регрессии. Линейная регрессия.

Что такое линейная регрессия?

Линейная регрессия — это статистическая модель, которая анализирует отношения между зависимой переменной (часто называемой y) и одной или несколькими переменными и их взаимодействиями (часто называемыми x или независимыми переменными).

Линейная регрессия пытается смоделировать взаимосвязь между двумя или более переменными путем подгонки линейного уравнения к наблюдаемым данным. Линия линейной регрессии имеет уравнение формы Y = β0 + β1*X1 +β2*X2 …, где X1 и X2 — независимые переменные, а Y — зависимая переменная, здесь β0 — это точки пересечения β1, β2 — наклоны соответствующих наклонов X1, X2.

Примеры: мы можем предсказать высоту мангового дерева по размеру его ствола (чем толще ствол, тем выше будет дерево), мы можем предсказать пробег (миль на галлон) автомобиля в зависимости от его веса или мощности (лошадиной силы), например легче машина выше будет пробег и т.д.

Регрессия имеет много практических применений. Если целью является предсказание, прогнозирование, уменьшение ошибок, линейная регрессия может использоваться для подгонки прогностической модели к наблюдаемому набору данных значений зависимых и независимых переменных.

Теперь мы собираемся построить линейную модель для прогнозирования количества занятых в зависимости от других экономических переменных, используя набор данных Лонгли (доступен в R).

Создание модели линейной регрессии

Перед созданием регрессионной модели мы должны рассмотреть следующие моменты для точных прогнозов:

Сначала построим линейную модель с одной независимой переменной.

На приведенном ниже графике мы видим, что существует линейная зависимость между ВНП и занятостью.

Разделение набора данных

Разделите набор данных на тестовые и обучающие данные. Обучающие данные — это те, на которых мы обучаем и подгоняем нашу модель в основном для соответствия параметрам, тогда как тестовые данные используются только для оценки производительности модели.

Существует множество подходов к разделению набора данных. Приведенные ниже команды можно использовать для разделения набора данных на данные тестирования и обучения. Пакет caTools содержит несколько основных служебных функций, одна из них — sample.split, которую мы используем для разделения набора данных. Разделение S Sample разделит набор данных поровну в отношении 7:3, где 70% записей будут помечены как истинные, а остальные 30% будут помечены как ложные, и эти значения будут сохранены в переменной (в данном случае spl). В строке 64 команда subset назначает все записи из набора данных lon, где spl имеет значение TRUE, для lon_train, аналогично в строке 65 команда subset назначает все записи из набора данных lon, где spl имеет значение FALSE, для lon_test.

Модель

Линейную регрессию можно рассчитать в R с помощью команды lm. Команда lm принимает переменные в формате:

lm([dependent variable] ~ [independent variables], data = [data source])

С помощью команды summary(modEmployed) можно посмотреть подробную информацию о производительности модели и коэффициентах.

Коэффициенты

В красном квадрате показаны значения точки пересечения (значение «β0») и наклона (значение «β1») для возраста. Эти значения «β0» и «β1» строят линию между всеми точками данных. В этом случае, если ВНП равен 300, β0 равен 51,927277, а b равен 0,034520, модель предсказывает (в среднем), что количество занятых для ВНП 300 составляет около 51,92 + (0,035 * 300) = 62,42.

В R, чтобы добавить еще один коэффициент, добавьте символ «+» для каждой дополнительной переменной, которую вы хотите добавить в модель.

Красный прямоугольник указывает p-значения для коэффициентов ВНП и Вооруженных сил. Проще говоря, p-значение указывает, можете ли вы отвергнуть или принять гипотезу. Гипотеза в этом случае состоит в том, что независимые переменные не имеют значения для вашей модели. Количество звездочек указывает, насколько важна переменная для вашей модели. В этом случае мы видим, что ВНП очень важен для прогнозирования, а вооруженные силы не участвуют в прогнозировании занятости.

  • Значение p для возраста составляет 6,88e-13 или 0,0000169. Очень маленькое значение означает, что возраст, вероятно, является отличным дополнением к вашей модели.
  • Значение p для вооруженных сил составляет 0,3. Другими словами, высока вероятность того, что этот предиктор не имеет смысла для регрессии.

Стандартный способ проверить, не являются ли предикторы бессмысленными, — посмотреть, меньше ли p-значения, чем 0,05.

Остатки

Хороший способ проверить качество модели — посмотреть на остатки или различия между реальными значениями и прогнозируемыми значениями. Прямая линия на изображении ниже представляет прогнозируемые значения. Красная вертикальная линия, идущая от прямой линии к наблюдаемому значению данных, является невязкой.

Идея здесь в том, что сумма остатков приблизительно равна нулю или настолько мала, насколько это возможно. В реальной жизни большинство случаев не будут следовать идеально прямой линии, поэтому возможны остатки. В сводке R функции lm вы можете увидеть описательную статистику об остатках модели, следуя тому же примеру, красный квадрат показывает, что остатки приблизительно равны нулю. Остатки распределяются нормально (с медианой примерно 0), даже если наша прогнозируемая переменная искажена. Пожалуйста, найдите ниже сводку об остатках этой модели

Прогноз

Функция predict используется для зависимой переменной для тестовых данных.

predict(model, newdata=dataset, interval = "prediction")

это дает нам 3 значения, наиболее подходящие, нижний диапазон и верхний диапазон. Если мы не укажем 3-й параметр, т.е. predict(model, newdata=dataset), на выходе будет только лучшая линия фила.

Как проверить, подходит ли ваша линейная модель?

Наиболее распространенным значением для проверки того, насколько хороша ваша модель, является коэффициент детерминации или R-квадрат. R-квадрат — это статистическая мера того, насколько данные близки к подобранной линии регрессии. Значения R-квадрата варьируются от 0 до 1 и обычно указываются в процентах от 0% до 100%. R-квадрат, равный 100 %, означает, что все движения зависимой переменной (в данном случае занятой) полностью объясняются движениями независимых переменных (в данном случае ВНП и вооруженных сил).

Формула R-квадрата:

R-квадрат=1-SSE/SST

SSE=∑ni(yi−2 & SST=∑ni(yi−yi¯)²

Здесь — подобранное значение для наблюдения i, а yi¯ — среднее значение Y.

Обратите внимание, что в зеленом прямоугольнике есть два разных R² из сводки модели, один кратный и один скорректированный. Множитель — это R², который вы видели ранее. Одна из проблем с этим R² заключается в том, что он не может уменьшаться по мере того, как вы добавляете в свою модель больше независимых переменных, он будет продолжать увеличиваться по мере того, как вы усложняете модель, даже если эти переменные ничего не добавляют к вашим прогнозам (как в примере с Вооруженные силы). По этой причине скорректированный R², вероятно, лучше смотреть, если вы добавляете в модель более одной переменной, поскольку он увеличивается только в том случае, если уменьшает общую ошибку прогнозов. Сочетание высокого значения R-квадрата и низких или почти нулевых остатков составляет хорошую модель.

Заключение

Линейная регрессия — это самый простой и важный алгоритм модели регрессии. Вы можете ввести «?lm» в консоли, чтобы просмотреть все параметры, которые здесь не описаны. Он существует с 19 века и останется надолго. Если вас интересуют статистические модели, начните с линейной регрессии.

Дайте мне знать ваши взгляды на этот пост, комментируя ниже.

получить больше интересных статей по R Tutorials, Python Tutorials

Первоначально опубликовано на https://datasciencencamp.com 14 апреля 2019 г.