Imputation par « hot-deck »

Traitement des données manquantes par imputation dans R

Michal Oleszak

Machine Learning Engineer

Historique du hot-deck

  • Remonte aux années 1950, quand les données étaient sur des cartes perforées.
  • Parcourir les données aller-retour était très lent.
  • Le U.S. Census Bureau a conçu une méthode ne nécessitant qu'un seul passage.

Photo d'une ancienne carte perforée utilisée pour programmer des ordinateurs.

1 Image source: https://en.wikipedia.org/wiki/Punched_card#/media/File:Used_Punchcard_(5151286161).jpg
Traitement des données manquantes par imputation dans R

Imputation par hot-deck

  • Pour chaque variable, remplacer chaque valeur manquante par la dernière valeur observée.
  • « Hot-deck » renvoie au paquet de cartes perforées en cours de traitement.

Inconvénients

  • Suppose des données MCAR.
  • Le hot-deck simple peut briser les relations entre variables.

Avantages

  • Rapide (un seul passage sur les données).
  • Les valeurs imputées ne sont pas constantes.
  • De simples astuces évitent de briser les relations.
Traitement des données manquantes par imputation dans R

Hot-deck en pratique

nhanes_imp <- hotdeck(nhanes, variable = c("Height", "Weight"))
head(nhanes_imp)
  Age Gender Weight Height Diabetes TotChol Pulse PhysActive Height_imp Weight_imp
1  16   male   73.2  172.0    FALSE    3.00    76       TRUE      FALSE      FALSE
2  17   male   72.3  176.0    FALSE    2.61    74       TRUE      FALSE      FALSE
3  12   male   57.7  158.9    FALSE    4.27    80       TRUE      FALSE      FALSE
4  16   male   88.9  183.3    FALSE    3.62    58       TRUE      FALSE      FALSE
5  13 female   45.1  157.6    FALSE    2.66    92       TRUE      FALSE      FALSE
6  16 female   48.7  180.7    FALSE    4.32    58      FALSE       TRUE      FALSE
Traitement des données manquantes par imputation dans R

Imputer à l'intérieur de domaines

Un tableau avec deux colonnes : PhysActive et Weight. Une valeur manque dans Weight. Comme les lignes sont en ordre aléatoire, une ligne avec PhysActive=FALSE précède celle avec PhysActive=TRUE et le Weight manquant. Cela illustre comment le hot-deck propage vers l'avant la valeur de poids d'une personne inactive à une personne active.

Un tableau avec deux colonnes : PhysActive et Weight. Une valeur manque dans Weight. Comme les données sont groupées par PhysActive, le hot-deck propage la valeur d'une personne active à une autre personne active.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight", 
    domain_var = "PhysActive"
)
Traitement des données manquantes par imputation dans R

Trier par variables corrélées

Un tableau avec deux variables : Height et Weight. Une valeur manque dans Weight. Comme les lignes sont en ordre aléatoire, une ligne avec une grande taille précède celle avec une petite taille et le poids manquant. Cela montre comment le hot-deck propage la valeur de poids d'une personne grande à une personne petite.

Un tableau avec deux variables : Height et Weight. Une valeur manque dans Weight. Comme les lignes sont triées par Height, le hot-deck propage la valeur de poids d'une personne petite à une autre personne petite.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight"
    ord_var = "Height"
)
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...