Comment calculer les résidus studentisés dans R



Un résidu étudiant est simplement un résidu divisé par son écart type estimé.

En pratique, nous disons généralement que toute observation dans un ensemble de données dont le résidu étudiant est supérieur à une valeur absolue de 3 est une valeur aberrante.

Nous pouvons obtenir rapidement les résidus studentisés de n’importe quel modèle de régression dans R en utilisant la fonction studres() du package MASS, qui utilise la syntaxe suivante :

studres(modèle)

model représente n’importe quel modèle linéaire.

Exemple : calcul des résidus studentisés dans R

Supposons que nous construisions le modèle de régression linéaire simple suivant dans R, en utilisant l’ensemble de données mtcars intégré :

#build simple linear regression model
model <- lm(mpg ~ disp, data=mtcars)

Nous pouvons utiliser la fonction studres() du package MASS pour calculer les résidus studentisés pour chaque observation de l’ensemble de données :

library(MASS)

#calculate studentized residuals
stud_resids <- studres(model)

#view first three studentized residuals
head(stud_resids, 3)

    Mazda RX4 Mazda RX4 Wag    Datsun 710 
   -0.6236250    -0.6236250    -0.7405315 

Nous pouvons également créer un tracé rapide des valeurs des variables prédictives par rapport aux résidus étudiés correspondants :

#plot predictor variable vs. studentized residuals
plot(mtcars$disp, stud_resids,  ylab='Studentized Residuals', xlab='Displacement') 

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

Résidus studentisés dans R

D’après le graphique, nous pouvons voir qu’aucune des observations n’a de résidu étudiant avec une valeur absolue supérieure à 3, il n’y a donc pas de valeurs aberrantes claires dans l’ensemble de données.

Nous pouvons également rajouter les résidus studentisés de chaque observation dans l’ensemble de données d’origine si nous le souhaitons :

#add studentized residuals to orignal dataset
final_data <- cbind(mtcars[c('mpg', 'disp')], stud_resids)

#view final dataset
head(final_data)

                   mpg disp stud_resids
Mazda RX4         21.0  160  -0.6236250
Mazda RX4 Wag     21.0  160  -0.6236250
Datsun 710        22.8  108  -0.7405315
Hornet 4 Drive    21.4  258   0.7556078
Hornet Sportabout 18.7  360   1.2658336
Valiant           18.1  225  -0.6896297

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

#sort studentized residuals descending
final_data[order(-stud_resids),]

                     mpg  disp stud_resids
Toyota Corolla      33.9  71.1  2.52397102
Pontiac Firebird    19.2 400.0  2.06825391
Fiat 128            32.4  78.7  2.03684699
Lotus Europa        30.4  95.1  1.53905536
Honda Civic         30.4  75.7  1.27099586
Hornet Sportabout   18.7 360.0  1.26583364
Chrysler Imperial   14.7 440.0  1.06486066
Hornet 4 Drive      21.4 258.0  0.75560776
Porsche 914-2       26.0 120.3  0.42424678
Fiat X1-9           27.3  79.0  0.30183728
Merc 240D           24.4 146.7  0.26235893
Ford Pantera L      15.8 351.0  0.20825609
Cadillac Fleetwood  10.4 472.0  0.08338531
Lincoln Continental 10.4 460.0 -0.07863385
Duster 360          14.3 360.0 -0.14476167
Merc 450SL          17.3 275.8 -0.28759769
Dodge Challenger    15.5 318.0 -0.30826585
Merc 230            22.8 140.8 -0.30945955
Merc 450SE          16.4 275.8 -0.56742476
AMC Javelin         15.2 304.0 -0.58138205
Camaro Z28          13.3 350.0 -0.58848471
Mazda RX4 Wag       21.0 160.0 -0.62362497
Mazda RX4           21.0 160.0 -0.62362497
Maserati Bora       15.0 301.0 -0.68315010
Valiant             18.1 225.0 -0.68962974
Datsun 710          22.8 108.0 -0.74053152
Merc 450SLC         15.2 275.8 -0.94814699
Toyota Corona       21.5 120.1 -0.99751166
Volvo 142E          21.4 121.0 -1.01790487
Merc 280            19.2 167.6 -1.09979261
Ferrari Dino        19.7 145.0 -1.24732999
Merc 280C           17.8 167.6 -1.57258064

Ressources additionnelles

Comment effectuer une régression linéaire simple dans R
Comment effectuer une régression linéaire multiple dans R
Comment créer un tracé résiduel dans R

Ajouter un commentaire

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