Ich habe einen Datensatz. Es fehlen viele Werte. Bei einigen Spalten wurde der fehlende Wert durch -999 ersetzt, bei anderen Spalten wurde der fehlende Wert als 'NA' markiert.
Warum sollten wir -999 verwenden, um den fehlenden Wert zu ersetzen?
Ich habe einen Datensatz. Es fehlen viele Werte. Bei einigen Spalten wurde der fehlende Wert durch -999 ersetzt, bei anderen Spalten wurde der fehlende Wert als 'NA' markiert.
Warum sollten wir -999 verwenden, um den fehlenden Wert zu ersetzen?
Antworten:
Dies ist ein Überbleibsel aus früheren Zeiten, als Computersoftware numerische Vektoren als numerische Vektoren speicherte. Keine reelle Zahl hat die Semantik "Ich vermisse". Wenn also frühe Statistiksoftware zwischen "wahren" Zahlen und fehlenden Werten unterscheiden musste, gaben sie etwas ein, das "offensichtlich" keine gültige Zahl war, wie -999 oder -9999.
Natürlich ist es nicht "offensichtlich", dass -999 oder -9999 für einen fehlenden Wert standen. Sehr oft kann es sich sicherlich um einen gültigen Wert handeln. Wenn Sie nicht explizit nach solchen Werten suchen, können Ihre Analysen alle möglichen "interessanten" Fehler enthalten.
Heutzutage werden numerische Vektoren, die fehlende Werte enthalten können, intern als "angereicherte" numerische Vektoren dargestellt, dh numerische Vektoren mit zusätzlichen Informationen darüber, welche Werte fehlen. Das ist natürlich viel besser, denn dann werden fehlende Werte als solche und nicht fälschlicherweise als gültig behandelt.
Leider verwendet manche Software immer noch eine solche Konvention, möglicherweise aus Kompatibilitätsgründen. Und einige Benutzer haben diese Konvention durch informelle Osmose aufgesogen und geben -999 anstelle von NA ein, selbst wenn ihre Software die saubere Eingabe fehlender Werte unterstützt.
Moral: nicht kodieren Werte als -999 fehlt.
Solche Werte gelten für Datenbanken. Die meisten Datenbanken haben vor langer Zeit und viele heute eine feste Anzahl von Ziffern für ganzzahlige Daten zugewiesen. Eine Zahl wie -999 ist die kleinste, die in vier Zeichen, -9999 in fünf Zeichen usw. gespeichert werden kann.
(Es versteht sich von selbst, dass ein numerisches Feld per Definition keine alphanumerischen Zeichen wie "NA" speichern kann. Es muss ein numerischer Code verwendet werden, um fehlende oder ungültige Daten darzustellen.)
Warum die negativste Zahl verwenden, die gespeichert werden kann, um einen fehlenden Wert anzuzeigen? Wenn Sie es versehentlich als eine gültige Zahl behandeln, möchten Sie, dass die Ergebnisse dramatisch falsch sind. Je realistischer Ihre Codes für fehlende Werte werden, desto sicherer sind Sie, da eine immense Fehleingabe in der Regel die Ausgabe verschlechtert. (Robuste statistische Methoden sind bemerkenswerte Ausnahmen!)
Wie konnte so ein Fehler passieren? Dies geschieht immer dann, wenn Daten zwischen Systemen ausgetauscht werden. Ein System, das davon ausgeht, dass -9999 einen fehlenden Wert darstellt, gibt diesen Wert mühelos aus, wenn Sie die Daten in den meisten Formaten wie CSV ausschreiben. Das System, das liest, dass die CSV-Datei möglicherweise nicht "weiß" (oder nicht "informiert" wird), dass solche Werte fehlen.
Ein weiterer Grund ist, dass gute statistische Daten und Computerplattformen viele verschiedene Arten von fehlenden Werten erkennen: NaNs, wirklich fehlende Werte, Überläufe, Unterläufe, Nichtantworten usw. Indem sie die negativsten möglichen Werte festlegen (z. B. -9999, - 9998, -9997 usw.) zu diesen machen Sie es einfach, alle fehlenden Werte aus einer Tabelle oder einem Array abzufragen.
Ein weiterer Grund ist, dass solche Werte in der Regel in grafischen Darstellungen als extreme Ausreißer angezeigt werden. Von allen Werten, die Sie auswählen können, um in einer Grafik hervorzuheben, hat der negativste die größte Chance, weit von Ihren Daten entfernt zu sein.
Es gibt nützliche Implikationen und Verallgemeinerungen:
Nehmen Sie eine Standardregel dieses Typs an, um die Erfindung von NoData-Codes unter neuen Umständen (beim Entwerfen Ihrer eigenen Datenbanksoftware) zu vereinfachen.
Entwerfen Sie Ihre Software und Systeme so, dass sie dramatisch ausfallen, wenn sie überhaupt ausfallen. Die schlimmsten Fehler sind solche, die zeitweise, zufällig oder winzig sind, weil sie unentdeckt bleiben und schwer zu finden sind.
Sie können alles verwenden , um fehlende Werte zu codieren. Einige Software wie R verwenden spezielle Werte, um fehlende Daten zu codieren, es gibt jedoch auch Softwarepakete, z. B. SPSS, die keine speziellen Codes für fehlende Daten enthalten. Im zweiten Fall müssen Sie eine beliebige Auswahl für solche Werte treffen . Sie können alles auswählen , aber im Allgemeinen ist es eine gute Idee, einen Wert zu wählen, der sich deutlich von Ihren Daten unterscheidet (z. B. sind Ihre Daten Prozentsätze im Bereich von 0 bis 100, Sie wählen also 999 für die Codierung fehlender Daten oder Ihre Daten sind menschliches Alter und Sie verwenden negative Werte für fehlende Beobachtungen. Die Idee dahinter ist, dass Sie auf diese Weise feststellen können, ob etwas schief gelaufen ist und sich die Zahlen nicht summieren.
Das Problem bei einer solchen Codierung ist jedoch, dass Sie die spezielle Codierung tatsächlich nicht bemerken und Müllergebnisse erhalten.
Gibt es berechnete Variablen im Datensatz? Oder ist dies ein analytischer Datensatz, der aus zusammengeführten / sortierten Daten stammt? Manche Software verwendet sehr große negative Werte, um fehlende Daten anzuzeigen. Aber andere Software erzeugt mit NA oder fehlende Werte .
. Wenn sie nicht übereinstimmen, hat in der Regel eine Nachbearbeitung zu Meinungsverschiedenheiten geführt.
Natürlich werden in SPSS die fehlenden Werte 999 oder was auch immer als ein spezieller fehlender Code markiert und getrennt von anderen Werten behandelt. Es kann separat tabellarisch aufgeführt oder ganz ausgeschlossen werden. Eine Unterscheidung wird vom Ergebnis von Dingen wie Nulldivision oder log (0) getroffen.