Comment tester la multicolinéarité dans R



Dans l’analyse de régression, la multicolinéarité se produit lorsque deux ou plusieurs variables prédictives sont fortement corrélées les unes aux autres, de sorte qu’elles ne fournissent pas d’informations uniques ou indépendantes dans le modèle de régression.

Si le degré de corrélation est suffisamment élevé entre les variables prédictives, cela peut poser des problèmes lors de l’ajustement et de l’interprétation du modèle de régression.

Le moyen le plus simple de détecter la multicolinéarité dans un modèle de régression consiste à calculer une métrique connue sous le nom de facteur d’inflation de la variance, souvent abrégé VIF .

VIF mesure la force de la corrélation entre les variables prédictives dans un modèle. Il prend une valeur comprise entre 1 et l’infini positif.

Nous utilisons les règles empiriques suivantes pour interpréter les valeurs VIF :

  • VIF = 1 : il n’existe aucune corrélation entre une variable prédictive donnée et toute autre variable prédictive du modèle.
  • VIF entre 1 et 5 : il existe une corrélation modérée entre une variable prédictive donnée et d’autres variables prédictives du modèle.
  • VIF > 5 : il existe une forte corrélation entre une variable prédictive donnée et d’autres variables prédictives dans le modèle.

L’exemple suivant montre comment détecter la multicolinéarité dans un modèle de régression dans R en calculant les valeurs VIF pour chaque variable prédictive du modèle.

Exemple : test de multicolinéarité dans R

Supposons que nous disposions du bloc de données suivant contenant des informations sur divers joueurs de basket-ball :

#create data frame
df = data.frame(rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1      90     25       5       11
2      85     20       7        8
3      82     14       7       10
4      88     16       8        6
5      94     27       5        6
6      90     20       7        9
7      76     12       6        6
8      75     15       9       10
9      87     14       9       10
10     86     19       5        7

Supposons que nous souhaitions ajuster un modèle de régression linéaire multiple en utilisant la notation comme variable de réponse et les points , les assistances et les rebonds comme variables prédictives.

Pour calculer le VIF pour chaque variable prédictive du modèle, nous pouvons utiliser la fonction vif() du package car :

library(car)

#define multiple linear regression model
model <- lm(rating ~ points + assists + rebounds, data=df)

#calculate the VIF for each predictor variable in the model
vif(model)

  points  assists rebounds 
1.763977 1.959104 1.175030 

Nous pouvons voir les valeurs VIF pour chacune des variables prédictives :

  • points : 1,76
  • passes décisives : 1,96
  • rebonds : 1,18

Étant donné que chacune des valeurs VIF des variables prédictives du modèle est proche de 1, la multicolinéarité ne pose pas de problème dans le modèle.

Remarque : Si la multicolinéarité s’avère être un problème dans votre modèle, la solution la plus rapide dans la plupart des cas consiste à supprimer une ou plusieurs variables hautement corrélées.

Il s’agit souvent d’une solution acceptable car les variables que vous supprimez sont de toute façon redondantes et ajoutent peu d’informations uniques ou indépendantes dans le modèle.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment effectuer une régression linéaire multiple dans R
Comment créer un tracé QQ 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 *