Contexte
Je supervise l'entrée des données de la littérature primaire dans une base de données . Le processus de saisie des données est sujet aux erreurs, en particulier parce que les utilisateurs doivent interpréter la conception expérimentale, extraire les données des graphiques et des tableaux et transformer les résultats en unités normalisées.
Les données sont entrées dans une base de données MySQL via une interface Web. Plus de 10 000 points de données provenant de> 20 variables,> 100 espèces et> 500 citations ont été inclus jusqu'à présent. Je dois effectuer des vérifications de la qualité non seulement des données variables, mais aussi des données contenues dans les tables de recherche, telles que les espèces associées à chaque point de données, l'emplacement de l'étude, etc.
La saisie des données est en cours, donc QA / QC devra être exécuté par intermittence. Les données n'ont pas encore été rendues publiques, mais nous prévoyons de les publier au cours des prochains mois.
Actuellement, mon AQ / CQ comporte trois étapes:
- un deuxième utilisateur vérifie chaque point de données.
- inspecter visuellement l'histogramme de chaque variable pour détecter les valeurs aberrantes.
- les utilisateurs signalent des données douteuses après l'obtention de résultats erronés.
Des questions
- Existe-t-il des directives que je peux utiliser pour développer une procédure AQ / CQ robuste pour cette base de données?
- La première étape prend le plus de temps; puis-je faire quelque chose pour rendre cela plus efficace?
la source
Réponses:
Cette réponse se concentre sur la deuxième question, mais dans le processus, une réponse partielle à la première question (lignes directrices pour une procédure d'AQ / CQ) émergera.
De loin, la meilleure chose que vous puissiez faire est de vérifier la qualité des données au moment de la tentative d'entrée. Les vérifications et les rapports des utilisateurs demandent beaucoup de travail et doivent donc être réservés pour plus tard dans le processus, aussi tard que possible.
Voici quelques principes, lignes directrices et suggestions, issus d'une vaste expérience (avec la conception et la création de nombreuses bases de données comparables et beaucoup plus grandes que la vôtre). Ce ne sont pas des règles; vous n'avez pas à les suivre pour réussir et être efficace; mais ils sont tous là pour d'excellentes raisons et vous devriez réfléchir sérieusement à vous en écarter.
Séparez la saisie des données de toutes les activités intellectuellement exigeantes . Ne demandez pas simultanément aux opérateurs de saisie de données de vérifier quoi que ce soit, de compter quoi que ce soit, etc. Limitez leur travail à la création d'un fac-similé lisible par ordinateur, rien de plus. En particulier, ce principe implique que les formulaires de saisie de données doivent refléter le format dans lequel vous avez initialement obtenu les données, et non le format dans lequel vous prévoyez de stocker les données. Il est relativement facile de transformer un format en un autre ultérieurement, mais c'est un processus sujet aux erreurs pour tenter la transformation à la volée lors de la saisie des données.
Créez une piste d'audit des données : chaque fois que quelque chose est fait pour les données, à partir de l'étape de saisie des données, documentez-les et enregistrez la procédure de manière à ce qu'il soit facile de revenir en arrière et de vérifier ce qui s'est mal passé (parce que les choses vont mal). Pensez à remplir des champs pour les horodatages, les identifiants des opérateurs de saisie de données, les identifiants des sources pour les données d'origine (comme les rapports et leurs numéros de page), etc. Le stockage est bon marché, mais le temps pour rechercher une erreur est cher.
Automatisez tout. Supposons que toute étape devra être refaite (au pire moment possible, selon la loi de Murphy), et planifier en conséquence. N'essayez pas de gagner du temps maintenant en faisant quelques "étapes simples" à la main.
En particulier, créez un support pour la saisie de données : créez un front-end pour chaque table (même une feuille de calcul peut faire l'affaire) qui fournit un moyen clair, simple et uniforme pour entrer des données. En même temps, le front-end doit appliquer votre "entreprise" règles: "c'est-à-dire qu'il doit effectuer autant de contrôles de validité simples que possible. (Par exemple, le pH doit être compris entre 0 et 14; les dénombrements doivent être positifs.) Idéalement, utilisez un SGBD pour appliquer les contrôles d'intégrité relationnelle (par exemple, chaque espèce associée à une mesure existe réellement dans la base de données).
Comptez constamment les choses et vérifiez que les chiffres correspondent exactement . Par exemple, si une étude est censée mesurer les attributs de 10 espèces, assurez-vous (dès que la saisie des données est terminée) que 10 espèces sont réellement déclarées. Bien que la vérification des nombres soit simple et non informative, elle est excellente pour détecter les données dupliquées et omises.
Si les données sont précieuses et importantes, envisagez de saisir indépendamment deux fois l'ensemble de données . Cela signifie que chaque élément sera saisi à des moments différents par deux personnes différentes sans interaction. C'est un excellent moyen de détecter les fautes de frappe, les données manquantes, etc. Le recoupement peut être complètement automatisé. C'est plus rapide, meilleur pour détecter les erreurs et plus efficace qu'une double vérification manuelle à 100%. (L'entrée de données "personnes" peut inclure des périphériques tels que des scanners avec OCR.)
Utilisez un SGBD pour stocker et gérer les données. Les feuilles de calcul sont idéales pour prendre en charge la saisie de données, mais extrayez vos données des feuilles de calcul ou des fichiers texte et dans une vraie base de données dès que possible. Cela empêche toutes sortes d'erreurs insidieuses tout en ajoutant beaucoup de prise en charge pour les vérifications automatiques de l'intégrité des données. Si vous devez, utilisez votre logiciel statistique pour le stockage et la gestion des données, mais envisagez sérieusement d'utiliser un SGBD dédié: il fera un meilleur travail.
Une fois toutes les données entrées et vérifiées automatiquement, dessinez des images : créez des tableaux triés, des histogrammes, des nuages de points, etc., et regardez-les tous. Ceux-ci sont facilement automatisés avec n'importe quel progiciel statistique à part entière.
Ne demandez pas aux gens d'effectuer des tâches répétitives que l'ordinateur peut effectuer . L'ordinateur est beaucoup plus rapide et plus fiable. Prenez l'habitude d'écrire (et de documenter) de petits scripts et de petits programmes pour effectuer n'importe quelle tâche qui ne peut pas être terminée immédiatement. Celles-ci feront partie de votre piste d'audit et permettront de refaire facilement le travail. Utilisez la plateforme avec laquelle vous êtes à l'aise et adaptée à la tâche. (Au fil des ans, en fonction de ce qui était disponible, j'ai utilisé un large éventail de ces plates-formes et toutes ont été efficaces à leur manière, allant des programmes C et Fortran aux scripts AWK et SED, aux scripts VBA pour Excel et Word, et personnalisés programmes écrits pour les systèmes de bases de données relationnelles, les SIG et les plates-formes d'analyse statistique comme R et Stata.)
Si vous suivez la plupart de ces directives, environ 50% à 80% du travail pour obtenir des données dans la base de données sera la conception de la base de données et l'écriture des scripts de support. Il n'est pas inhabituel d'obtenir 90% d'un tel projet et d'être achevé à moins de 50%, tout en terminant à temps: une fois que tout est configuré et testé, la saisie et la vérification des données peuvent être incroyablement efficaces.
la source
DataOne fournit un ensemble utile de meilleures pratiques de gestion des données qui peuvent être filtrées par balise. Les meilleures pratiques étiquetées avec "qualité", trouvées sur http://www.dataone.org/best-practices/quality , réitérant et développant de nombreux points soulevés par @whuber. Voici une liste des sujets traités (par ordre alphabétique):
la source