Comment calculer les résidus standardisés dans R



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 les résidus standardisés dans R.

Étape 1 : Saisissez les données

Tout d’abord, nous allons créer un petit ensemble de données avec lequel travailler dans R :

#create data
data <- data.frame(x=c(8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30),
                   y=c(41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57))

#view data
data

    x  y
1   8 41
2  12 42
3  12 39
4  13 37
5  14 35
6  16 39
7  17 45
8  22 46
9  24 39
10 26 49
11 29 55
12 30 57

Étape 2 : Ajuster le modèle de régression

Ensuite, nous utiliserons la fonction lm() pour ajuster un modèle de régression linéaire simple :

#fit model
model <- lm(y ~ x, data=data)

#view model summary
summary(model) 

Call:
lm(formula = y ~ x, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.7578 -2.5161  0.0292  3.3457  5.3268 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  29.6309     3.6189   8.188  9.6e-06 ***
x             0.7553     0.1821   4.148  0.00199 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.442 on 10 degrees of freedom
Multiple R-squared:  0.6324,	Adjusted R-squared:  0.5956 
F-statistic:  17.2 on 1 and 10 DF,  p-value: 0.001988

Étape 3 : Calculer les résidus standardisés

Ensuite, nous utiliserons la fonction intégrée rstandard() pour calculer les résidus standardisés du modèle :

#calculate the standardized residuals
standard_res <- rstandard(model)

#view the standardized residuals
standard_res

          1           2           3           4           5           6 
 1.40517322  0.81017562  0.07491009 -0.59323342 -1.24820530 -0.64248883 
          7           8           9          10          11          12 
 0.59610905 -0.05876884 -2.11711982 -0.06655600  0.91057211  1.26973888

Nous pouvons rajouter les résidus standardisés au bloc de données d’origine si nous le souhaitons :

#column bind standardized residuals back to original data frame
final_data <- cbind(data, standard_res)

#view data frame
    x  y standard_res
1   8 41   1.40517322
2  12 42   0.81017562
3  12 39   0.07491009
4  13 37  -0.59323342
5  14 35  -1.24820530
6  16 39  -0.64248883
7  17 45   0.59610905
8  22 46  -0.05876884
9  24 39  -2.11711982
10 26 49  -0.06655600
11 29 55   0.91057211
12 30 57   1.26973888

Nous pouvons ensuite trier chaque observation de la plus grande à la plus petite en fonction de son résidu standardisé pour avoir une idée des observations les plus proches des valeurs aberrantes :

#sort standardized residuals descending
final_data[order(-standard_res),]

    x  y standard_res
1   8 41   1.40517322
12 30 57   1.26973888
11 29 55   0.91057211
2  12 42   0.81017562
7  17 45   0.59610905
3  12 39   0.07491009
8  22 46  -0.05876884
10 26 49  -0.06655600
4  13 37  -0.59323342
6  16 39  -0.64248883
5  14 35  -1.24820530
9  24 39  -2.11711982

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 :

#plot predictor variable vs. standardized residuals
plot(final_data$x, standard_res, ylab='Standardized Residuals', xlab='x') 

#add horizontal line at 0
abline(0, 0)

Ressources additionnelles

Que sont les résidus ?
Que sont les résidus standardisés ?
Introduction à la régression linéaire multiple

Ajouter un commentaire

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