Hoe de resterende som van kwadraten in python te berekenen
Een residu is het verschil tussen een waargenomen waarde en een voorspelde waarde in een regressiemodel.
Het wordt als volgt berekend:
Residueel = Waargenomen waarde – Voorspelde waarde
Eén manier om te begrijpen hoe goed een regressiemodel bij een dataset past, is door de resterende kwadratensom te berekenen, die als volgt wordt berekend:
Resterende kwadratensom = Σ(e i ) 2
Goud:
- Σ : een Grieks symbool dat ‘som’ betekent
- e i : het i- de residu
Hoe lager de waarde, hoe beter het model bij een dataset past.
Deze tutorial biedt een stapsgewijs voorbeeld van hoe u de resterende kwadratensom voor een regressiemodel in Python kunt berekenen.
Stap 1: Voer de gegevens in
Voor dit voorbeeld voeren we gegevens in over het aantal studie-uren, het totaal aantal afgelegde voorbereidende examens en de examenresultaten behaald door 14 verschillende studenten:
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]})
Stap 2: Pas het regressiemodel aan
Vervolgens zullen we de functie OLS() uit de statsmodels-bibliotheek gebruiken om een gewone regressie met de kleinste kwadraten uit te voeren, waarbij we ‚uren‘ en ‚examens‘ gebruiken als voorspellende variabelen en ’score‘ als de responsvariabele:
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
==================================================== ============================
Stap 3: Bereken de resterende kwadratensom
We kunnen de volgende code gebruiken om de resterende kwadratensom van het model te berekenen:
print ( model.ssr )
293.25612951525414
De resterende kwadratensom blijkt 293.256 te zijn.
Aanvullende bronnen
Hoe eenvoudige lineaire regressie uit te voeren in Python
Hoe u meerdere lineaire regressies uitvoert in Python
Residuele som van vierkantencalculator