8. Проверка предположений о модели
Восьмым инструментом является проверка предположений о модели (Assumption Checks). В линейной регрессии существуют несколько предположений о данных, которые должны выполняться для правильного применения модели. Эти предположения включают в себя:
Линейность: Отношение между зависимой переменной и независимыми переменными должно быть линейным.
Независимость ошибок: Ошибки модели должны быть независимыми друг от друга.
Нормальность ошибок: Ошибки модели должны иметь нормальное распределение.
Гомоскедастичность: Ошибки модели должны иметь постоянную дисперсию.
Проверка этих предположений позволяет оценить, насколько хорошо модель соответствует данным и насколько правильно можно интерпретировать ее результаты.
В качестве примера вызова проверки предположений о модели в линейной регрессии на Python можно использовать следующий код с использованием библиотеки statsmodels
:
Разберем этот код:
Мы создаем массивы
X
иy
с данными.Добавляем константу к массиву
X
с помощьюsm.add_constant(X)
, чтобы учесть смещение в модели.Подгоняем модель линейной регрессии с помощью
sm.OLS(y, X).fit()
.Проверка линейности: Строим график остатков по отношению к предсказанным значениям и независимой переменной с помощью
sm.graphics.plot_regress_exog(model, fig=plt.figure())
.Проверка нормальности остатков: Строим qq-график для остатков с помощью
sm.qqplot(model.resid, line='s', fit=True)
и отображаем его с помощьюplt.show()
.Проверка гомоскедастичности: Строим график остатков по отношению к предсказанным значениям с помощью
plt.scatter(model.fittedvalues, model.resid)
и отображаем его с помощьюplt.show()
.Проверка мультиколлинеарности: Вычисляем максимальный абсолютный коэффициент корреляции между независимыми переменными с помощью
np.max(np.abs(np.corrcoef(X.T)))
.
Анализируя графики и значения, полученные в результате выполнения этого кода, вы можете сделать вывод о том, выполняются ли предположения модели линейной регрессии для данных X
и y
.
И еще один пример:
Предположения, которые необходимо проверить, включают:
Линейность
Нормальность остатков
Гомоскедастичность (постоянная дисперсия остатков)
Отсутствие мультиколлинеарности
Вот пример кода, демонстрирующий эти проверки:
Last updated