Comment calculer la somme résiduelle des carrés en Python
Un résidu est la différence entre une valeur observée et une valeur prédite dans un modèle de régression.
Il est calculé comme suit :
Résiduel = Valeur observée – Valeur prédite
Une façon de comprendre dans quelle mesure un modèle de régression s’adapte à un ensemble de données consiste à calculer la somme des carrés résiduelle , qui est calculée comme suit :
Somme résiduelle des carrés = Σ(e i ) 2
où:
- Σ : Un symbole grec qui signifie « somme »
- e i : Le i ème résidu
Plus la valeur est faible, mieux le modèle s’adapte à un ensemble de données.
Ce didacticiel fournit un exemple étape par étape de la façon de calculer la somme résiduelle des carrés pour un modèle de régression en Python.
Étape 1 : Saisissez les données
Pour cet exemple, nous saisirons les données relatives au nombre d’heures passées à étudier, au nombre total d’examens préparatoires passés et aux résultats des examens obtenus par 14 étudiants différents :
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]})
Étape 2 : Ajuster le modèle de régression
Ensuite, nous utiliserons la fonction OLS() de la bibliothèque statsmodels pour effectuer une régression des moindres carrés ordinaires, en utilisant « heures » et « examens » comme variables prédictives et « score » comme variable de réponse :
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
==============================================================================
Étape 3 : Calculer la somme résiduelle des carrés
Nous pouvons utiliser le code suivant pour calculer la somme des carrés résiduelle du modèle :
print(model.ssr)
293.25612951525414
La somme résiduelle des carrés s’avère être 293,256 .
Ressources additionnelles
Comment effectuer une régression linéaire simple en Python
Comment effectuer une régression linéaire multiple en Python
Calculateur de la somme résiduelle des carrés