Как рассчитать остаточную сумму квадратов в Python


Остаток — это разница между наблюдаемым значением и прогнозируемым значением в регрессионной модели.

Он рассчитывается как:

Остаток = наблюдаемое значение – прогнозируемое значение

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

Остаточная сумма квадратов = Σ(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
Калькулятор остаточной суммы квадратов

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.