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 :

Exemple de résidu en statistiques

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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *