Построение модели линейной регрессии - это только первый шаг. Определенные условия должны быть выполнены, прежде чем мы сделаем выводы относительно оценок модели или перед тем, как мы будем использовать модель для прогнозирования.

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

В этой статье я объясню ключевые предположения линейной регрессии, почему она важна и как мы можем проверить то же самое с помощью Python. Я также расскажу о мерах по устранению недостатков в случае, если предположения не оправдаются.

Допущения линейной регрессии:

Предположение 1

Функциональная форма регрессии указана правильно, т.е. существует линейная зависимость между коэффициентом параметров (независимых переменных) и зависимой переменной Y.

Предположение 2

Остатки распределены нормально.

Предположение 3

Дисперсия остатков постоянна для всех значений независимой переменной X (также известной как «гомоскедастичность»).

Предположение 4

Между ошибками нет автокорреляции.

Предположение 5

Нет (низкой) корреляции между независимыми переменными (также известной как «мультиколлинеарность»).

Давайте подробно рассмотрим эти предположения.

Предположение 1. Функциональная форма регрессии указана правильно.

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

Таким образом, становится важным подтвердить это предположение. Это делается путем построения графиков остатков.

В случае простой модели линейной регрессии только с одной независимой переменной мы строим зависимости остатков от предиктора, то есть ошибки от предиктора X1. В случае множественной линейной регрессии, когда у нас более одного предиктора, мы наносим на график остаток и прогнозируемое или подобранное значение ŷ.

График остатков не должен показывать какой-либо закономерности, т. Е. Остатки должны быть случайным образом распределены по горизонтальной оси. В случае наличия шаблона мы можем сделать вывод, что существует проблема с некоторым аспектом линейной модели, то есть была использована неправильная функциональная форма. Это также называется «Модель- Неправильная спецификация».

В случае нелинейной ассоциации мы можем использовать нелинейное преобразование предикторов, таких как log X, X², sqrt (X) в регрессионной модели.

Пример остаточного графика с нелинейной связью показан ниже.

Построение остаточного графика в Python:

Рассчитайте остатки как:

остатки = y_test - y_pred

Просто постройте диаграмму разброса остатков и предсказанных значений y. Код выглядит следующим образом:
import matplotlib.pyplot as plt
plt.scatter (y_pred, остатки)

Предположение 2: остатки обычно распределяются

Построение модели линейной регрессии состоит из двух очень важных шагов - оценки и проверки гипотез. Используя метод обыкновенных наименьших квадратов (OLS), мы можем оценить параметры Beta 1, Beta 2 и так далее. Значение этих параметров будет меняться от выборки к выборке, и, следовательно, мы можем сказать, что эти оценки являются случайными величинами.

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

Таким образом, нам необходимо выяснить их вероятностные распределения, без которых мы не сможем соотнести их с их истинными значениями.

Используя OLS, получаем Beta hat = ∑ (ki ∗ Yi), где ki = Xi / ∑ (Xi) ²

Здесь i = 1,2,3,4, .... n наблюдений.

Здесь X нестохастический, Ki - константа. Таким образом, бета-шляпа (оценочная бета) является линейной функцией Yi.

Мы можем записать приведенное выше уравнение как:

β2 hat = ∑ ki * (β1 + β2 ∗ Xi + ui), поскольку Yi = β1 + β2 * Xi + Error (ui)

Поскольку k, X постоянны, β2, в конечном счете, является линейной функцией случайной величины ui.
Таким образом, распределение вероятностей бета будет зависеть от предположения, сделанного о распределении вероятностей члена ошибки или остаточный срок ui.

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

Почему нормальное распределение?

Ошибка - это совокупное влияние одной или нескольких независимых переменных, не включенных в модель. Центральная предельная теорема утверждает, что если существует большое количество независимых и одинаково распределенных случайных величин, то распределение их суммы имеет тенденцию к нормальному распределению по мере увеличения числа переменных. Таким образом, CLT теоретически объясняет причину, по которой для ошибок предполагается "нормальное распределение".

Выполнение этого предположения позволяет нам вывести распределение вероятностей оценок МНК, поскольку любая линейная функция нормально распределенной переменной сама по себе нормально распределена. Таким образом, оценки МНК также имеют нормальное распределение. Это также позволяет нам использовать t- и F-тесты для проверки гипотез.

Как определить, распространяются ли ошибки нормально?

Самый простой способ проверить, нормально ли распределены ошибки, - это использовать график P-P (вероятность - вероятность).

График P-P оценивает, насколько точно теоретическое распределение моделирует данное распределение данных. График нормальной вероятности остатков - это график рассеяния с теоретическими процентилями нормального распределения по оси x и выборочными процентилями остатков по оси y.

Линия сравнения - диагональная линия 45 градусов. Диагональная линия, проходящая через нижний и верхний процентили теоретического распределения, дает наглядное пособие, помогающее оценить, является ли соотношение между теоретическим и выборочным процентилями линейным. Распределения равны тогда и только тогда, когда график попадает на эту линию. Любое отклонение от этой линии указывает на разницу между двумя распределениями.

Ниже приведен пример графика P-P, где распределение ошибок не является нормальным.

Вот график P-P, где распределение ошибок приблизительно нормальное.

Построение графика P-P в Python:

Приведенный выше код запускается для получения следующего вывода:
normality_plot = sm.qqplot (остаток, строка = ‘r’)

Помимо графика P-P, более статистическим способом проверки нормальности ошибок является проведение теста Андерсона Дарлинга.

Тест Андерсона Дарлинга для проверки нормальности ошибок

Статистика Андерсона Дарлинга измеряет, насколько хорошо данные соответствуют определенному распределению. Для данного набора данных и его распределения, чем лучше данные соответствуют распределению, тем меньше будет эта статистика.
Нулевая и альтернативная гипотеза теста следующие:

Нулевая гипотеза Ho: данные соответствуют указанному распределению.

Альтернативная гипотеза Ха: данные не соответствуют указанному распределению.

Если значение p меньше выбранного альфа (0,05 или 0,10), мы отклоняем нулевую гипотезу о том, что данные поступают из указанного распределения.

Код Python для теста Андерсона Дарлинга:

из статистики импорта scipy
anderson_results = stats.anderson (model.resid, dist = ’norm’)

Предположение 3: дисперсия ошибок постоянна для всех значений независимой переменной X

Предположение о гомоскедастичности (homo - равно, scedasticity - распространение) утверждает, что популяция y, соответствующая различным X значения имеют одинаковую дисперсию, т.е. она не увеличивается и не уменьшается с увеличением X.

Гетероскедастичность - это когда дисперсия неравна, то есть дисперсия популяции y изменяется вместе с X.

Каковы причины непостоянной дисперсии?

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

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

Как гетероскедастичность влияет на оценку OLS?

Оценка OLS обеспечивает наилучшую линейную несмещенную оценку (СИНИЙ) бета-версии, если выполняются все допущения линейной регрессии.

Что означает СИНИЙ? Это означает, что метод OLS дает следующие оценки:

Линейный:

Это линейная функция зависимой переменной Y регрессионной модели.

Беспристрастно:

Его ожидаемое или среднее значение равно истинному значению.

Эффективно:

Имеет минимальную дисперсию. Несмещенная оценка с наименьшей дисперсией известна как эффективная оценка.

Если все предположения линейной регрессии выполнены, OLS дает нам наилучшие линейные несмещенные оценки.

Однако, если предположение о гомоскедастичности ослабить, бета-оценки по-прежнему будут линейными и несмещенными, но они не будут эффективными / лучшими. Почему ? Потому что бета, оцениваемая сейчас, не будет иметь минимальной дисперсии.

Давайте попробуем понять это лучше. Наиболее распространенным примером, используемым для объяснения гетероскедастичности, является однофакторная модель линейной регрессии с сбережениями в качестве зависимой переменной и доходом в качестве объясняющей переменной. Как видно на графике выше, при низком доходе разница в сбережениях мала. По мере увеличения дохода, располагаемый доход также увеличивается, что дает людям больше возможностей для сбережений. Таким образом, с увеличением дохода увеличивается и разброс сбережений. Это видно из приведенного выше графика. В гомоскедастических данных дисперсия одинакова для всех наблюдений и равна (сигма) ². В случае гетероскедастических данных дисперсия становится равной (сигма (i)) ², где i = 1,2,3,… .n наблюдений.

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

Однако OLS не изменяет веса наблюдения в зависимости от их вклада в остаточную сумму квадратов (RSS). Это придает одинаковый вес всем наблюдениям. Таким образом, когда RSS минимизируется для вычисления оценочных значений, наблюдение с более высокой дисперсией будет иметь большее значение в уравнении. Таким образом, бета, оцененная с использованием OLS для гетероскедастических данных, больше не будет иметь минимальной дисперсии.

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

Мы знаем, что t-stats = бета-шляпа / стандартная ошибка бета-версии.

Более высокая стандартная ошибка беты приводит к более низкому значению t-статистики. Это дополнительно приводит к более высокому значению p, а также к увеличению вероятности совершения ошибки типа 2. То есть при высоком значении p значимые переменные считаются незначительными.

Это также влияет на доверительные интервалы, T-тест, F-тест и другие тесты гипотез. Таким образом, очень важно выявить и принять меры по устранению гетероскедастичности.

Как мы обнаруживаем гетероскедастичность:

Гетероскедастичность дает отчетливую форму веера или конуса на графиках остатков. Чтобы проверить гетероскедастичность, вам необходимо оценить остатки с помощью графиков подобранных значений в случае множественной линейной регрессии и остатков в сравнении с независимой переменной в случае простой линейная регрессия. Обычно закономерность гетероскедастичности заключается в том, что по мере увеличения подобранных значений дисперсия остатков также увеличивается.

В дополнение к приведенному выше графику также проводятся определенные статистические тесты для подтверждения гетероскедастичности. Один из них - это тест Бреуша-Пагана для нормально распределенных данных.

Языческий тест Бреуша на гетероскедастичность:

Нулевая гипотеза Ho - отклонения ошибок равны (гомоскедастичность)
Альтернативная гипотеза Ha - отклонения ошибок не равны (гетероскедастичность)

Приведенный ниже код дает значение p для проверки гипотезы. Здесь X - список независимых переменных.

from statsmodels.stats.diagnostic import het_breuschpagan
bptest = het_breuschpagan (model3.resid, X) [1]
print («Значение p теста Брейхпагена равно», bptest)

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

Меры по устранению гетероскедастичности

Один из способов справиться с гетероскедастичностью - это преобразовать переменную ответа Y с помощью вогнутой функции, такой как log Y или sqrt Y. Такое преобразование приводит к большему сокращению больших ответов, что приводит к снижению гетероскедастичности.

Предположение 4: между независимыми переменными нет (меньше) мультиколлинеарности.

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

Это может создать проблему, поскольку трудно выделить отдельные эффекты коррелированных переменных на переменную ответа, то есть определить, как каждая переменная отдельно связана с переменной ответа.

Почему мы предполагаем, что между независимыми переменными нет мультиколлинеарности?

Бета дает скорость изменения переменной отклика y при изменении X1 на одну единицу, сохраняя все остальные X постоянными. Когда существует высокая корреляция между, скажем, независимыми переменными X1 и X2, невозможно сохранить постоянным X2, поскольку оно будет меняться с изменением X1. Таким образом, для данных с мультиколлинеарностью бета-версии будут принимать несколько значений, и нет единого решения для коэффициентов регрессора. Следовательно, в случае высокой мультиколлинеарности бета-оценки неопределенны, а стандартные ошибки бесконечны.

Мультиколлинеарность - более серьезная проблема, если количество независимых переменных меньше или просто равно количеству наблюдений.

Как мультиколлинеарность влияет на оценку и проверку гипотез в регрессионной модели?

Оценщики МНК будут иметь большие дисперсии и ковариации, затрудняющие оценку. Таким образом, доверительные интервалы намного шире, что приводит к принятию нулевой нулевой гипотезы и, следовательно, к ошибке 2-го типа.

Из-за высокой оценки стандартных ошибок t stats = beta hat / (стандартная ошибка beta hat) становится меньше. Таким образом, мультиколлинеарность приводит к незначительным t-отношениям.

Предполагаемые бета-версии очень чувствительны даже к небольшим изменениям данных в случае мультиколлинеарности.

Как мы проверяем мультиколлинеарность:

  1. Точечная диаграмма

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

2. Коэффициент инфляции дисперсии

Коэффициент инфляции дисперсии или VIF используется как индикатор мультиколлинеарности. Чем больше значение VIF, тем больше переменная коррелирует с другими регрессорами. VIF показывает, насколько раздута дисперсия переменной из-за наличия мультиколлинеарности. По мере увеличения степени коллинеарности также увеличивается VIF. Если между двумя переменными нет коллинеарности, VIF будет 1.

Он рассчитывается путем регрессии одного предиктора по отношению ко всем остальным предикторам в модели. Это дает значение R², которое затем используется в формуле VIF. Обычно считается, что переменная с VIF больше 10 вызывает затруднения.

Код Python для проверки VIF:

из statsmodels.stats.outliers_influence import variance_inflation_factor

def get_vif_factors (X):
X_matrix = X.values ​​
vif = [variance_inflation_factor (X_matrix, i) для i в диапазоне (X_matrix.shape [1])]
vif_factors = pd.DataFrame ()
vif_factors ['column'] = X.columns
vif_factors ['VIF'] = vif
вернуть vif_factors

vif_factors = get_vif_factors (X_train))
vif_factors

Средства от мультиколлинеарности

  • Отбросьте переменную с высоким VIF
  • Используйте анализ главных компонентов (PCA), чтобы найти некоррелированные переменные

Предположение 5: нет автокорреляции ошибок

Модель линейной регрессии предполагает, что члены ошибки независимы. Это означает, что член ошибки одного наблюдения не зависит от члена ошибки другого наблюдения. В противном случае это называется автокорреляцией.

Обычно это наблюдается в данных временных рядов. Данные временных рядов состоят из наблюдений, для которых данные собираются в дискретные моменты времени. Обычно наблюдения в соседние временные интервалы имеют коррелированные ошибки.

Как наличие автокорреляции влияет на оценку МНК?

Расчетные стандартные ошибки обычно занижают истинную стандартную ошибку. Таким образом связанное значение P ниже. Это приводит к выводу, что переменная значима, даже если это не так. Интервалы уверенности и прогноза уже, чем должны быть.

Как мы обнаруживаем автокорреляцию?

Тест Дарбина Ватсона используется для проверки автокорреляции.
Нулевая гипотеза Ho: автокорреляция ошибок отсутствует
Альтернативная гипотеза Ха: есть автокорреляция ошибок

Статистика Дарбина Уотсона проверяет наличие автокорреляции в лаге 1 остатков. Статистика представлена ​​следующим образом:

Значение статистики находится в диапазоне от 0 до 4. Значение от 1,8 до 2,2 указывает на отсутствие автокорреляции. Значение меньше 1,8 указывает на положительную автокорреляцию, а значение больше 2,2 указывает на отрицательную автокорреляцию.

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

Тест Дарбина Ватсона на Python:

из statsmodels.stats.stattools import durbin_watson

durbin_watson (модель1.resid)

Меры по устранению автокорреляции

Проверьте, не является ли автокорреляция следствием неправильного определения модели, т.е. либо функциональная форма модели неверна, либо из модели была исключена какая-то важная переменная. В таком случае нужно будет пересмотреть модель.
Можно также добавить лаги зависимой переменной и / или запаздывания некоторых независимых переменных.

Вывод:

Все приведенные выше предположения важны для проверки модели. Если что-либо из этого нарушается, то прогнозы, доверительные интервалы и научные выводы, полученные на основе модели, будут ошибочными и необъективными.

Надеюсь, эта статья помогла вам лучше понять один из самых полезных алгоритмов.

Вот несколько хороших ссылок, чтобы еще лучше понять предположения.

  1. «Базовая эконометрика» Дамодара Н. Гуджарати, Дон С. Портер, Маноранджан Пал
  2. «Бизнес-аналитика: наука о данных - принятие решений» У Динеш Кумар.
  3. Https://statisticsbyjim.com/