Chapitre 8

Le nettoyage des données

Par Marit Brademann and Dyanna Gregory
Adapté par Laurent Reber

Maintenant que votre jeu de données a été préparé, vous êtes prêt pour la prochaine étape: le nettoyage. Mais qu’est-ce que cela signifie ? Qu’entend-on exactement par données propres et que devez-vous faire pour les transformer ainsi?

Et bien, lorsque l’on nettoie des données, nous les passons en revue pour identifier les informations erronées - chiffres incorrects, fautes de frappe, etc - et nous décidons s’il est nécessaire des les corriger (si elles peuvent l’être) ou de les supprimer du jeu. De manière similaire à la préparation des données, plusieurs tâches de nettoyage de données combinent étapes automatisées et manuelles. L'intervention manuelle est nécessaire afin de valider les erreurs potentielles identifiées automatiquement et confirmer qu’il s’agit bien d’erreurs. En effet, certains problèmes reportés par un ordinateur peuvent être des observations extrêmes, il est donc important que vous soyez impliqué dans le processus de validation. Automatiser toutes les tâches signifierait prendre le risque d’effacer des données valides !

Que faire ?

Commençons par les tâches de nettoyage les plus simples. Nous allons utiliser Excel pour la plupart des exemples qui suivent, mais n’importe quel outil de manipulation de données ou de tables peut être utilisé pour réaliser ces procédures (une liste de programmes est disponible en appendice).

Vérification des plages de valeurs

La vérification des plages de valeurs est une manière directe de nettoyer des données numériques. Elle consiste à s’assurer que toutes les valeurs du jeu se situent entre des bornes extrêmes acceptables. Prenons un exemple basé sur les notes d’un devoir d’école. Mettez-vous à la place d’un professeur de collège et imaginez que vos assistants ont entré une première liste de notes pour les devoirs réalisés durant le semestre. En tant que professeur, vous voulez être sûr que les valeurs ont été entrées correctement. Vous allez donc vérifier le jeu de données en commençant par trier les colonnes qui contiennent les résultats du premier devoir, notés sur une échelle de 0 à 100. Les premiers enregistrements sont les suivants:

Étudiant (ID) Note du devoir
679372531 980
673540288 99
674082892 97
673923590 96

Le score de 980 n’est pas dans la plage de valeurs acceptables et apparaît immédiatement comme une erreur. L’un des assistants a probablement ajouté accidentellement un zéro après le score qui aurait dû être de 98. Vous voudrez sans doute marquer cet enregistrement afin de confirmer la note réelle avec l’assistant.

Une vérification visuelle des données permet aussi de révéler certains problèmes, ce même si les valeurs se trouvent à l’intérieur de la plage admise:

Étudiant (ID) Note du devoir
674472019 78
679029425 75
671822390 74
671278927 9

Dans le cas ci-dessus, nous voyons tout de suite qu’une note est bien plus faible que les autres. Est-ce une erreur? Le score de 9 était-il en fait de 90? Voici un autre enregistrement qu’il est nécessaire de marquer afin de confirmer sa valeur. Ces deux exemples simples illustrent l’importance d’être personnellement impliqué dans les processus de nettoyage de données, notamment pour des variables importantes telles que les notes des élèves ou des variables clés de projets de recherche. Il est à noter qu’une vérification manuelle de toutes les valeurs d’un jeu de données peut prendre du temps. Toutes les variables ne sont pas non plus créées de manière égale : c’est à vous de décider quelles variables vous devez vérifier manuellement et lesquelles peuvent être validées automatiquement.Étudiant (ID)

La vérification des plages de valeurs fonctionne quelle que soit la plage. Vous vous attendez peut-être à trouver un nombre décimal compris entre 0 et 1, ou alors votre variable est la température du corps humain en degrés Fahrenheit et vous vous attendez à trouver des valeurs entre 97.0 et 99.0 afin d’inclure les personnes dont la température est un peu plus basse ou un peu plus haute que la moyenne.Étudiant (ID)Étudiant (ID)

Vous pouvez aussi filtrer vos valeurs afin de vérifier si certaines se trouvent en-dehors de la plage acceptable. On notera que ce test ne permet pas d’identifier les valeurs qui bien que se trouvant dans la plage considérée sont extrêmes par rapport aux autres valeurs de votre jeu de données. Dans le cas précédent, un filtre permettrait de détecter le score de 980, mais pas celui de 9. Si vous utilisez la méthode du filtre pour vérifier vos plages de valeurs, une bonne pratique est d’utiliser une autre méthode afin de valider la distribution des vos données et d’identifier les valeurs qui semblent incohérentes par rapport aux autres.

Vérificateur d’orthographe

Le vérificateur d’orthographe est un test simple que vous pouvez utiliser pour détecter des problèmes dans un jeu de données alphanumériques. Dans ce cas, il est préférable de valider les champs les uns après les autres plutôt que de chercher à valider le jeu dans son ensemble. En effet, un mot considéré comme orthographié incorrectement pour une variable peut être valide pour une autre variable. C’est par exemple le cas si le prénom d’une personne doit être entré. Si vous avez un jeu de données qui inclut un champ “prénom”, un certain nombre d’entrées généreront une alerte du vérificateur d’orthographe, même si ce sont des prénoms légitimes. En vous focalisant sur un champ à la fois, vous pourrez plus rapidement revoir le jeu complet. Reprenons l’exemple des étudiants indiquant leur branche principale dans une étude utilisée au chapitre sur la préparation des données et admettons que l’un des étudiants ait entré “Mthématiques” à la place de “Mathématiques”. Une vérification de l’orthographe dans la colonne “Branche principale” permettra d’identifier et de corriger rapidement l’erreur en remplaçant la valeur par “Maths” ou “Mathématiques”, en fonction du terme que vous aurez choisi.

Recherche de motifs et expressions régulières

Une approche un peu plus avancée de vérification de données est la recherche de motifs. Ce type de processus peut, par exemple, être utilisé pour vérifier que toutes les valeurs entrées dans un champ sont bien des adresses courriels. Cette méthode implique l’utilisation d’expressions régulières qui permettent de dire à un ordinateur “Je ne veux stocker que les objets qui correspondent à {cela} dans cette variable. Dis-moi si certaines valeurs ne correspondent pas à {cela}.” La syntaxe utilisée pour déterminer ce que {cela} signifie peut varier d’un programme à un autre et peut avoir l’air un peu compliqué si vous n’avez pas l’habitude de travailler avec des expressions régulières. Mais si vous avez déjà utilisé un astérisque (*) comme caractère clé dans une recherche, c’est que vous avez déjà utilisé une expression régulière, vous en connaissez donc déjà une partie !

Il existe aussi des options de recherche de motifs dans Excel, ainsi que des options de filtrage avancées qui parfois fonctionnent même mieux. Référez-vous à la section sur les ressources pour en apprendre plus sur l’utilisation des expressions régulières dans Excel.

Combinaison de champs

Vous pouvez également combiner certains champs afin de valider certaines données. Il est même parfois nécessaire de le faire puisque seule l’étude de l’ensemble des champs permet de déterminer si un champ ou un autre contient une valeur incorrecte. Si vous utilisez une application de e-banking, c’est quelque chose que vous faites tout le temps sans même vous en rendre compte ! La liste de vos transactions bancaires vous montre plusieurs champs qui n’ont de sens que lorsqu’ils sont combinés et qui vont immédiatement attirer votre attention si l’un ou l’autre semble incorrect. Vous trouvez typiquement la source de la transaction, le montant de la transaction, la monnaie, l’indication de crédit ou de débit, la date de la transaction ainsi que le solde de votre compte. Tous ces éléments font partie d’un jeu de données, et vous vérifiez ce jeu de données chaque fois que vous accédez à votre compte en ligne et que vous vous assurez que tout est correct. Si le montant de la transaction était différent de celui auquel vous vous attendez ou si le solde de votre compte était faux, vous le remarqueriez immédiatement et préviendriez votre banque.Étudiant (ID)

C’est la même chose avec n’importe quel jeu de données. Il peut exister des champs qui n’ont de sens que lorsqu’ils sont ensemble. Imaginez que vous travaillez sur une étude portant sur les médicaments que les patients d’un hôpital doivent prendre quotidiennement en utilisant trois champs différents: un pour le médicament, un pour la quantité et un pour l’unité. Un enregistrement dans ce jeu de données donnerait par exemple “Aspirine, 500, mg” qui indiquerait que le patient doit prendre 500 mg d’aspirine par jour. Maintenant, imaginons que vous receviez un enregistrement qui indique “Morphine, 200, kg”. Quelle serait votre réaction ? S’il est concevable qu’un patient dans un hôpital reçoive une dose de 200 mg de morphine par jour (le chiffre lui-même ne permet pas de s’alerter), l’unité est clairement incorrecte. Après avoir identifié l’erreur, vous voudrez probablement mettre à jour le dossier du patient avec l’unité correcte.

Si un champ peut être édité de manière libre, il existe une infinité de valeurs que vous pouvez recevoir. Ainsi, vous devez étudier votre jeu de données suffisamment tôt afin d’identifier les groupes de variables qui fonctionnent ensemble et vérifier les enregistrements périodiquement pour détecter les problèmes potentiels. Mais, parce que la vérification des données peut prendre du temps, c’est à vous de décider quels champs doivent être nettoyés afin de garantir un résultat final fiable, peu importe que le résultat soit une visualisation, une analyse statistique ou un rapport.

Que se passerait-il si les données n’étaient pas nettoyées?

Comme les processus de nettoyage des données peuvent prendre du temps, il est nécessaire que vous décidiez quelles variables doivent être traitées et quel type de procédé doit être utilisé. Mais, que se passerait-il si nous court-circuitions le processus de nettoyage des données dans son ensemble et que nous laissions les données “sales” ? La réponse dépend entre autres de la qualité initiale des données de votre ensemble. Au mieux, vous serez chanceux et la qualité sera suffisante pour ne pas impacter votre rapport. Au pire, vos résultats seront incorrects à cause des données que vous n’aurez pas nettoyées.Étudiant (ID)

Bien sûr, vos données peuvent être relativement propres. Si c’est le cas, vous pouvez ignorer le processus de nettoyage avec un impact minimum. Mais sans les vérifications de base incluses dans ce processus, vous n’aurez pas vraiment le moyen de connaître le niveau de qualité de vos données. Ceci dit…

Acceptez que les jeux de données ne sont jamais propres à 100%

Le nettoyage des données est comme le nettoyage de votre maison, tout ne peut pas être parfait. Vous aurez beau tout essayer, vous ne pourrez pas obliger des personnes à entrer des données correctes à 100%. Il faut également être conscient que des erreurs peuvent être commises lors du processus de nettoyage lui-même. Vous voulez évidemment que vos données soient aussi précises que possible, mais il y aura toujours un peu de poussière dans les coins. Dès lors, il est important d’accepter que les jeux de données ne sont jamais parfaits et de comprendre comment définir ce qu’est un niveau de qualité acceptable pour répondre à vos besoins.Étudiant (ID)

Prenons un exemple. Vous avez une liste de 1000 contacts dans une base de données comportant un million d’enregistrements et vous remarquez que 2 personnes sur les 1000 de votre liste ont leur nom et leur prénom ensemble dans un seul champ. Allez-vous lancer un projet pour vérifier et corriger chacun des enregistrements de votre base ? Étudiant (ID)

La réponse est : cela dépend. Étudiant (ID)

Vous pouvez prendre la décision que les données sont soit suffisamment propres pour répondre à vos besoins, soit pas. Cela dépend réellement de la variable en question et de ce que vous voulez en faire. Si vous êtes responsable de vérifier que les étudiants reportent correctement leur branche principale pour un rapport interne et que vous imaginez que le taux d’erreur approche 0,01%, il ne sera pas forcément nécessaire de lancer le projet. Par contre, si vous devez vérifiez une variable critique liée à un rapport sur la sécurité et que vous pensez que le taux d’erreur approcherait 5%, il sera préférable de vérifier et corriger l’ensemble des enregistrements. Avec l’expérience, vous pourrez plus facilement identifier la qualité d’un jeu de données et quelle quantité de travail serait nécessaire pour le nettoyer. Lors de cette étape, il est conseillé de consulter les parties prenantes de votre projet pour mieux évaluer le nettoyage nécessaire. Vous devez évidemment toujours essayer d’avoir des données aussi propres que possible, mais vous devez aussi garder à l’esprit que votre jeu ne sera jamais parfait. Étudiant (ID)

N’oublions pas que la préparation et le nettoyage des données ont un coût. Si vous engagez quelqu’un pour faire ce travail pour vous, l’impact sera financier. Si vous le faites vous-mêmes, l’impact sera temporel. Donc si vous ne planifiez pas d’utiliser les numéros de téléphones pour répondre à vos besoins, pourquoi les collecter ? Ne devrait-on pas simplement ne plus collecter cette information et ne plus avoir à la nettoyer à l’avenir ?Étudiant (ID)

Une fois les données nettoyées, documentez !

Une fois que nos données ont été nettoyées, il nous reste encore un petit problème à résoudre: comment pouvons-nous (et comment les autres peuvent !) vérifier que les résultats obtenus sont corrects et que nous n’avons pas introduit d’erreurs en manipulant les données? Après tout, les données nettoyées peuvent sembler bien différentes des données brutes avec lesquelles vous avez commencé.

La réponse la plus simple est de documenter, particulièrement si vous pensez que vous aurez à partager vos données à l’avenir. Lorsque vous nettoyez vos données, il est judicieux de sauvegarder vos changements dans des fichiers séparés: de cette manière, vous pourrez toujours revenir en arrière et regarder ce qui a changé entre les données brutes et les données traitées, quels enregistrements et quels champs ont été supprimés, etc. Cela permet aussi de s’assurer que vous pourrez retourner aux données brutes ou à une étape antérieure au cas où il serait nécessaire d’utiliser vos données pour un autre objectif ou de suivre une autre méthode de nettoyage. Étudiant (ID)

N’oubliez pas de documenter chaque étape réalisée au fur et à mesure, en indiquant exactement ce qui a été fait pour identifier les données incorrectes et quels éléments ont été retirés. Il est toujours plus facile de documenter au fur et à mesure que de devoir se rappeler chaque étape ultérieurement. Ceci est d’autant plus important si vous utilisez des procédures de nettoyage manuelles en utilisant des outils tels qu’Excel, car vous ne serez pas en mesure de les réexécuter tel que vous auriez pu le faire avec un programme. Une règle simple est que si vous ne pouvez pas suivre vos étapes une seconde fois en obtenant le même résultat, ne vous attendez pas à ce que quelqu’un d’autre puisse le faire. Étudiant (ID)

Et peu importe la manière dont vous le faites, une documentation claire et précise des procédures vous permettra toujours de justifier pourquoi certaines données ont été retirées et d’autres pas et permettra aussi à d’autres personnes de vérifier que le nettoyage a été réalisé de manière compétente et correcte. De plus, si vous pensez que vous aurez plus tard à partager votre jeu avec un statisticien pour des analyses complémentaires, pouvoir lui montrer le jeu de données brutes et les opérations réalisées ne pourra que faciliter son travail.Étudiant (ID)