Як обчислити залишкову суму квадратів у python


Залишок — це різниця між спостережуваним значенням і прогнозованим значенням у регресійній моделі.

Він розраховується таким чином:

Залишок = спостережуване значення – прогнозоване значення

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

Залишкова сума квадратів = Σ(e i ) 2

золото:

  • Σ : грецький символ, що означає «сума»
  • e i : i- й залишок

Чим менше значення, тим краще модель відповідає набору даних.

Цей підручник містить покроковий приклад того, як обчислити залишкову суму квадратів для моделі регресії в Python.

Крок 1: Введіть дані

Для цього прикладу ми введемо дані, що стосуються кількості годин, витрачених на навчання, загальної кількості складених підготовчих іспитів і результатів іспитів, отриманих 14 різними студентами:

 import pandas as pd

#createDataFrame
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                            
==================================================== ============================
Dept. Variable: R-squared score: 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. Comments: 14 AIC: 88.32
Df Residuals: 11 BIC: 90.24
Model: 2                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 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
Калькулятор залишкової суми квадратів

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *