Imputation par la moyenne

Traitement des données manquantes par imputation dans R

Michal Oleszak

Machine Learning Engineer

Vocabulaire de l'imputation

Imputation = estimer de façon éclairée les valeurs manquantes

  • Imputation par donneur – on comble les valeurs manquantes à partir d'autres observations complètes.
  • Imputation par modèle – on prévoit les valeurs manquantes avec un modèle statistique ou de Machine Learning.

Ce chapitre porte sur les méthodes par donneur :

  • Imputation par la moyenne
  • Imputation « hot-deck »
  • Imputation kNN
Traitement des données manquantes par imputation dans R

Imputation par la moyenne

Un tableau à deux colonnes : l'une avec les données brutes, contenant une valeur manquante, et l'autre avec données imputées, identique mais avec la valeur manquante remplacée par la moyenne.

L'imputation par la moyenne convient bien aux séries chronologiques qui fluctuent aléatoirement autour d'une moyenne à long terme.

Pour des données transversales, c'est souvent un très mauvais choix :

  • Elle détruit les relations entre variables.
  • Les valeurs imputées n'ont aucune variance.
Traitement des données manquantes par imputation dans R

Imputation par la moyenne : en pratique

Tâche : imputer par la moyenne Height et Weight dans les données NHANES.

  • Créer des indicateurs binaires indiquant si chaque valeur était manquante au départ.
nhanes <- nhanes %>% 
  mutate(Height_imp = ifelse(is.na(Height), TRUE, FALSE)) %>% 
  mutate(Weight_imp = ifelse(is.na(Weight), TRUE, FALSE))
  • Remplacer les valeurs manquantes de Height et Weight par leurs moyennes respectives.
nhanes_imp <- nhanes %>% 
  mutate(Height = ifelse(is.na(Height), mean(Height, na.rm = TRUE), Height)) %>% 
  mutate(Weight = ifelse(is.na(Weight), mean(Weight, na.rm = TRUE), Weight))
Traitement des données manquantes par imputation dans R

NHANES imputé par la moyenne

nhanes_imp %>%
    select(Weight, Height, Height_imp, Weight_imp) %>%
    head()
     Weight   Height Height_imp Weight_imp
1  73.20000 166.2499       TRUE      FALSE
2  72.30000 166.2499       TRUE      FALSE
3  57.70000 158.9000      FALSE      FALSE
4  88.90000 183.3000      FALSE      FALSE
5  45.10000 157.6000      FALSE      FALSE
6  66.77065 158.4000      FALSE       TRUE
Traitement des données manquantes par imputation dans R

Évaluer la qualité de l'imputation : graphique marginal

nhanes_imp %>% select(Weight, Height, Height_imp, Weight_imp) %>% marginplot(delimiter="imp")

Un graphique marginal : nuage de points « Height » vs « Weight », où les valeurs imputées dans l'une ou l'autre variable sont mises en évidence en couleur.

Traitement des données manquantes par imputation dans R

Problèmes de l'imputation par la moyenne

Destruction de la relation entre variables :

  • Après l'imputation par la moyenne de Height et Weight, leur corrélation positive est plus faible.
  • Les modèles qui prédisent l'une à partir de l'autre seront trompés par les valeurs imputées aberrantes et produiront des résultats biaisés.

Aucune variabilité dans les données imputées :

  • Avec moins de variance, toutes les erreurs-types seront sous-estimées. Cela empêche des tests d'hypothèses fiables et le calcul d'intervalles de confiance.
Traitement des données manquantes par imputation dans R

Imputation par la médiane et le mode

  • Plutôt que la moyenne, on peut imputer avec la médiane ou le mode.
  • L'imputation par la médiane est préférable en présence de valeurs aberrantes.
  • Pour les variables catégorielles, ni moyenne ni médiane ne se calculent ; on utilise donc le mode.
  • Médiane et mode présentent les mêmes écueils que l'imputation par la moyenne.

Un graphique marginal : nuage de points « Height » vs « Weight », où les valeurs imputées dans l'une ou l'autre variable sont mises en évidence en couleur.

Traitement des données manquantes par imputation dans R

Passons à la pratique !

Traitement des données manquantes par imputation dans R

Preparing Video For Download...