Imputations multiples par équations en chaîne

Gérer les données manquantes avec des imputations en R

Michal Oleszak

Machine Learning Engineer

L'algorithme MICE

Un schéma en quatre étapes de l'algorithme MICE. Depuis le nœud « données incomplètes », trois flèches mènent vers trois nœuds « données imputées », étiquetées par la fonction « mice() ». Chacun est relié à un nœud « résultats de l'analyse » par une flèche « with() ». Ces nœuds convergent vers « résultats combinés » via des flèches « pooled() ».

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Gérer les données manquantes avec des imputations en R

MICE : pour et contre

Avantages :

  • Moins de réplications que le bootstrap.
  • Fonctionne pour des données MAR et MCAR.
  • Permet des analyses de sensibilité vers des données MNAR.

Inconvénients :

  • Ne fonctionne qu'avec certaines méthodes d'imputation.
  • Demande plus de réglages (sélection de modèle, choix des prédicteurs).
Gérer les données manquantes avec des imputations en R

Le flux mice : mice - with - pool

Imputer nhanes 20 fois :

library(mice)
hhanes_multiimp <- mice(nhanes, m = 20)

Ajuster un modèle de régression linéaire à chaque jeu imputé :

lm_multiimp <- with(nhanes_multiimp, lm(Weight ~ Height + TotChol + PhysActive))

Combiner les résultats de régression :

lm_pooled <- pool(lm_multiimp)
Gérer les données manquantes avec des imputations en R

Analyser les résultats combinés

summary(lm_pooled, conf.int = TRUE, conf.level = 0.95)
            estimate std.error statistic      df p.value    2.5 %   97.5 %
(Intercept) -122.964    10.933   -11.247 735.389   0.000 -144.428 -101.500
Height         1.086     0.060    18.158 796.106   0.000    0.968    1.203
TotChol        2.653     0.884     3.003 305.460   0.003    0.915    4.392
PhysActive    -1.746     1.422    -1.228 733.957   0.220   -4.536    1.045
Gérer les données manquantes avec des imputations en R

MICE : méthodes disponibles

Un tableau de l'article de van Buuren et al. listant les modèles d'imputation disponibles dans MICE : nom, mot-clé, type de variable pris en charge et option par défaut.

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Gérer les données manquantes avec des imputations en R

Choisir les méthodes par type de variable

mice() accepte l'argument defaultMethod : un vecteur de 4 chaînes, indiquant les méthodes pour :

  1. Variables continues
  2. Variables binaires
  3. Variables catégorielles (facteurs non ordonnés)
  4. Variables factorielles (facteurs ordonnés)
nhanes_multiimp <- mice(nhanes, m = 20, 
                        defaultMethod = c("pmm", "logreg", "polyreg", "polr"))
Gérer les données manquantes avec des imputations en R

Matrice des prédicteurs

La predictorMatrix définit quelles variables servent à en imputer d'autres.

nhanes_multiimp <- mice(nhanes, m = 20)
nhanes_multiimp$predictorMatrix
           Age Gender Weight Height Diabetes TotChol Pulse PhysActive
Age          0      1      1      1        1       1     1          1
Gender       1      0      1      1        1       1     1          1
Weight       1      1      0      1        1       1     1          1
Height       1      1      1      0        1       1     1          1
Diabetes     1      1      1      1        0       1     1          1
TotChol      1      1      1      1        1       0     1          1
Pulse        1      1      1      1        1       1     0          1
PhysActive   1      1      1      1        1       1     1          0
Gérer les données manquantes avec des imputations en R

Choisir les prédicteurs pour chaque variable

  • Idéalement, il faut réaliser une vraie sélection de modèle.
  • Alternative rapide : utiliser les variables corrélées à la cible.
pred_mat <- quickpred(nhanes, mincor = 0.25)
nhanes_multiimp <- mice(nhanes, m = 20, predictorMatrix = pred_mat)
print(pred_mat)
           Age Gender Weight Height Diabetes TotChol Pulse PhysActive
Age          0      0      0      0        0       0     0          0
Gender       0      0      0      0        0       0     0          0
Weight       1      1      0      0        0       0     1          0
...
Gérer les données manquantes avec des imputations en R

Passons à la pratique avec MICE !

Gérer les données manquantes avec des imputations en R

Preparing Video For Download...