Nous l'avons vu dans le chapitre précédent, un échantillon peut contenir des valeurs manquantes, des outliers et des doublons. Alors que faire ?
Gérez les valeurs manquantes
Lorsque l'échantillon contient des valeurs manquantes, on ne peut malheureusement pas faire de miracle pour les retrouver ! Cependant, plusieurs attitudes sont possibles.
Cherchez la vraie valeur
Cela semble assez évident dit comme ça, mais il est important de préciser que cela doit être le premier réflexe lorsqu'on est en face d'une valeur manquante ! En effet, avant de se lancer dans de grandes manœuvres, il est toujours préférable de vérifier si une recherche sur votre navigateur préféré, ou quelqu'un, ne serait pas en mesure de nous fournir la précieuse information recherchée.
Travaillez avec un jeu de données "gruyère"
Pour une variable donnée (par exemple, date de naissance dans l'exemple du chapitre précédent), si la proportion de valeurs manquantes est faible, alors on peut les oublier et ne rien faire. On laisse l'échantillon intact. On travaillera alors avec un jeu de données qui contiendra des "trous", comme dans un gruyère. :honte: Selon le traitement statistique que vous appliquerez, cette solution sera ou non acceptable.
Oubliez une variable
Cependant, si pour cette même variable, la proportion de valeurs manquantes est beaucoup trop importante, mieux vaut l'oublier. Cela à condition que la variable ne soit pas trop importante pour l'analyse. Cela équivaut à ne pas considérer une colonne dans le tableau du chapitre précédent.
Oubliez des individus
Si la variable qui contient des données manquantes est cruciale dans l'analyse, alors mieux vaut créer un sous-échantillon et y supprimer les individus pour lesquels cette variable est manquante. Par exemple, si vous analysez vos relevés de comptes bancaires en vous intéressant aux sommes d'argent que vous gagnez/dépensez, la variable "montant de l'opération" sera très importante. S'il arrive que le montant de l'opération soit inconnu pour certaines lignes de votre relevé, alors mieux vaut créer un sous-échantillon et y supprimer la totalité de ces lignes.
Cette dernière méthode contient cependant des risques. En effet, vous pouvez vous retrouver avec un nombre d'individus (un nombre de lignes) trop petit pour que votre analyse ait encore du sens. De plus, il se peut que votre échantillon ne soit plus représentatif de la population globale.
Essayez de deviner quand même !
Une méthode un peu plus aventurière consiste à combler les trous par des valeurs à deviner. C'est un peu la méthode des aventuriers ! :zorro: Bien sûr, ces valeurs ne correspondront pas à la valeur réelle, mais certaines méthodes permettent de ne pas se tromper de beaucoup. Deviner une valeur manquante s'appelle l'imputation.
Par exemple, on peut remplacer les valeurs manquantes de la variable taille par la taille moyenne des individus de notre échantillon. Dans notre exemple, pour corriger la taille de Hanna (que nous supposons être erronée), on la remplace par la moyenne des autres individus, soit 1,52 m. C'est l'imputation par la moyenne.
Devinez à partir d'autres variables
Mais on peut faire mieux ! Pour remplacer une variable donnée, on peut regarder les autres variables aux alentours. Il y a plusieurs méthodes qui utilisent ce principe.
Imaginons un nouvel individu : Luc, né en 1991, dont la taille est inconnue. Plutôt que de lui attribuer la moyenne de tout l'échantillon (1,52 m), on peut lui attribuer la moyenne des personnes qui ont à peu près son âge. Attribuons-lui donc la moyenne des tailles des personnes nées entre 1990 et 2000, soit 1,49 m. Ici, on a regardé la valeur de la variable date_de_naissance pour déduire la valeur de la variable taille.
D'autres méthodes sont également basées sur le fait de déduire une variable à partir d'autres. On peut citer les méthodes de Hot-deck, ou les méthodes basées sur des modèles de machine learning, que vous pouvez voir dans le cours Initiez-vous au machine learning, comme des méthodes de régression.
Dans tous les cas, il est nécessaire de toujours préciser quelle méthode vous avez utilisée dans chacun des résultats d'analyse que vous présenterez. C'est une question d'honnêteté intellectuelle. ^^
Traitez les outliers
Hanna mesure 3,45 m. Vous ne trouvez pas cela très grand ? Si. C'est très grand comparé aux tailles des autres êtres humains.
Mais attention, un outlier n'est pas forcément une valeur fausse ! En effet, Hanna mesure peut-être réellement 3,45 m. OK, c'est difficile à concevoir, mais c'est théoriquement possible.
Un outlier peut être :
une valeur aberrante : c'est une valeur qui est manifestement fausse ;
une valeur atypique : c'est une valeur qui "sort du lot", mais pas forcément fausse.
Mais comment déterminer si mon outlier est une valeur aberrante ou une valeur atypique ?
Dans l'exemple d'Hanna, même si cela est théoriquement possible, le record de taille pour un être humain se situe un peu au-dessus de 2,70 m. En ayant cette information en tête, on peut assez facilement conclure que notre outlier est une valeur aberrante, et le traiter en conséquence. Ainsi, c'est notre connaissance du sujet qui nous a permis dans cet exemple de faire la distinction : c'est ce que nous appelons le contexte.
Ainsi, en présence d'un outlier, la première étape va être de déterminer à partir du contexte de notre étude si ce dernier est une valeur aberrante ou une valeur atypique.
Si nous sommes sûrs que la valeur est erronée (erreur de saisie ou défaut d’un capteur, par exemple), alors il faut la supprimer s’il n’est pas possible de connaître la vraie valeur. Dans les autres cas, nous avons le choix entre :
Supprimer la valeur. On se retrouve alors avec une valeur manquante, à laquelle on peut imputer une valeur comme nous l’avons vu précédemment. L’imputation n’est pas obligatoire.
Conserver la valeur.
Comment choisir entre ces deux options ? Tout dépend des traitements que vous appliquerez par la suite. Certaines méthodes sont dites "robustes", car elle ne sont pas déstabilisées par les outliers. Par exemple, nous verrons par la suite que la moyenne est très sensible aux outliers, alors que la médiane ne l’est pas. Si vous souhaitez faire une moyenne, créez un sous-échantillon dans lequel vous ne considérez pas les outliers. Mais si vous calculez aussi la médiane, travaillez sur l’échantillon de départ. ;)
Éliminez les doublons
Dans notre exemple, Samuel est présent 2 fois. C’est problématique, car ce doublon (aussi appelé "donnée dupliquée") fausse les analyses : notamment la taille moyenne de l'échantillon.
Il faut éliminer les doublons. Cependant, il n’y a pas de règle précise pour les détecter : vous seul pouvez les détecter, à partir de la structure de vos données et en sachant comment elles ont été collectées. Mais parfois, ce sera impossible. :(
Un petit exemple : si votre échantillon contient une variable "identifiant", alors il est aisé de détecter des doublons. Ce sont ceux qui auront le même identifiant. ;) Dans notre exemple, on peut considérer que l’adresse e-mail est l’identifiant d’une personne. Dans notre exemple, les 2 lignes qui ont pour e-mail samuel_329@example.com
constituent un doublon.
Autre exemple : vous analysez des relevés de température pris dans un village. Il y a 2 stations météo dans ce village : la station 1, qui a fonctionné de nombreuses années jusqu’au 15 janvier 2019, puis qui s’est arrêtée à cause de son ancienneté. Cette panne ayant été prévue, une station 2 avait été installée (au même endroit) pour la remplacer : elle a été mise en service le 2 janvier 2019. Votre échantillon est donc constitué de relevés provenant des 2 stations. Cependant, les relevés compris entre le 2 janvier et le 15 janvier 2019 sont en double, car les 2 stations fonctionnaient en parallèle. Il vous faut donc supprimer, pour chaque date comprise dans cette période, l’un des 2 relevés.
Oui mais de nos deux lignes contenant samuel_329@example.com
, faut-il en supprimer une au hasard ?
En fait, il faut faire un peu plus attention. Mieux vaut les regrouper en une ligne. En effet, parmi ces 2 lignes, la première nous informe que Samuel est né le 20/09/2001, et la seconde ligne nous informe que Samuel habite au Bénin (information qui est manquante dans la première ligne). Le problème, c’est pour la taille : la première ligne nous dit que Samuel mesure 1,67 m, alors que la seconde nous affirme qu’il ne mesure que 1,45 m. Il y a contradiction. S’il n’y a pas d’autre moyen de vérification, on peut par exemple choisir de prendre la moyenne de ces 2 valeurs.
En résumé
Chaque erreur doit être traitée spécifiquement en fonction de sa nature.
Le premier réflexe face à une valeur manquante doit être d'essayer de trouver la valeur exacte.
Sinon, nous pouvons :
Choisir de laisser les choses telles quelles.
Supprimer les individus concernés lorsque leur nombre n'est pas trop important : on parle d'amputation.
Remplacer la valeur manquante, on parle alors d'imputation.
Supprimer la variable lorsque le nombre de valeurs manquantes est trop important.
Un outlier peut être une valeur aberrante, ou une valeur atypique.
Une valeur atypique peut être traitée spécifiquement. Mais pour une valeur aberrante, on peut choisir de supprimer cette dernière, ou la laisser telle quelle.
Enfin, en présence de doublons nous pouvons :
ne conserver qu'une seule ligne lorsque les informations sont identiques ;
trouver un moyen de regrouper les informations sur une seule ligne, en essayant de conserver le plus de cohérence possible.
Ouf >_<, voilà pour la théorie ! Il est à présent temps de voir un peu comment on peut mettre toutes ces méthodes en place pratiquement, avec un petit exemple avec R et Python dans le prochain chapitre. Vous êtes prêt ?