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 :
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