Détecter et traiter la multicolinéarité

Analytique RH : prédire le roulement du personnel avec R

Anurag Gupta

People Analytics Practitioner

Comprendre la corrélation

La corrélation mesure l'association entre deux variables numériques

Analytique RH : prédire le roulement du personnel avec R

Analytique RH : prédire le roulement du personnel avec R

Calculer une corrélation en R

# Calculate the correlation coefficient
cor(train_set$emp_age, train_set$compensation)
0.6117855
Analytique RH : prédire le roulement du personnel avec R

Qu'est-ce que la multicolinéarité ?

La multicolinéarité survient lorsqu'une variable indépendante est fortement colinéaire avec un ensemble de deux variables indépendantes ou plus.

Analytique RH : prédire le roulement du personnel avec R

Comment détecter la multicolinéarité ?

VIF (Variance Inflation Factor)
# Load car package 
library(car)

# Logistic regression model
multi_log <- glm(turnover ~ ., family = "binomial",
                 data = train_set_multi)

# Calculate VIF  
vif(multi_log)
Analytique RH : prédire le roulement du personnel avec R

Indice d'inflation de la variance

                                     GVIF Df GVIF^(1/(2*Df))
location                     2.318640e+00  2        1.233981
level                        5.716850e+06  1     2390.993458
gender                       1.262625e+00  1        1.123666
rating                       4.381767e+00  4        1.202835
mgr_rating                   2.471489e+00  4        1.119747
mgr_reportees                1.314709e+00  1        1.146608
mgr_tenure                   1.278559e+00  1        1.130734
compensation                 3.998338e+01  1        6.323241
percent_hike                 3.167576e+00  1        1.779769
hiring_score                 1.143613e+00  1        1.069399
hiring_source                2.000099e+00  6        1.059467
no_previous_companies_worked 3.291703e+00  1        1.814305
distance_from_home           1.355795e+00  1        1.164386
total_dependents             1.930188e+00  1        1.389312
marital_status               2.320518e+00  1        1.523325
education                    1.460697e+00  1        1.208593
.....

Analytique RH : prédire le roulement du personnel avec R

Règle pratique pour interpréter la valeur VIF

VIF Interprétation
1 Non corrélé
Entre 1 et 5 Corrélation modérée
Supérieur à 5 Forte corrélation
Analytique RH : prédire le roulement du personnel avec R

Comment gérer la multicolinéarité ?

  • Étape 1 : Calculer le VIF du modèle
  • Étape 2 : Repérer toute variable avec un VIF > 5
    • Étape 2a : Retirer la variable du modèle si son VIF est de 5
    • Étape 2b : S'il y a plusieurs variables avec un VIF > 5, ne retirer que celle au VIF le plus élevé
  • Étape 3 : Répéter les étapes 1 et 2 jusqu'à ce que le VIF de chaque variable soit < 5
Analytique RH : prédire le roulement du personnel avec R

Retirer une variable d'un modèle

new_model <- glm(dependent_variable ~ . - variable_to_remove, 
                 family = "binomial", data = dataset)
Analytique RH : prédire le roulement du personnel avec R

Passons à la pratique !

Analytique RH : prédire le roulement du personnel avec R

Preparing Video For Download...