Tests zur Überprüfung grundlegender Daten


93

In meiner beruflichen Tätigkeit arbeite ich oft mit Datensätzen anderer Personen, Nicht-Experten bringen mir klinische Daten und ich helfe ihnen, diese zusammenzufassen und statistische Tests durchzuführen.

Das Problem, das ich habe, ist, dass die Datensätze, die ich mitbringe, fast immer mit Tippfehlern, Inkonsistenzen und allen möglichen anderen Problemen durchsetzt sind. Ich bin daran interessiert zu wissen, ob andere Personen Standardtests haben, mit denen sie versuchen, eingehende Datensätze zu überprüfen.

Früher habe ich Histogramme jeder Variablen gezeichnet, um einen Blick darauf zu werfen, aber jetzt ist mir klar, dass es viele schreckliche Fehler gibt, die diesen Test überstehen können. Ich hatte zum Beispiel neulich einen Datensatz mit wiederholten Messungen, bei dem bei einigen Personen die wiederholte Messung zum Zeitpunkt 2 identisch war wie zum Zeitpunkt 1. Dies erwies sich später als falsch, wie Sie es erwarten würden. In einem anderen Datensatz befand sich eine Person, die von einer sehr schwerwiegenden Störung (dargestellt durch eine hohe Punktzahl) zu einem problemlosen Zustand überging, dargestellt durch Nullen auf ganzer Linie. Das ist einfach unmöglich, obwohl ich es nicht definitiv beweisen konnte.

Welche grundlegenden Tests kann ich für jedes Dataset ausführen, um sicherzustellen, dass sie keine Tippfehler enthalten und keine unmöglichen Werte enthalten?

Danke im Voraus!


3
Gute Frage. Ich vermute, es wird schwierig sein, allgemeine Antworten zu geben, da die Überprüfungen von den Besonderheiten des Datensatzes abhängen.
mark999

2
@ mark999 Ich stimme zu. Ich bin interessiert, die Antworten auf diese Frage zu lesen. Es gibt einige allgemeine Strategien, aber ich stelle fest, dass es bei vielen Überprüfungen darum geht, domänenspezifische Erwartungen aufzubauen, sowohl was die Daten aussehen sollten als auch einige der häufigsten Fehler, die auftreten können.
Jeromy Anglim

1
Leser hier interessieren sich auch für den folgenden Thread: Richtlinien zur Qualitätssicherung und Qualitätskontrolle (qa / qc) für eine Datenbank .
Gung

Antworten:


77

Es hilft zu verstehen, wie die Daten aufgezeichnet wurden.

Lassen Sie mich eine Geschichte teilen . Vor langer Zeit wurden viele Datensätze nur in verblassender Hardcopy gespeichert. In diesen dunklen Tagen habe ich einen Vertrag mit einer Organisation (von großer Abstammung und Größe; viele von Ihnen besitzen wahrscheinlich ihren Bestand) geschlossen, um etwa 10 ^ 5 Aufzeichnungen von Umweltüberwachungsdaten in einem ihrer Produktionswerke zu computerisieren. Zu diesem Zweck markierte ich persönlich ein Regal mit Laborberichten (um zu zeigen, wo sich die Daten befanden), erstellte Dateneingabeformulare und schloss einen Vertrag mit einer Zeitarbeitsfirma für Alphabetisierung abArbeiter, um die Daten in die Formulare einzugeben. (Ja, für Leute, die lesen konnten, mussten Sie extra bezahlen.) Aufgrund des Werts und der Sensibilität der Daten habe ich diesen Prozess parallel mit zwei Mitarbeitern gleichzeitig durchgeführt (die sich normalerweise von Tag zu Tag geändert haben). Es dauerte ein paar Wochen. Ich habe eine Software geschrieben, um die beiden Sätze von Einträgen zu vergleichen und alle aufgetretenen Fehler systematisch zu identifizieren und zu korrigieren.

Junge, waren da Fehler! Was kann schon schief gehen? Eine gute Möglichkeit, Fehler zu beschreiben und zu messen, besteht auf der Ebene des Basisdatensatzes , der in diesem Fall eine Beschreibung eines einzelnen Analyseergebnisses (der Konzentration einer Chemikalie, häufig) für eine bestimmte Probe war, die an einem bestimmten Überwachungspunkt auf einer Probe erhalten wurde gegebenes Datum. Beim Vergleich der beiden Datensätze fand ich:

  • Auslassungsfehler : Ein Datensatz würde einen Datensatz enthalten, ein anderer nicht. Dies geschah normalerweise, weil entweder (a) eine oder zwei Zeilen am Ende einer Seite übersehen wurden oder (b) eine ganze Seite übersprungen wurde.

  • Offensichtliche Auslassungsfehler , die wirklich Dateneingabefehler waren. Ein Datensatz wird durch einen Überwachungspunktnamen, ein Datum und den "Analyten" (normalerweise einen chemischen Namen) identifiziert. Wenn einer dieser Einträge einen Tippfehler aufweist, wird er nicht mit den anderen Datensätzen abgeglichen, mit denen er verknüpft ist. In der Tat verschwindet der richtige Datensatz und ein falscher Datensatz wird angezeigt.

  • Gefälschte Vervielfältigung . Dieselben Ergebnisse können in mehreren Quellen vorkommen, mehrfach transkribiert werden und scheinen echte Wiederholungsmessungen zu sein, wenn dies nicht der Fall ist. Duplikate sind einfach zu erkennen, aber die Entscheidung, ob sie fehlerhaft sind, hängt davon ab, ob Duplikate überhaupt im Datensatz erscheinen sollen. Manchmal kann man es einfach nicht wissen.

  • Frank Dateneingabefehler . Die "guten" sind leicht zu fassen, weil sie den Typ des Datums ändern : Wenn Sie beispielsweise den Buchstaben "O" für die Ziffer "0" verwenden, wird eine Zahl zu einer Nicht-Zahl. Andere gute Fehler ändern den Wert so sehr, dass er mit statistischen Tests leicht erkannt werden kann. (In einem Fall wurde die führende Ziffer in "1.000.010 mg / kg" abgeschnitten, sodass ein Wert von 10 erhalten blieb. Dies ist eine enorme Änderung, wenn Sie von einer Pestizidkonzentration sprechen!) Die schlechten Fehler sind schwer zu fassen, da sie sich ändern Ein Wert, der zu den übrigen Daten passt (Art), z. B. "80" für "50". (Diese Art von Fehler tritt ständig bei OCR-Software auf.)

  • Transpositionen . Die richtigen Werte können eingegeben werden, sind jedoch den falschen Aufnahmetasten zugeordnet. Dies ist heimtückisch, da die globalen statistischen Merkmale des Datasets möglicherweise unverändert bleiben, zwischen den Gruppen jedoch falsche Unterschiede auftreten können. Wahrscheinlich kann nur ein Mechanismus wie die doppelte Eingabe diese Fehler erkennen.

Wenn Sie sich dieser Fehler bewusst sind und wissen oder eine Theorie haben, wie sie auftreten, können Sie Skripte schreiben, um Ihre Datensätze auf das mögliche Vorhandensein solcher Fehler zu überprüfen und sie zur weiteren Behandlung zu markieren. Sie können sie nicht immer auflösen, aber Sie können mindestens ein Feld "Kommentar" oder "Qualitätskennzeichen" hinzufügen, um die Daten während ihrer späteren Analyse zu begleiten.

Seitdem habe ich mich mit Fragen der Datenqualität befasst und noch viel mehr Möglichkeiten gehabt, große statistische Datensätze umfassend zu überprüfen. Keiner ist perfekt; Sie alle profitieren von Qualitätskontrollen. Einige der Prinzipien, die ich im Laufe der Jahre entwickelt habe, sind:

  1. Stellen Sie, wann immer möglich, Redundanz bei der Dateneingabe und bei der Datenübertragung her: Prüfsummen, Summen, wiederholte Eingaben: alles, was die automatische interne Konsistenzprüfung unterstützt.

  2. Wenn möglich, erstellen und eine andere Datenbank ausnutzen , die , was sollten die Daten beschreibt , wie folgt aussehen: das heißt, computerlesbaren Metadaten. In einem Drogenexperiment wissen Sie beispielsweise im Voraus, dass jeder Patient dreimal gesehen wird. Auf diese Weise können Sie eine Datenbank mit allen korrekten Datensätzen und ihren Bezeichnern mit den Werten erstellen, die nur darauf warten, ausgefüllt zu werden. Füllen Sie sie mit den angegebenen Daten aus und suchen Sie nach Duplikaten, Auslassungen und unerwarteten Daten.

  3. Normalisieren Sie Ihre Daten immer (insbesondere in mindestens die vierte Normalform ), unabhängig davon, wie Sie das Dataset für die Analyse formatieren möchten. Dies zwingt Sie dazu, Tabellen für jede konzeptionell unterschiedliche Entität zu erstellen, die Sie modellieren. (Im Umweltbereich umfasst dies Tabellen mit Überwachungsorten, Proben, Chemikalien (Eigenschaften, typische Bereiche usw.), Tests dieser Proben (ein Test deckt normalerweise eine Reihe von Chemikalien ab) und die einzelnen Ergebnisse dieser Tests. Auf diese Weise erstellen Sie viele effektive Überprüfungen der Datenqualität und -konsistenz und identifizieren viele potenziell fehlende oder doppelte oder inkonsistente Werte.

    Dieser Aufwand (der gute Datenverarbeitungsfähigkeiten erfordert, aber unkompliziert ist) ist erstaunlich effektiv. Wenn Sie große oder komplexe Datenmengen analysieren möchten und nicht über ausreichende Kenntnisse der relationalen Datenbanken und ihrer Theorie verfügen, sollten Sie dies so schnell wie möglich zu Ihrer Liste der zu lernenden Dinge hinzufügen. Es wird sich während Ihrer Karriere auszahlen.

  4. Führen Sie immer so viele "dumme" Überprüfungen durch, wie Sie nur können . Hierbei handelt es sich um die automatische Überprüfung offensichtlicher Dinge, sodass Daten in die erwarteten Zeiträume fallen, die Anzahl der Patienten (oder Chemikalien oder was auch immer) sich immer korrekt summiert und die Werte immer vernünftig sind (z. B. muss ein pH-Wert zwischen 0 und 14 und möglicherweise in liegen) ein viel engerer Bereich für z. B. Blut-pH-Werte usw. Hier kann die Fachkompetenz am hilfreichsten sein: Der Statistiker kann furchtlos dumme Fragen an die Experten stellen und die Antworten zur Überprüfung der Daten nutzen.

Natürlich kann noch viel mehr gesagt werden - das Thema ist ein Buch wert -, aber dies sollte ausreichen, um Ideen anzuregen.


5
Hervorragender Nachtrag zu Ihrer Datenbank QA / QC-Richtlinien
David LeBauer

2
Eine Folgefrage - das Thema ist ein Buch wert - gibt es ein Buch?
Chris Beeley

5
+1 - wunderbare Antwort whuber. Ich wünschte, du hättest ein Blog :) (Ich hätte gerne dein Schreiben zu r-bloggers.com hinzugefügt)
Tal Galili

2
Sie sollten das Buch schreiben, dass das Thema wert ist!
Zach

1
Dies ist so kompliziert, dass sich viele Beratungsunternehmen auf "Datenabruf / -bereinigung / -speicherung" spezialisiert haben.
Lucas Reis

25

@whuber macht tolle Vorschläge; Ich würde nur hinzufügen: Handlungen, Handlungen, Handlungen, Handlungen. Streudiagramme, Histogramme, Boxplots, Liniendiagramme, Heatmaps und alles andere, was Sie sich vorstellen können. Wie Sie festgestellt haben, gibt es natürlich Fehler, die auf keinem Grundstück auffallen, aber sie sind ein guter Ausgangspunkt. Stellen Sie einfach sicher, dass Sie wissen, wie Ihre Software mit fehlenden Daten usw. umgeht.

Je nach Kontext können Sie kreativ werden. Eine Sache, die ich gerne mit multivariaten Daten mache, ist die Anpassung einer Art Faktormodell / probabilistischer PCA (etwas, das mehrere Imputationen für fehlende Daten vornimmt) und die Betrachtung der Scores für so viele Komponenten wie möglich. Datenpunkte, die bei den weniger wichtigen Komponenten / Faktoren sehr gut abschneiden, sind häufig Ausreißer, die Sie sonst möglicherweise nicht sehen.


5
+1 Plotten ist für Statistiken, was Abstimmen für Chicago bedeutet: etwas, das jeder früh und oft tut. ;-)
whuber

15

Große Dinge, die ich eher überprüfe:

  1. Variablentyp - um zu sehen, ob eine Zahl numerisch und nicht ein Faktor oder ein Zeichen ist (weist möglicherweise auf ein Problem mit den eingegebenen Daten hin)
  2. Konsistente Wertebenen - um zu sehen, dass eine Variable mit dem Namen "t1" sie nicht mit dem Namen "t1" oder "t 1" wiedergefunden hat
  3. Ausreißer - sehen Sie, dass die Wertebereiche sinnvoll sind. (Haben Sie einen Blutdruckwert von 0? oder minus?). Hier stellen wir manchmal fest, dass jemand -5 als fehlenden Wert codiert hat, oder so ähnlich.
  4. Lineare Einschränkungen. Ich benutze das nicht, aber einige finden, dass sie Einschränkungen in Bezug auf die Abhängigkeiten einiger Spalten wünschen (Spalten A, B müssen zu C hinzugefügt werden, oder so ähnlich). Hierfür können Sie sich das dedukorrekte Paket ansehen (ich habe den Sprecher Mark van der Loo auf der letzten useR-Konferenz getroffen - und war sehr beeindruckt von seinem Paket).
  5. zu wenig Zufälligkeit. Manchmal mussten Werte auf einige Werte gerundet oder irgendwann abgeschnitten werden. Diese Art von Dingen wird in Streudiagrammen oft deutlicher.
  6. Fehlende Werte - Stellen Sie sicher, dass das Fehlen nicht mit einer anderen Variablen zusammenhängt (zufällig fehlt). Aber ich habe hier keine Faustregel.
  7. Leere Zeilen oder Zeilen mit meist keinen Werten. Diese sollten (normalerweise) gefunden und weggelassen werden.

Tolle Frage BTW - Ich hoffe, die Erfahrungen anderer Leute in dieser Angelegenheit zu lesen.


10

Wenn Sie über Zeitmessungen verfügen (" longitudinale Daten "), ist es oft nützlich, sowohl die Gradienten als auch die Randverteilungen zu überprüfen . Dieser Gradient kann in verschiedenen Maßstäben berechnet werden. Im Allgemeinen können Sie bedeutungsvolle Transformationen für Ihre Daten (Fourier, Wavelet) durchführen und die Verteilung der Ränder der transformierten Daten überprüfen.


7

Ein paar gehe ich immer durch:

  1. Gibt es die Anzahl der Datensätze, die es geben soll? Wenn Sie beispielsweise Ihre Daten aus einer anderen Quelle bezogen haben oder es sich um eine Untergruppe anderer Daten handelt, sehen Ihre Zahlen vernünftig aus. Sie würden denken, dass dies abgedeckt wäre, aber Sie wären ... überrascht.
  2. Sind alle Ihre Variablen da? Sind die Werte dieser Variablen sinnvoll? Zum Beispiel, wenn eine Ja / Nein / Fehlende Variable "1,2,3" codiert ist - was bedeutet das?
  3. Wo sind deine fehlenden Werte? Gibt es einige Variablen, die mit fehlenden Informationen überlastet zu sein scheinen? Gibt es bestimmte Themen mit einer großen Anzahl fehlender Werte ?

Dies sind die ersten Schritte, die ich durchführe, um sicherzustellen, dass ein Datensatz auch für eine explorative Datenanalyse bereit ist. Ich setze mich einfach hin und streife durch die Daten. "Scheint das ... richtig?"


1

Ich würde für jede Spalte ein Akzeptanzstichprobenverfahren verwenden (es gibt die Grenzzahl an, bei der Sie die Grenze zwischen hoher und niedriger Qualität ziehen können). Dafür gibt es einen Online-Rechner.


3
dies würde als Kommentar besser passen als als Antwort, wie es derzeit steht. Bitte erläutern Sie ein wenig, geben Sie Links zu Ressourcen oder Referenzen usw.
Antoine

1
Es ist schwierig, viele Umstände zu erkennen, unter denen dies effektiv wäre, und es ist einfach, viele zu finden, für die es entweder überhaupt nicht funktioniert (wie Zeichenfolgen oder andere nominelle Daten) oder schrecklich ist (weil es alle multivariaten Beziehungen vollständig ignoriert). Es scheint auch willkürlich zu sein, da die Datensätze einer Datentabelle bis auf Zeitreihen (und einige verwandte Daten) keine inhärente Reihenfolge aufweisen, während viele (wenn nicht alle) Akzeptanzstichprobenverfahren von der Reihenfolge abhängen.
whuber

Nun, hier ist der Rechner zu verwenden: sqconline.com/... Solange Sie Randomisierung der Stichprobenkontrolle verwenden kann , verwendet werden. Wenn Sie es komplizieren möchten, können Sie eine systematische Stichprobenmethode anwenden und anschließend für jedes Segment eine Akzeptanzstichprobe durchführen
Tareq Shahwan,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.