Les données sont-elles manquantes aléatoirement ?

Traitement de données à grande échelle en R

Michael Kane

Assistant Professor, Yale University

Traitement de données à grande échelle en R

Types de données manquantes

  • Manquantes complètement au hasard (MCAR)
  • Manquantes au hasard (MAR)
  • Manquantes non au hasard (MNAR)
Traitement de données à grande échelle en R

MCAR

Manquantes complètement au hasard

  • Impossible de prévoir quelles valeurs manquent
  • On peut supprimer les données manquantes
Traitement de données à grande échelle en R

MAR

Manquantes au hasard

  • La présence de valeurs manquantes dépend d'autres variables du jeu de données
  • Utilisez l'imputation multiple pour estimer les valeurs manquantes
Traitement de données à grande échelle en R

MNAR

Manquantes non au hasard

  • Ni MCAR ni MAR
  • Relation déterministe entre variables
Traitement de données à grande échelle en R

Gérer les données manquantes dans ce cours

  • Un traitement exhaustif des données manquantes dépasse le cadre de ce cours

  • Nous vérifierons si l'hypothèse MCAR est plausible et supprimerons les valeurs manquantes

Traitement de données à grande échelle en R

Vérification rapide de MAR

  • Recoder une colonne à 1 si la donnée manque, 0 sinon
  • Régresser les autres variables dessus via une régression logistique
  • Une p-valeur significative indique MAR
  • Répéter pour les autres colonnes concernées
  • Certaines p-valeurs peuvent être significatives par hasard ; ajustez le seuil de significativité selon le nombre de régressions
Traitement de données à grande échelle en R

Exemple : vérification rapide de MAR

# Our dependent variable
is_missing <- rbinom(1000, 1, 0.5)

# Our independent variables data_matrix <- matrix(rnorm(1000*10), nrow = 1000, ncol = 10) # A vector of p-values we'll fill in p_vals <- rep(NA, ncol(data_matrix))
Traitement de données à grande échelle en R

Exemple : vérification rapide de MAR

# Perform logistic regression
for (j in 1:ncol(data_matrix)) {
 s <- summary(glm(is_missing ~ data_matrix[, j]), 
              family = binomial)
              p_vals[j] <- s$coefficients[2, 4]
 }

# Show the p-values p_vals
0.5930082 0.7822695 0.7560343 0.3689330 0.8757048 
0.8812320 0.8281008 0.4888898 0.4781299 0.5655739
Traitement de données à grande échelle en R

Passons à la pratique !

Traitement de données à grande échelle en R

Preparing Video For Download...