Остаточный график — это тип графика, на котором сопоставленные значения отображаются с остаточными значениями для регрессионной модели .
Этот тип графика часто используется для оценки того, подходит ли модель линейной регрессии для данного набора данных, и для проверки гетероскедастичности остатков.
В этом руководстве объясняется, как создать остаточный график для модели линейной регрессии в Python.
Пример: остаточный график в Python
В этом примере мы будем использовать набор данных, описывающий атрибуты 10 баскетболистов:
import numpy as npimport pandas as pd#create datasetdf = pd.DataFrame({'rating':[90,85,82,88,94,90,76,75,87,86],'points':[25,20,14,16,27,20,12,15,14,19],'assists':[5,7,7,8,5,7,6,9,9,5],'rebounds':[11,8,10,6,6,9,6,10,10,7]})#view datasetdf rating points assists rebounds09025511185207828214710388168649427565902079676126677515910887149109861957
Остаточный график для простой линейной регрессии
Предположим, мы подгоняем простую модель линейной регрессии, используя баллы в качестве переменной-предиктора и рейтинг в качестве переменной-ответа:
Мы можем создать график невязок по сравнению с подобранным, используя функцию plot_regress_exog() из библиотеки statsmodels:
Изготовлены четыре участка. Тот, что в верхнем правом углу, - это остаточный график по сравнению с подогнанным. По оси X на этом графике показаны фактические значения точек переменной предиктора, а по оси Y показана невязка для этого значения.
Поскольку остатки случайным образом разбросаны вокруг нуля, это указывает на то, что гетероскедастичность не является проблемой для предикторной переменной.
Остаточные графики для множественной линейной регрессии
Предположим, вместо этого мы подгоняем модель множественной линейной регрессии, используя передачи и подборы в качестве переменной-предиктора и рейтинг в качестве переменной-ответа:
Еще раз мы можем создать график невязок и предикторов для каждого из отдельных предикторов, используя функцию plot_regress_exog() из библиотеки statsmodels.
Например, вот как выглядит график остатка и предиктора для вспомогательной переменной предиктора :
А вот как выглядит график остатка и предиктора для подборов переменной предиктора:
На обоих графиках остатки случайным образом разбросаны вокруг нуля, что указывает на то, что гетероскедастичность не является проблемой ни для одной из переменных-предикторов в модели.
#import necessary libraries
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.formula.api import ols
#fit simple linear regression model
model = ols('rating ~ points', data=df). fit ()
#view model summary
print(model.summary())