Directives d'assurance et de contrôle de la qualité (AQ / CQ) pour une base de données

18

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:

  1. un deuxième utilisateur vérifie chaque point de données.
  2. inspecter visuellement l'histogramme de chaque variable pour détecter les valeurs aberrantes.
  3. les utilisateurs signalent des données douteuses après l'obtention de résultats erronés.

Des questions

  1. Existe-t-il des directives que je peux utiliser pour développer une procédure AQ / CQ robuste pour cette base de données?
  2. La première étape prend le plus de temps; puis-je faire quelque chose pour rendre cela plus efficace?
David LeBauer
la source
1
Les lecteurs ici seront également intéressés par le fil suivant: Tests de vérification des données essentielles .
gung - Rétablir Monica

Réponses:

25

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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).

  5. 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.

  6. 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.)

  7. 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.

  8. 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.

  9. 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.

whuber
la source
4
Eh bien, je suis assez amoureux de cette réponse. Je voudrais souligner que, au point 4 suivant, vous devez garder les contrôles simples - il y a souvent peu d'incongruités dans les données réelles que vos entrées devraient pouvoir entrer mais que vous ne pourrez pas prévoir. Par exemple, je m'assure que les dates sont entrées en tant que dates; mais j'ai cessé d'avoir des règles strictes sur les plages de dates, et au lieu de cela vérifier avec des rapports, et suivre les valeurs hors limites avec qui que ce soit qui a fait la saisie des données.
Matt Parker
5
Empêcher une personne d'entrer une valeur qu'elle estime correcte peut introduire plus d'erreurs que de la détecter et d'enquêter.
Matt Parker
+1, excellente réponse. Je suis d'accord avec Matt, j'aime trop cette réponse :)
mpiktas
1
@Matt Bons points, tous les deux. Je suis complètement d'accord. Concernant le premier, une bonne approche consiste à tester les procédures de saisie des données sur un petit sous-ensemble représentatif des données et à passer en revue de manière approfondie toutes les questions qui se posent. Cela ne résoudra pas tout ce qui peut survenir, mais il identifie très tôt la plupart des problèmes majeurs et vous permet de les traiter efficacement.
whuber
2
L'ajout de ces informations est utile en un seul endroit. 1. Créez un document de règles métier contenant les métadonnées. y compris les règles utilisées pour produire des variables dérivées telles que l'âge. 2. S'il s'agit d'une base de données administrative en particulier, supposez que les variables changeront avec le temps, par exemple de nouveaux codes sont ajoutés. Dans les métadonnées, expliquez quand le changement s'est produit et comment cela peut affecter le travail des séries chronologiques. 3. Si la base de données doit être ajoutée au fil du temps, les modifications d'horodatage de la base de données.
Michelle
3

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):

  • Communiquer la qualité des données
  • Confirmer une correspondance entre les données et leur description dans les métadonnées
  • Tenez compte de la compatibilité des données que vous intégrez
  • Élaborer un plan d'assurance et de contrôle de la qualité
  • Vérifiez les données que vous saisissez
  • Assurer un contrôle de qualité de base
  • Assurer l'intégrité et l'accessibilité lors des sauvegardes de données
  • Identifier les valeurs aberrantes
  • Identifier les valeurs estimées
  • Fournir des informations de version pour utilisation et découverte
David LeBauer
la source