Comment calculer les résidus standardisé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
Si nous traçons les valeurs observées et superposons la droite de régression ajustée, les résidus pour chaque observation seraient la distance verticale entre l’observation et la droite de régression :
Un type de résidu que nous utilisons souvent pour identifier les valeurs aberrantes dans un modèle de régression est appelé résidu standardisé .
Il est calculé comme suit :
r je = e je / s(e je ) = e je / RSE√ 1-h ii
où:
- e i : Le i ème résidu
- RSE : l’erreur type résiduelle du modèle
- h ii : Le levier de la ième observation
En pratique, on considère souvent tout résidu standardisé dont la valeur absolue est supérieure à 3 comme une valeur aberrante.
Ce didacticiel fournit un exemple étape par étape de la façon de calculer des résidus standardisés en Python.
Étape 1 : Saisissez les données
Tout d’abord, nous allons créer un petit ensemble de données avec lequel travailler en Python :
import pandas as pd #create dataset df = pd.DataFrame({'x': [8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30], 'y': [41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57]})
Étape 2 : Ajuster le modèle de régression
Ensuite, nous ajusterons un modèle de régression linéaire simple :
import statsmodels.api as sm
#define response variable
y = df['y']
#define explanatory variable
x = df['x']
#add constant to predictor variables
x = sm.add_constant(x)
#fit linear regression model
model = sm.OLS(y, x).fit()
Étape 3 : Calculer les résidus standardisés
Ensuite, nous calculerons les résidus standardisés du modèle :
#create instance of influence influence = model.get_influence() #obtain standardized residuals standardized_residuals = influence.resid_studentized_internal #display standardized residuals print(standardized_residuals) [ 1.40517322 0.81017562 0.07491009 -0.59323342 -1.2482053 -0.64248883 0.59610905 -0.05876884 -2.11711982 -0.066556 0.91057211 1.26973888]
D’après les résultats, nous pouvons voir qu’aucun des résidus standardisés ne dépasse une valeur absolue de 3. Ainsi, aucune des observations ne semble être aberrante.
Étape 4 : Visualisez les résidus standardisés
Enfin, nous pouvons créer un nuage de points pour visualiser les valeurs de la variable prédictive par rapport aux résidus standardisés :
import matplotlib.pyplot as plt
plt.scatter(df.x, standardized_residuals)
plt.xlabel('x')
plt.ylabel('Standardized Residuals')
plt.axhline(y=0, color='black', linestyle='--', linewidth=1)
plt.show()
Ressources additionnelles
Que sont les résidus ?
Que sont les résidus standardisés ?
Comment calculer les résidus standardisés dans R
Comment calculer les résidus standardisés dans Excel