Quand on repère des valeurs manquantes dans un dataset, la plupart des gens se lancent directement dans leur imputation.

Mais aussi contre-intuitif que ça puisse paraître, la première étape vers l'imputation des données manquantes ne doit JAMAIS être l'imputation.

La vraie première étape, c'est de comprendre la raison derrière cette absence de données. Pourquoi ? Parce que la stratégie d'imputation dépend en grande partie du POURQUOI ces données manquent.

Illustration en deux parties. À gauche, une croix rouge et le texte "Des valeurs manquantes, je les impute rapidement" représentent l'erreur courante. À droite, une coche verte et le texte "Je dois comprendre POURQUOI j'ai des valeurs manquantes avant de les imputer" représentent la bonne pratique. Deux grilles 5x5 avec des cellules rouges figurant les valeurs manquantes accompagnent chaque scène.

Plus précisément, l'absence de données peut être de trois types :

  • Missing completely at random (MCAR).

  • Missing at random (MAR).

  • Missing not at random (MNAR).

C'est seulement une fois qu'on a identifié la raison qu'on peut passer aux bonnes techniques d'imputation.

C'est quoi le MCAR, le MAR et le MNAR ? On décortique tout ça aujourd'hui.

1) Missing completely at random (MCAR)

Le MCAR, c'est une situation où les données manquent vraiment au hasard, sans aucun lien avec une variable observée ou non observée.

Autrement dit, les points de données manquants ne suivent aucun schéma identifiable.

Grille 5x5 avec plusieurs cellules rouges représentant des valeurs manquantes réparties sans motif particulier, accompagnée du texte "Données avec des valeurs manquantes au hasard".

Par exemple, dans des réponses à un sondage avec des valeurs manquantes, supposer le MCAR reviendrait à dire que certains participants ont, sans le faire exprès, sauté au hasard telle ou telle question.

Cela dit, d'après mon expérience, le MCAR est le plus souvent une hypothèse peu réaliste. Autrement dit, dans la grande majorité des datasets réels avec des valeurs manquantes, les données ne sont généralement pas MCAR.

Pourquoi ? Parce que dans des scénarios réels, l'apparition de données manquantes est souvent influencée par un facteur, observé ou non.

Le comportement humain, la manière dont le sondage a été administré, ou n'importe quel événement externe peuvent être à l'origine de valeurs manquantes dans un dataset.

Par exemple, des participants peuvent choisir volontairement de ne pas répondre à des questions sensibles, ou certains groupes peuvent être plus enclins à ne pas répondre du tout, ce qui crée des données manquantes.

C'est pour ça que supposer le MCAR n'est une hypothèse raisonnable que si tu connais le processus de collecte de données de bout en bout et/ou que tu as une expertise métier sur le sujet.

C'est là qu'il devient essentiel, pour un data scientist, d'échanger avec les data engineers et de comprendre le processus de collecte des données. D'ailleurs, ça ne concerne pas que le MCAR, ça s'applique aussi aux deux autres situations qu'on va voir juste après.

Un data scientist demande "Je veux comprendre le processus de collecte des données", et un data engineer répond "Bien sûr". Une grille 5x5 avec des valeurs manquantes est représentée entre les deux personnages.

Comprendre le processus de collecte de données ne fera JAMAIS de mal.

Cela dit, rien ne nous empêche de supposer que les valeurs manquantes sont MCAR, si ça semble être une hypothèse raisonnable au vu de l'analyse, et/ou des retours d'experts métier, et/ou après avoir compris le mécanisme de collecte des données.

Tu peux alors utiliser les techniques d'imputation univariée les plus simples.

2) Missing at random (MAR)

Le MAR, c'est une situation où l'absence de valeurs pour une feature peut s'expliquer par d'autres features observées dans le dataset.

Schéma montrant une colonne "Feature avec valeurs manquantes" reliée par une flèche au texte "peut être expliquée par" vers un tableau intitulé "Données observées", illustrant le principe du MAR.

Contrairement au MCAR, le MAR est bien plus fréquent en pratique.

Dans ce cas, l'absence de données peut être expliquée avec une précision raisonnable grâce à des méthodes statistiques adaptées.

Ainsi, même si la donnée est manquante, son apparition peut (dans une certaine mesure) être estimée à partir des informations déjà disponibles dans le dataset.

Une façon courante d'identifier le MAR consiste à conditionner sur une autre feature observée, et à observer si la probabilité de valeur manquante augmente.

Graphique en barres montrant le pourcentage de valeurs manquantes pour la Feature A, nettement plus élevé pour la Classe 1 que pour la Classe 2, avec le texte "Le pourcentage de valeurs manquantes est élevé pour un type de valeur de feature".

Par exemple, dans une enquête sur la performance scolaire, les étudiants avec de meilleures notes seraient peut-être moins enclins à révéler le nombre d'heures qu'ils passent à étudier (par esprit de compétition, sans doute).

C'est là que des techniques comme l'imputation par kNN, Miss Forest, etc., se montrent particulièrement efficaces. Elles utilisent d'autres features observées pour imputer la feature manquante.

Si tu veux creuser le sujet, on en a déjà parlé ici :

Schéma en 4 étapes : sélectionner une ligne avec une valeur manquante, trouver les k plus proches voisins à partir des features présentes, imputer par la moyenne des voisins, puis répéter pour toutes les lignes concernées.
Schéma en 4 étapes : faire une première estimation des valeurs manquantes (moyenne, médiane, mode), entraîner un Random Forest avec la feature à imputer comme variable dépendante, prédire les valeurs manquantes, puis répéter avec le dataset imputé jusqu'à convergence ou nombre maximal d'itérations.

3) Missing not at random (MNAR)

Le MNAR est la situation la plus compliquée des trois.

Dans le MNAR, l'absence de données est due soit à la valeur manquante elle-même, soit aux features pour lesquelles on n'a pas collecté de données.

Schéma illustrant le MNAR : l'absence de données est soit directement liée à la valeur manquante elle-même, soit liée à des features non observées, représentées par un tableau à droite.

Autrement dit, dans le MNAR, il existe un schéma bien défini dans les variables manquantes. Sauf que ce schéma n'a aucun lien avec les features observées.

❝

C'est différent du MCAR, où il n'y a justement aucun schéma défini.

Par exemple, dans une enquête de santé, des participants avec un niveau de stress très élevé pourraient choisir consciemment de ne pas révéler ce niveau de stress, par peur du jugement ou de la stigmatisation.

Résultat : l'absence de données sur le niveau de stress n'a rien d'aléatoire. Elle est directement influencée par le niveau de stress lui-même.

En quelque sorte, plus le niveau de stress est élevé, moins la personne est susceptible de le révéler, et plus la valeur a de chances de manquer dans le dataset collecté.

L'absence de données dépend donc directement de la variable qui manque elle-même.

C'est piégeux, non ?

Il n'y a pas grand-chose à faire pour régler ça, à part collecter plus de données ou de features. Et l'expertise métier devient alors extrêmement précieuse pour gérer intelligemment le MNAR et améliorer le processus de collecte.

Parfois, j'ai aussi préféré utiliser les techniques d'imputation classiques (celles employées pour le MCAR et le MAR), tout simplement parce que collecter plus de données n'est pas toujours faisable.

Mais comme on l'a vu plus haut, il existe un schéma d'absence de données bien défini dans le MNAR, et il peut être important. Or, une imputation directe fera disparaître cette information.

Une façon de conserver ce schéma est d'ajouter une feature binaire, qui indique si la valeur a été imputée ou non.

Schéma montrant une feature avec valeurs manquantes transformée, via une imputation accompagnée de l'ajout d'un flag binaire, en une feature imputée associée à une colonne indiquant quelles valeurs ont été imputées (1) ou non (0).

Ainsi, l'algorithme de ML peut quand même accéder à ces schémas de données manquantes, et les apprendre.

👉 À toi de jouer : quels autres points aimerais-tu ajouter sur le MCAR, le MAR et le MNAR ?

Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.


Commentaires

Avatar

ou participer

À lire ensuite

Des shots dans la même veine, à lire entre deux tâches.

Voir tous les shots
caret-right