Linee guida per il controllo qualità e controllo qualità (QA / QC) per un database


18

sfondo

Sto supervisionando l'inserimento di dati dalla letteratura primaria in un database . Il processo di immissione dei dati è soggetto a errori, in particolare perché gli utenti devono interpretare la progettazione sperimentale, estrarre dati da grafici e tabelle e trasformare i risultati in unità standardizzate.

I dati vengono immessi in un database MySQL tramite un'interfaccia web. Finora sono stati inclusi oltre 10k punti dati da> 20 variabili,> 100 specie e> 500 citazioni. Devo eseguire controlli della qualità non solo dei dati variabili, ma anche dei dati contenuti nelle tabelle di ricerca, come le specie associate a ciascun punto dati, l'ubicazione dello studio, ecc.

L'immissione dei dati è in corso, pertanto sarà necessario eseguire il controllo qualità / controllo qualità in modo intermittente. I dati non sono ancora stati resi pubblici, ma stiamo pianificando di rilasciarli nei prossimi mesi.

Attualmente, il mio QA / QC prevede tre passaggi:

  1. un secondo utente controlla ciascun punto dati.
  2. ispezionare visivamente l'istogramma per ogni variabile per valori anomali.
  3. gli utenti riportano dati discutibili dopo aver ottenuto risultati spuri.

Domande

  1. Ci sono linee guida che posso usare per sviluppare una solida procedura di QA / QC per questo database?
  2. Il primo passo è il più dispendioso in termini di tempo; c'è qualcosa che posso fare per renderlo più efficiente?

1
I lettori qui saranno anche interessati al seguente thread: Test di controllo dei dati essenziali .
gung - Ripristina Monica

Risposte:


25

Questa risposta si concentra sulla seconda domanda, ma nel processo emergerà una risposta parziale alla prima domanda (linee guida per una procedura di QA / QC).

Di gran lunga la cosa migliore che puoi fare è controllare la qualità dei dati al momento del tentativo di inserimento. I controlli e i rapporti degli utenti sono ad alta intensità di manodopera e quindi dovrebbero essere riservati per le fasi successive del processo, il più tardi possibile.

Ecco alcuni principi, linee guida e suggerimenti, derivati ​​da una vasta esperienza (con la progettazione e la creazione di molti database comparabili e molto più grandi dei tuoi). Non sono regole; non è necessario seguirli per avere successo ed efficienza; ma sono tutti qui per ottime ragioni e dovresti pensare molto a deviare da loro.

  1. Separare l'immissione dei dati da tutte le attività intellettualmente impegnative . Non chiedere agli operatori di immissione dati contemporaneamente di controllare qualsiasi cosa, contare qualsiasi cosa, ecc. Limitare il loro lavoro alla creazione di un fax leggibile da computer dei dati, niente di più. In particolare, questo principio implica che i moduli di immissione dei dati dovrebbero riflettere il formato in cui si ottengono originariamente i dati, non il formato in cui si prevede di archiviare i dati. Trasformare un formato in un secondo momento è relativamente semplice, ma è un processo soggetto a errori per tentare la trasformazione al volo durante l'immissione dei dati.

  2. Creare una traccia di controllo dei dati : ogni volta che viene fatto qualcosa ai dati, a partire dalla fase di immissione dei dati, documentare e registrare la procedura in modo da facilitare il ritorno e controllare cosa è andato storto (perché le cose andranno male). Prendi in considerazione la possibilità di compilare campi per timestamp, identificatori di operatori di immissione dati, identificatori di fonti per i dati originali (come report e relativi numeri di pagina), ecc. La memorizzazione è economica, ma il tempo per rintracciare un errore è costoso.

  3. Automatizza tutto. Supponi che ogni passaggio debba essere ripetuto (nel peggior momento possibile, secondo la Legge di Murphy), e pianifica di conseguenza. Non cercare di risparmiare tempo ora facendo alcuni "semplici passaggi" a mano.

  4. In particolare, crea il supporto per l'inserimento dei dati : crea un front-end per ogni tabella (anche un foglio di calcolo può fare bene) che fornisce un modo chiaro, semplice e uniforme per ottenere i dati. Allo stesso tempo, il front-end dovrebbe imporre il tuo "business" regole: "cioè, dovrebbe eseguire quanti più semplici controlli di validità possibile. (Ad esempio, il pH deve essere compreso tra 0 e 14; i conteggi devono essere positivi.) Idealmente, utilizzare un DBMS per imporre controlli di integrità relazionale (ad esempio, ogni specie associata a una misurazione esiste davvero nel database).

  5. Conta costantemente le cose e verifica che i conteggi siano esattamente d'accordo. Ad esempio, se si suppone che uno studio misuri gli attributi di 10 specie, assicurarsi (non appena l'inserimento dei dati è completo) che vengano effettivamente riportate 10 specie. Sebbene il controllo dei conteggi sia semplice e non informativo, è ottimo per rilevare dati duplicati e omessi.

  6. Se i dati sono preziosi e importanti, considerare l'inserimento indipendente del doppio dell'insieme di dati . Ciò significa che ogni elemento verrà inserito in orari separati da due diverse persone non interagenti. Questo è un ottimo modo per rilevare errori di battitura, dati mancanti e così via. Il controllo incrociato può essere completamente automatizzato. Questo è più veloce, migliore nel rilevare gli errori e più efficiente del doppio controllo manuale al 100%. (La voce di dati "persone" può includere dispositivi come scanner con OCR.)

  7. Utilizzare un DBMS per archiviare e gestire i dati. I fogli di calcolo sono ottimi per supportare l'inserimento dei dati, ma estrai i tuoi dati dai fogli di calcolo o dai file di testo e in un database reale il prima possibile. Ciò previene tutti i tipi di errori insidiosi aggiungendo un sacco di supporto per i controlli automatici di integrità dei dati. Se è necessario, utilizzare il proprio software statistico per l'archiviazione e la gestione dei dati, ma considerare seriamente l'utilizzo di un DBMS dedicato: farà un lavoro migliore.

  8. Dopo che tutti i dati sono stati inseriti e controllati automaticamente, disegna immagini : crea tabelle ordinate, istogrammi, grafici a dispersione, ecc. E guardali tutti. Questi sono facilmente automatizzati con qualsiasi pacchetto statistico completo.

  9. Non chiedere alle persone di svolgere attività ripetitive che il computer può svolgere . Il computer è molto più veloce e più affidabile in questi. Prendi l'abitudine di scrivere (e documentare) piccoli script e piccoli programmi per fare qualsiasi cosa che non possa essere completata immediatamente. Questi diventeranno parte della tua pista di controllo e consentiranno di rifare facilmente il lavoro. Usa la piattaforma che preferisci e che è adatta all'attività. (Nel corso degli anni, a seconda di ciò che era disponibile, ho usato una vasta gamma di tali piattaforme e tutte sono state efficaci a modo loro, che vanno dai programmi C e Fortran agli script AWK e SED, script VBA per Excel e Word e personalizzati programmi scritti per sistemi di database relazionali, GIS e piattaforme di analisi statistiche come R e Stata.)

Se segui la maggior parte di queste linee guida, circa il 50% -80% del lavoro per ottenere i dati nel database sarà la progettazione del database e la scrittura degli script di supporto. Non è insolito ottenere il 90% attraverso un progetto del genere ed essere completo in meno del 50%, ma comunque finire in tempo: una volta che tutto è stato impostato e testato, l'inserimento e il controllo dei dati possono essere incredibilmente efficienti.


4
Bene, sono praticamente innamorato di questa risposta. Vorrei sottolineare che, nel seguito del punto 4, dovresti mantenere semplici i controlli - spesso ci sono piccole incongruenze nei dati reali che i tuoi utenti dovrebbero poter inserire ma che non sarai in grado di prevedere. Ad esempio, mi assicuro che le date siano inserite come date; ma ho smesso di avere regole rigide sugli intervalli di date, e invece lo controllo con i rapporti, e seguo i valori fuori limite con chiunque abbia fatto l'inserimento dei dati.
Matt Parker,

5
Impedire a qualcuno di immettere un valore che ritengono giusto può introdurre più errori che rilevarlo e indagarlo.
Matt Parker,

+1, ottima risposta. Sono d'accordo con Matt, anche io adoro questa risposta :)
mpiktas,

1
@Matt Aspetti positivi, entrambi. Sono completamente d'accordo. Per quanto riguarda il primo, un buon approccio è quello di testare le procedure di immissione dei dati su un piccolo sottoinsieme rappresentativo dei dati e di esaminare accuratamente tutti i problemi che si presentano. Questo non affronterà tutto ciò che può eventualmente emergere, ma identifica la maggior parte dei problemi principali e ti consente di affrontarli in modo efficace.
whuber

2
L'aggiunta di queste informazioni è utile in un unico posto. 1. Creare un documento delle regole aziendali che contenga i metadati. comprese le regole utilizzate per produrre variabili derivate come l'età. 2. Se si tratta in particolare di un database amministrativo, supporre che le variabili cambino nel tempo, ad esempio vengono aggiunti nuovi codici. Nei metadati, spiega quando si è verificata la modifica e in che modo ciò può influire su qualsiasi serie temporale. 3. Se il database verrà aggiunto nel tempo, la data e l'ora cambiano nel database.
Michelle,

3

DataOne offre un utile set di best practice per la gestione dei dati che possono essere filtrate per tag. Le migliori pratiche etichettate con "qualità", disponibili su http://www.dataone.org/best-practices/quality , ribadiscono ed espandono molti dei punti sollevati da @whuber. Ecco un elenco degli argomenti trattati (in ordine alfabetico):

  • Comunicare la qualità dei dati
  • Conferma una corrispondenza tra i dati e la loro descrizione nei metadati
  • Considera la compatibilità dei dati che stai integrando
  • Sviluppare un piano di controllo qualità e controllo qualità
  • Ricontrolla i dati inseriti
  • Garantire il controllo di base della qualità
  • Garantire l'integrità e l'accessibilità durante il backup dei dati
  • Identificare i valori anomali
  • Identificare i valori stimati
  • Fornire informazioni sulla versione per l'uso e il rilevamento
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.