Comment effectuer une régression robuste dans R (étape par étape)



La régression robuste est une méthode que nous pouvons utiliser comme alternative à la régression des moindres carrés ordinaire lorsqu’il existe des valeurs aberrantes ou des observations influentes dans l’ensemble de données avec lequel nous travaillons.

Pour effectuer une régression robuste dans R, nous pouvons utiliser la fonction rlm() du package MASS , qui utilise la syntaxe suivante :

L’exemple étape par étape suivant montre comment effectuer une régression robuste dans R pour un ensemble de données donné.

Étape 1 : Créer les données

Tout d’abord, créons un faux ensemble de données avec lequel travailler :

#create data
df <- data.frame(x1=c(1, 3, 3, 4, 4, 6, 6, 8, 9, 3,
                      11, 16, 16, 18, 19, 20, 23, 23, 24, 25),
                 x2=c(7, 7, 4, 29, 13, 34, 17, 19, 20, 12,
                      25, 26, 26, 26, 27, 29, 30, 31, 31, 32),
                  y=c(17, 170, 19, 194, 24, 2, 25, 29, 30, 32,
                      44, 60, 61, 63, 63, 64, 61, 67, 59, 70))

#view first six rows of data
head(df)

  x1 x2   y
1  1  7  17
2  3  7 170
3  3  4  19
4  4 29 194
5  4 13  24
6  6 34   2

Étape 2 : Effectuer une régression des moindres carrés ordinaires

Ajustons ensuite un modèle de régression des moindres carrés ordinaire et créons un tracé des résidus standardisés .

En pratique, on considère souvent tout résidu standardisé dont la valeur absolue est supérieure à 3 comme une valeur aberrante.

#fit ordinary least squares regression model
ols <- lm(y~x1+x2, data=df)

#create plot of y-values vs. standardized residuals
plot(df$y, rstandard(ols), ylab='Standardized Residuals', xlab='y') 
abline(h=0)

Sur le graphique, nous pouvons voir qu’il existe deux observations avec des résidus standardisés autour de 3.

Cela indique qu’il existe deux valeurs aberrantes potentielles dans l’ensemble de données et que nous pourrions donc bénéficier d’une régression robuste à la place.

Étape 3 : Effectuer une régression robuste

Utilisons ensuite la fonction rlm() pour ajuster un modèle de régression robuste :

library(MASS)

#fit robust regression model
robust <- rlm(y~x1+x2, data=df)

Pour déterminer si ce modèle de régression robuste offre un meilleur ajustement aux données par rapport au modèle OLS, nous pouvons calculer l’erreur type résiduelle de chaque modèle.

L’erreur type résiduelle (RSE) est un moyen de mesurer l’écart type des résidus dans un modèle de régression. Plus la valeur du RSE est faible, plus un modèle est capable de s’adapter aux données.

Le code suivant montre comment calculer le RSE pour chaque modèle :

#find residual standard error of ols model
summary(ols)$sigma

[1] 49.41848

#find residual standard error of ols model
summary(robust)$sigma

[1] 9.369349

Nous pouvons voir que le RSE du modèle de régression robuste est bien inférieur à celui du modèle de régression des moindres carrés ordinaire, ce qui nous indique que le modèle de régression robuste offre un meilleur ajustement aux données.

Ressources additionnelles

Comment effectuer une régression linéaire simple dans R
Comment effectuer une régression linéaire multiple dans R
Comment effectuer une régression polynomiale dans R

Ajouter un commentaire

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