Dans mon travail, je travaille souvent avec des ensembles de données d'autres personnes. Des non-experts m'apportent des données cliniques et je les aide à les résumer et à effectuer des tests statistiques.
Le problème que je rencontre est que les ensembles de données que je suis amené sont presque toujours semés de fautes de frappe, d'incohérences et de toutes sortes d'autres problèmes. Je suis intéressé de savoir si d’autres personnes ont des tests standard pour vérifier tous les jeux de données entrants.
Auparavant, je dessinais des histogrammes de chaque variable, mais je me rends compte à présent que de nombreuses erreurs horribles peuvent survivre à ce test. Par exemple, l’autre jour, j’ai eu un jeu de données de mesures répétées où, pour certains individus, la mesure répétée était identique à l’heure 2 et à l’heure 1. Cela s’est par la suite avéré inexact, comme on pouvait s’y attendre. Un autre ensemble de données comprenait une personne qui était passée d’un très grave désordre (représenté par un score élevé) à une situation sans problème, représentée par un 0 dans l’ensemble. C'est tout simplement impossible, bien que je ne puisse pas le prouver définitivement.
Quels tests de base puis-je exécuter sur chaque jeu de données pour vérifier qu'ils ne contiennent pas de fautes de frappe et qu'ils ne contiennent pas de valeurs impossibles?
Merci d'avance!
Réponses:
Cela aide à comprendre comment les données ont été enregistrées.
Laisse-moi partager une histoire . Une fois, il y a longtemps, de nombreux jeux de données étaient uniquement stockés dans une copie papier à fondu. En ces jours sombres, j’ai passé un contrat avec une organisation (de grande taille, dont vous possédez probablement le stock) pour informatiser environ 10 ^ 5 enregistrements de données de surveillance de l’environnement dans l’une de ses usines de fabrication. Pour ce faire, j'ai personnellement balisé une étagère de rapports de laboratoire (pour montrer où se trouvaient les données), créé des formulaires de saisie de données et passé un contrat avec une agence de travail temporaire pour savoir lire et écrire.les travailleurs à taper les données dans les formulaires. (Oui, vous deviez payer un supplément pour les personnes sachant lire.) En raison de la valeur et de la sensibilité des données, j'ai conduit ce processus en parallèle avec deux travailleurs à la fois (qui changeaient généralement de jour en jour). Cela a pris quelques semaines. J'ai écrit un logiciel pour comparer les deux ensembles d'entrées, en identifiant et en corrigeant systématiquement toutes les erreurs qui se sont présentées.
Boy étaient là des erreurs! Qu'est-ce qui peut aller mal? Un bon moyen de décrire et de mesurer les erreurs est au niveau de l’ enregistrement de base , qui dans cette situation était la description d’un seul résultat analytique (la concentration de certains produits chimiques, souvent) pour un échantillon particulier obtenu à un point de surveillance donné sur une période donnée. date donnée. En comparant les deux jeux de données, j'ai trouvé:
Erreurs d'omission : un jeu de données inclurait un enregistrement, pas un autre. Cela se produit généralement parce que soit (a) une ligne ou deux seraient négligés au bas d'une page ou (b) une page entière serait ignorée.
Erreurs apparentes d'omission qui étaient en réalité des erreurs de saisie de données. Un enregistrement est identifié par un nom de point de surveillance, une date et "l'analyte" (généralement un nom chimique). Si l'un de ces éléments présente une erreur typographique, il ne sera pas mis en correspondance avec les autres enregistrements auxquels il est lié. En effet, l'enregistrement correct disparaît et un enregistrement incorrect apparaît.
Fausse duplication . Les mêmes résultats peuvent apparaître dans plusieurs sources, être transcrits plusieurs fois et semblent être de vraies mesures répétées quand ils ne le sont pas. Les doublons sont faciles à détecter, mais le fait de savoir s’ils sont erronés dépend du fait de savoir si des doublons doivent même apparaître dans le jeu de données. Parfois, vous ne pouvez pas savoir.
Frank erreurs de saisie de données . Les "bons" sont faciles à attraper car ils changent le type de donnée: en utilisant la lettre "O" pour le chiffre "0", par exemple, on transforme un nombre en un non-nombre. D'autres bonnes erreurs changent tellement la valeur qu'elle peut être facilement détectée avec des tests statistiques. (Dans un cas, le premier chiffre de "1 000,010 mg / Kg" a été coupé, ce qui laisse une valeur de 10. C'est un changement énorme lorsque vous parlez d'une concentration de pesticide!) Les mauvaises erreurs sont difficiles à détecter car elles changent une valeur dans une qui correspond (en quelque sorte) au reste des données, telle que la saisie de "80" pour "50". (Ce genre d'erreur se produit tout le temps avec le logiciel OCR.)
Transpositions . Les bonnes valeurs peuvent être entrées mais associées aux mauvaises clés d’enregistrement. Cela est insidieux, car les caractéristiques statistiques globales de l'ensemble de données peuvent rester inchangées, mais des différences parasites peuvent être créées entre les groupes. Seul un mécanisme comme la double entrée est même capable de détecter ces erreurs.
Une fois que vous êtes conscient de ces erreurs et que vous connaissez ou avez une théorie de la façon dont elles se produisent, vous pouvez écrire des scripts pour surveiller vos ensembles de données afin de détecter la présence éventuelle de telles erreurs et les signaler pour plus d'attention. Vous ne pouvez pas toujours les résoudre, mais vous pouvez au moins inclure un champ "commentaire" ou "indicateur de qualité" pour accompagner les données lors de leur analyse ultérieure.
Depuis lors, j'ai porté une attention particulière aux problèmes de qualité des données et j'ai eu beaucoup plus d'occasions de procéder à des vérifications complètes de grands ensembles de données statistiques. Aucune n'est parfaite. ils bénéficient tous de contrôles de qualité. Certains des principes que j'ai développés au fil des ans pour ce faire incluent
Dans la mesure du possible, créez une redondance dans les procédures de saisie et de transcription de données: sommes de contrôle, totaux, saisies répétées: tout pour prendre en charge les contrôles internes internes de cohérence.
Si possible, créez et exploitez une autre base de données décrivant à quoi les données devraient ressembler: il s'agit de métadonnées lisibles par ordinateur. Par exemple, dans le cadre d’une expérience sur un médicament, vous pouvez savoir à l’avance que chaque patient sera vu trois fois. Cela vous permet de créer une base de données avec tous les enregistrements corrects et leurs identifiants avec les valeurs qui ne demandent qu'à être renseignées. Remplissez-les avec les données qui vous ont été fournies, puis recherchez les doublons, les omissions et les données inattendues.
Normalisez toujours vos données (en particulier, placez- les sous au moins la quatrième forme normale ), quelle que soit la manière dont vous envisagez de formater l'ensemble de données pour analyse. Cela vous oblige à créer des tableaux de chaque entité conceptuellement distincte que vous modélisez. (Dans le cas environnemental, cela inclurait des tableaux de sites de surveillance, des échantillons, des produits chimiques (propriétés, plages typiques, etc.), des tests de ces échantillons (un test couvre généralement une série de produits chimiques) et les résultats individuels de ces tests. Ce faisant, vous créez de nombreuses vérifications efficaces de la qualité et de la cohérence des données et identifiez de nombreuses valeurs potentiellement manquantes, en double ou incohérentes.
Cet effort (qui nécessite de bonnes compétences en traitement de données mais qui est simple) est étonnamment efficace. Si vous aspirez à analyser des ensembles de données volumineux ou complexes et que vous n’avez pas une bonne connaissance pratique des bases de données relationnelles et de leur théorie, ajoutez-le à votre liste de choses à apprendre le plus tôt possible. Cela rapportera des dividendes tout au long de votre carrière.
Effectuez toujours autant de contrôles "stupides" que possible . Ce sont des vérifications automatisées d'éléments évidents tels que les dates tombent dans les périodes prévues, le nombre de patients (ou de produits chimiques ou autres) s'additionne toujours correctement, les valeurs sont toujours raisonnables (par exemple, un pH doit être compris entre 0 et 14 et peut-être dans une plage beaucoup plus étroite pour, par exemple, les lectures de pH sanguin), etc. C'est là que l'expertise du domaine peut être la plus utile: le statisticien peut sans crainte poser des questions stupides aux experts et exploiter les réponses pour vérifier les données.
Bien entendu, on peut en dire beaucoup plus - le sujet vaut la peine d'être lu - mais cela devrait suffire à stimuler les idées.
la source
@ Whuber fait de bonnes suggestions. Je voudrais seulement ajouter ceci: parcelles, parcelles, parcelles, parcelles. Nuages de points, histogrammes, boîtes à moustaches, diagrammes de lignes, cartes thermiques et tout ce que vous pouvez penser. Bien sûr, comme vous l'avez constaté, certaines erreurs ne sont apparentes sur aucune parcelle, mais elles constituent un bon point de départ. Assurez-vous simplement que votre logiciel gère clairement les données manquantes, etc.
Selon le contexte, vous pouvez faire preuve de créativité. Une chose que j’aime faire avec les données multivariées est d’ajuster un modèle factoriel / ACP probabiliste (quelque chose qui permettra l’imputation multiple pour les données manquantes) et de rechercher les scores pour autant de composantes que possible. Les points de données qui ont un score élevé sur les composants / facteurs moins importants sont souvent des valeurs aberrantes que vous ne verriez peut-être pas autrement.
la source
Les grandes choses que j'ai tendance à vérifier:
Bonne question BTW - J'espère lire l'expérience d'autres personnes à ce sujet.
la source
Lorsque vous avez des mesures dans le temps (" données longitudinales "), il est souvent utile de vérifier les gradients ainsi que les distributions marginales. Ce gradient peut être calculé à différentes échelles. Plus généralement, vous pouvez effectuer des transformations significatives sur vos données (fourier, ondelette) et vérifier les distributions des marginaux des données transformées.
la source
Quelques-uns je passe toujours par:
Ce sont les premières étapes que je franchis pour m'assurer qu'un jeu de données est même prêt pour quelque chose comme une analyse exploratoire des données. Assis, errant à propos des données, certains vont "Est-ce que ... ça semble correct?"
la source
J'utiliserais une méthode d'échantillonnage d'acceptation pour chaque colonne (il donne le nombre de coupures où vous pouvez tracer une ligne de démarcation entre qualité élevée et qualité médiocre), il existe un calculateur en ligne pour cela.
la source