data > opinion

Tom Alby

3 Daten bereinigen


Sie sind hier: start / lehrveranstaltungen / datenanalyse data science machine learning / 03 daten saeubern data cleaning /

Grundlegende Überlegungen

Die Bedeutung der Daten-Bereinigung im Analyse-Prozess

Saubere Daten sind eine absolute Notwendigkeit für eine Datenanalyse, denn ansonsten können die Daten falsch interpretiert werden. Datenbereinigung nimmt häufig die meiste Zeit in Anspruch, bis zu 80% des Aufwandes sind keine Seltenheit.

Konkrete Schritte

Grundsätzlich lässt sich der Prozess der Datenbereinigung in die folgenden Schritte unterteilen (nach de Jonge und van der Loo):

  1. Rohdaten: unbehandelt
  2. Technisch korrekte Daten: Datentypen sind überprüft und gegebenenfalls korrigiert, Daten sind normalisiert
  3. Konsistente Daten: Korrektur und Imputation
  4. Statistische Analyse: Nutzung der sauberen Daten

Mit jedem Schritt wird die Datenqualität verbessert. Es ist empfehlenswert, dass die Daten in jedem Stadium separat gespeichert werden, so dass im Zweifelsfall noch auf eine frühere Stufe der Daten zurückgegriffen werden kann.

Datensäuberung in R

Technisch korrekte Daten

Innerhalb von R sehen de Jonge und van der Loo die Erfüllung der folgenden Bedingungen als notwendig an, um von einem technisch korrekten Datensatz zu sprechen:

  • Daten sind in einem Data Frame gespeichert mit passenden Spaltennamen
  • Jede Spalte hat genau den Datentyp, der die Daten am besten repräsentiert.

Dummerweise importiert read.csv und seine Geschwister die Daten nicht immer so wie sie eigentlich sollten. Mit readLines kann aber zumindest zunächst einmal geschaut werden, welcher Datentyp am besten passt. Die Umwandlung dann von einem Datentyp zu einem anderen wird als Coercion bezeichnet.

Manchmal sind die Daten aber auch nicht in dem favorisierten Format vorhanden, zum Beispiel sind Beobachtungen nicht in Zeilen organisiert. Hier kann das tidyverse gute Dienste leisten, die im nächsten Kapitel besprochen werden.

Konsistente Daten

Konsistente Daten sind Daten, die zunächst einmal technisch korrekt sind und sich dann durch weitere Überprüfung und Bereinigung für die statistische Analyse eignen. Hier geht es nicht mehr um Datentypen, sondern vor allem darum, dass fehlende Daten, offensichtliche Fehler oder Ausreißer entfernt, ausgeglichen oder korrigiert werden falls notwendig. Dazu muss in der Regel Wissen über die Domaine der Daten vorhanden sein. Zum Teil wird unterschieden in

  • in-record consistency, d.h. es dürfen keine widersprüchlichen Daten vorhanden sein in einem Eintrag, und
  • cross-record consistency, d.h. dass es keine Konflikte zwischen verschiedenen statistischen Parametern der einzelnen Variablen gibt, und
  • cross-dataset consistency, d.h. es darf keine Widersprüche zu anderen Datensätzen geben.

Ein mögliche Inkonsistenz sind fehlende Werte, in R als NA gekennzeichnet. NA bedeutet zunächst einmal nicht 0 und auch nicht unknown. In R unterscheiden wir zwischen

  • NA: Not available
  • NULL: Ein Objekt, das von einer Funktion ausgegeben wird, vor allem wenn ein Wert undefiniert ist
  • NaN: Not a number

Bei NA muss entschieden werden, ob der Wert ersetzt werden kann. Gegebenenfalls ergibt es Sinn, alle Zeilen, in denen ein NA vorkommt, nicht in der Analyse zu verwenden. Dazu gibt es in vielen Funktionen die Option na.rm.

Offensichtliche Inkonsistenzen können durch Regeln abgefangen werden, zum Beispiel kann das Alter einer Person nicht unter 0 liegen, einen Führerschein erhält man nicht unter 16 Jahren in vielen Ländern, und ein Kind kann noch keine eigenen Kinder haben.

Ein Problem stellen Ausreißer / Outlier da. Diese sehen inkonsistent zu den anderen Daten aus, aber hier ist zu unterscheiden zwischen unmöglichen Daten (jemand ist über 150 Jahre alt) und unwahrscheinlichen Daten (jemand ist 110 Jahre alt.) Ausreißer sind also nicht unbedingt Fehler, und sie müssen auch nicht unbedingt entfernt werden. Boxplots mit ihren Whiskers sind eine Möglichkeit, Ausreißer zu identifizieren (siehe nächstes Kapitel).