Qualitätssicherungs- und Qualitätskontrollrichtlinien (QA / QC) für eine Datenbank

18

Hintergrund

Ich überwache die Eingabe von Daten aus der Primärliteratur in eine Datenbank . Der Dateneingabeprozess ist fehleranfällig, insbesondere weil Benutzer den Versuchsplan interpretieren, Daten aus Grafiken und Tabellen extrahieren und Ergebnisse in standardisierte Einheiten umwandeln müssen.

Daten werden über eine Weboberfläche in eine MySQL-Datenbank eingegeben. Bisher wurden mehr als 10.000 Datenpunkte von> 20 Variablen,> 100 Arten und> 500 Zitaten einbezogen. Ich muss nicht nur die Qualität der variablen Daten überprüfen, sondern auch die Daten in den Nachschlagetabellen, z. B. die mit jedem Datenpunkt verknüpften Arten, den Ort der Studie usw.

Die Dateneingabe läuft, daher muss die QA / QC mit Unterbrechungen durchgeführt werden. Die Daten wurden noch nicht öffentlich veröffentlicht, aber wir planen, sie in den nächsten Monaten freizugeben.

Derzeit umfasst meine QA / QC drei Schritte:

  1. Ein zweiter Benutzer überprüft jeden Datenpunkt.
  2. Überprüfen Sie das Histogramm jeder Variablen visuell auf Ausreißer.
  3. Benutzer melden fragwürdige Daten, nachdem falsche Ergebnisse erhalten wurden.

Fragen

  1. Gibt es Richtlinien, anhand derer ich ein zuverlässiges QA / QC-Verfahren für diese Datenbank entwickeln kann?
  2. Der erste Schritt ist der zeitaufwändigste. Was kann ich tun, um dies effizienter zu gestalten?
David LeBauer
quelle
1
Leser hier interessieren sich auch für den folgenden Thread: Tests zur Überprüfung grundlegender Daten .
gung - Wiedereinsetzung von Monica

Antworten:

25

Diese Antwort konzentriert sich auf die zweite Frage, wobei jedoch eine teilweise Antwort auf die erste Frage (Richtlinien für ein QA / QC-Verfahren) entstehen wird.

Bei weitem das Beste, was Sie tun können, ist die Datenqualität zu überprüfen, wenn die Eingabe versucht wird. Die Benutzerüberprüfungen und -berichte sind arbeitsintensiv und sollten daher so spät wie möglich für einen späteren Zeitpunkt im Prozess reserviert werden.

Im Folgenden finden Sie einige Grundsätze, Richtlinien und Vorschläge, die aus umfangreichen Erfahrungen stammen (mit dem Entwurf und der Erstellung vieler Datenbanken, die mit Ihren vergleichbar und viel größer sind). Sie sind keine Regeln; Sie müssen ihnen nicht folgen, um erfolgreich und effizient zu sein. Aber sie sind alle aus hervorragenden Gründen hier, und Sie sollten gründlich darüber nachdenken, von ihnen abzuweichen.

  1. Trennen Sie die Dateneingabe von allen intellektuell anspruchsvollen Aktivitäten . Bitten Sie die Dateneingabebetreiber nicht gleichzeitig, irgendetwas zu überprüfen, irgendetwas zu zählen usw. Beschränken Sie ihre Arbeit auf die Erstellung eines computerlesbaren Faksimiles der Daten, nicht mehr. Insbesondere impliziert dieses Prinzip, dass die Dateneingabeformulare das Format widerspiegeln sollten, in dem Sie die Daten ursprünglich erhalten, und nicht das Format, in dem Sie die Daten speichern möchten. Es ist relativ einfach, ein Format später in ein anderes zu transformieren, aber es ist ein fehleranfälliger Prozess, die Transformation während der Dateneingabe im Handumdrehen zu versuchen.

  2. Erstellen Sie einen Daten-Audit-Trail : Wenn etwas mit den Daten getan wird, dokumentieren Sie dies ab der Dateneingabe und zeichnen Sie den Vorgang so auf, dass Sie leicht zurückgehen und überprüfen können, was schief gelaufen ist (weil etwas schief gelaufen ist). Erwägen Sie, Felder für Zeitstempel, Bezeichner von Dateneingabeoperatoren, Bezeichner von Quellen für die Originaldaten (wie Berichte und deren Seitenzahlen) usw. auszufüllen. Die Speicherung ist billig, aber die Zeit, um einen Fehler aufzuspüren, ist teuer.

  3. Alles automatisieren . Angenommen, ein Schritt muss wiederholt werden (zum nach Murphys Gesetz ungünstigsten Zeitpunkt) und entsprechend geplant werden. Versuchen Sie jetzt nicht, Zeit zu sparen, indem Sie ein paar "einfache Schritte" von Hand ausführen.

  4. Erstellen Sie insbesondere Unterstützung für die Dateneingabe : Erstellen Sie ein Front-End für jede Tabelle (auch für eine Tabelle), das eine eindeutige, einfache und einheitliche Möglichkeit zum Einlesen von Daten bietet. Gleichzeitig sollte das Front-End Ihr Geschäft stärken rules: "Das heißt, es sollten so viele einfache Gültigkeitsprüfungen wie möglich durchgeführt werden. (Der pH-Wert muss z. B. zwischen 0 und 14 liegen. Die Anzahl muss positiv sein.) Verwenden Sie idealerweise ein DBMS, um relationale Integritätsprüfungen zu erzwingen (z. B. ist jede mit einer Messung verknüpfte Art tatsächlich in der Datenbank vorhanden).

  5. Zähle ständig die Dinge und überprüfe, ob sie genau übereinstimmen. Wenn beispielsweise in einer Studie Attribute von 10 Arten gemessen werden sollen, stellen Sie (sobald die Dateneingabe abgeschlossen ist) sicher, dass tatsächlich 10 Arten gemeldet werden. Obwohl das Überprüfen von Zählungen einfach und nicht aussagekräftig ist, können doppelte und ausgelassene Daten erkannt werden.

  6. Wenn die Daten wertvoll und wichtig sind, sollten Sie erwägen, den gesamten Datensatz unabhängig voneinander doppelt einzugeben . Dies bedeutet, dass jeder Artikel zu unterschiedlichen Zeiten von zwei verschiedenen nicht interagierenden Personen eingegeben wird. Dies ist eine großartige Möglichkeit, Tippfehler, fehlende Daten usw. abzufangen. Die Gegenprüfung kann vollständig automatisiert werden. Dies ist schneller, fängt Fehler besser ab und ist effizienter als eine 100% ige manuelle Doppelprüfung. (Der Dateneintrag "Personen" kann Geräte wie Scanner mit OCR enthalten.)

  7. Verwenden Sie ein DBMS zum Speichern und Verwalten der Daten. Tabellenkalkulationen eignen sich hervorragend zur Unterstützung der Dateneingabe. Sie können Ihre Daten jedoch schnellstmöglich aus den Tabellenkalkulationen oder Textdateien in eine echte Datenbank übertragen. Auf diese Weise werden alle Arten von heimtückischen Fehlern vermieden, während die automatische Überprüfung der Datenintegrität unterstützt wird. Wenn Sie müssen, verwenden Sie Ihre Statistiksoftware zur Datenspeicherung und -verwaltung. Erwägen Sie jedoch ernsthaft die Verwendung eines dedizierten DBMS.

  8. Nachdem alle Daten eingegeben und automatisch überprüft wurden, zeichnen Sie Bilder : Erstellen Sie sortierte Tabellen, Histogramme, Streudiagramme usw. und sehen Sie sich alle an. Diese lassen sich mit jedem vollwertigen Statistikpaket problemlos automatisieren.

  9. Bitten Sie niemanden, sich wiederholende Aufgaben zu erledigen, die der Computer ausführen kann . Der Computer ist dabei wesentlich schneller und zuverlässiger. Gewöhnen Sie sich an, kleine Skripte und kleine Programme zu schreiben (und zu dokumentieren), um Aufgaben zu erledigen, die nicht sofort erledigt werden können. Diese werden Teil Ihres Audit Trails und ermöglichen eine einfache Wiederholung Ihrer Arbeit. Verwenden Sie die Plattform, auf der Sie sich wohlfühlen, und die für die jeweilige Aufgabe geeignet ist. (Im Laufe der Jahre habe ich, je nachdem, was verfügbar war, eine Vielzahl solcher Plattformen verwendet und alle waren auf ihre Weise effektiv, angefangen von C- und Fortran-Programmen über AWK- und SED-Skripte, VBA-Skripte für Excel und Word bis hin zu benutzerdefinierten Programme, die für relationale Datenbanksysteme, GIS und statistische Analyseplattformen wie R und Stata geschrieben wurden.)

Wenn Sie die meisten dieser Richtlinien befolgen, werden ungefähr 50% -80% der Arbeit beim Abrufen von Daten in die Datenbank im Datenbankdesign und Schreiben der unterstützenden Skripte liegen. Es ist nicht ungewöhnlich, dass ein solches Projekt zu 90% abgeschlossen und zu weniger als 50% abgeschlossen ist und dennoch pünktlich abgeschlossen wird: Sobald alles eingerichtet und getestet wurde, kann die Dateneingabe und -prüfung erstaunlich effizient sein.

whuber
quelle
4
Nun, ich bin ziemlich verliebt in diese Antwort. Ich möchte betonen, dass Sie in Punkt 4 die Prüfungen einfach halten sollten - es gibt oft kleine Inkongruenzen in realen Daten, die Ihre Einsteiger eingeben können sollten, die Sie jedoch nicht vorhersehen können. Ich stelle beispielsweise sicher, dass Datumsangaben als Datumsangaben eingegeben werden. Ich habe jedoch aufgehört, strenge Regeln für Datumsbereiche zu erlassen. Überprüfen Sie dies stattdessen mit Berichten und verfolgen Sie Werte, die außerhalb der Grenzen liegen, mit wem auch immer die Dateneingabe durchgeführt wurde.
Matt Parker
5
Wenn Sie verhindern, dass jemand einen Wert eingibt, von dem er glaubt, dass er richtig ist, kann dies zu mehr Fehlern führen, als dass er erkannt und untersucht wird.
Matt Parker
+1, tolle Antwort. Ich stimme Matt zu, auch ich liebe diese Antwort :)
mpiktas
1
@Matt Gute Punkte, beide. Ich stimme vollkommen zu. In Bezug auf die erste besteht ein guter Ansatz darin, die Dateneingabeverfahren an einer kleinen repräsentativen Teilmenge der Daten zu testen und alle auftretenden Probleme gründlich zu behandeln. Damit wird nicht alles angesprochen, was möglicherweise auftaucht, aber die meisten wichtigen Probleme werden frühzeitig erkannt und können effektiv behoben werden.
Whuber
2
Das Hinzufügen dieser Informationen ist an einer Stelle nützlich. 1. Erstellen Sie ein Geschäftsregeldokument, das die Metadaten enthält. einschließlich der Regeln, die zur Erzeugung abgeleiteter Variablen wie Alter verwendet werden. 2. Wenn es sich insbesondere um eine Verwaltungsdatenbank handelt, gehen Sie davon aus, dass sich die Variablen im Laufe der Zeit ändern, z. B. wenn neue Codes hinzugefügt werden. Erklären Sie in den Metadaten, wann die Änderung stattgefunden hat und wie sich dies auf die Funktionsweise von Zeitreihen auswirken kann. 3. Wenn die Datenbank im Laufe der Zeit hinzugefügt wird, ändert sich der Datums- und Zeitstempel in der Datenbank.
Michelle
3

DataOne bietet hilfreiche Best Practices für die Datenverwaltung, die nach Tags gefiltert werden können. Die mit "Qualität" gekennzeichneten Best Practices finden Sie unter http://www.dataone.org/best-practices/quality. Dabei werden viele der von @whuber gemachten Aussagen wiederholt und erweitert. Hier ist eine Liste der dort behandelten Themen (in alphabetischer Reihenfolge):

  • Datenqualität kommunizieren
  • Bestätigen Sie eine Übereinstimmung zwischen Daten und deren Beschreibung in Metadaten
  • Berücksichtigen Sie die Kompatibilität der Daten, die Sie integrieren
  • Entwicklung eines Qualitätssicherungs- und Qualitätskontrollplans
  • Überprüfen Sie die eingegebenen Daten
  • Grundlegende Qualitätskontrolle sicherstellen
  • Stellen Sie beim Sichern von Daten die Integrität und Zugänglichkeit sicher
  • Identifizieren Sie Ausreißer
  • Identifizieren Sie geschätzte Werte
  • Geben Sie Versionsinformationen zur Verwendung und Erkennung an
David LeBauer
quelle