Остаток — это разница между наблюдаемым значением и прогнозируемым значением в регрессионной модели.
Он рассчитывается как:
Остаток = наблюдаемое значение – прогнозируемое значение
Один из способов понять, насколько хорошо регрессионная модель соответствует набору данных, — вычислить остаточную сумму квадратов , которая рассчитывается как:
Остаточная сумма квадратов = Σ(e i ) 2
куда:
- Σ : греческий символ, означающий «сумма».
- e i : i -й остаток
Чем ниже значение, тем лучше модель соответствует набору данных.
В этом руководстве представлен пошаговый пример того, как вычислить остаточную сумму квадратов для регрессионной модели в Python.
Шаг 1: введите данные
Для этого примера мы введем данные о количестве часов, потраченных на учебу, общем количестве сданных подготовительных экзаменов и экзаменационных баллах, полученных 14 разными студентами:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'hours': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5],
'exams': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4],
'score': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90]})
Шаг 2: Подгонка регрессионной модели
Далее мы будем использовать функцию OLS() из библиотеки statsmodels для выполнения обычной регрессии методом наименьших квадратов, используя «часы» и «экзамены» в качестве переменных-предикторов и «оценку» в качестве переменной ответа:
import statsmodels.api as sm
#define response variable
y = df['score']
#define predictor variables
x = df[['hours', 'exams']]
#add constant to predictor variables
x = sm.add_constant (x)
#fit linear regression model
model = sm. OLS (y, x). fit ()
#view model summary
print(model. summary ())
OLS Regression Results
==============================================================================
Dep. Variable: score R-squared: 0.722
Model: OLS Adj. R-squared: 0.671
Method: Least Squares F-statistic: 14.27
Date: Sat, 02 Jan 2021 Prob (F-statistic): 0.000878
Time: 15:58:35 Log-Likelihood: -41.159
No. Observations: 14 AIC: 88.32
Df Residuals: 11 BIC: 90.24
Df Model: 2
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 71.8144 3.680 19.517 0.000 63.716 79.913
hours 5.0318 0.942 5.339 0.000 2.958 7.106
exams -1.3186 1.063 -1.240 0.241 -3.658 1.021
==============================================================================
Omnibus: 0.976 Durbin-Watson: 1.270
Prob(Omnibus): 0.614 Jarque-Bera (JB): 0.757
Skew: -0.245 Prob(JB): 0.685
Kurtosis: 1.971 Cond. No. 12.1
==============================================================================
Шаг 3: вычислить остаточную сумму квадратов
Мы можем использовать следующий код для вычисления остаточной суммы квадратов для модели:
print(model. ssr )
293.25612951525414
Остаточная сумма квадратов оказывается равной 293,256 .
Дополнительные ресурсы
Как выполнить простую линейную регрессию в Python
Как выполнить множественную линейную регрессию в Python
Калькулятор остаточной суммы квадратов