Umgang mit NAs (MNAR)

Sep 18 2020

Ich habe einen Datenrahmen mit vielen (> 50%) NA-Werten und suche nach einer Möglichkeit, damit umzugehen. Nach allem, was ich gefunden habe, empfehlen viele Leute die Verwendung von Imputation wie Mehrfachimputation oder Zufallsstruktur (RF behandelt fehlende Werte, indem die NAs durch Median ersetzt werden). Lassen Sie mich jedoch meine Situation anhand eines Unterdatensatzes erläutern:

         basket.Africa.1 basket.US.10 basket.France.20

apple           1              0                1

orange         NA              3                2

pear           NA              NA               2

peach           1              NA               NA

banana          1              2                3

Jeder Korb wird von einer Maschine gescannt (gießen Sie die Früchte aus dem Korb und die Maschine scannt jede Frucht), und dann wird die Menge der Früchte aufgezeichnet. Es gibt also 1 Apfel, 1 Pfirsich und 1 Banane basket.Africa.1. Beachten Sie, dass basket.Africa.1sich Korb Nr. 1 aus Afrika bezieht.

Die NAs hier fehlen NICHT zufällig, es bedeutet, dass es nicht möglich ist, NAs zu haben. Zum Beispiel basket.Africa.1hat NAs in Orange und Birne, weil Afrika keine Orange und Birne produziert, so ist es sicher, dass Orange und Birne Zählungen NAs sind.

Mit anderen Worten, die Null in basket.US.10(dieser Korb stammt aus den USA) bedeutet NICHT, dass ein Wert fehlt. Stattdessen ist es möglich, Apfel in diesem Korb zu haben, aber es gibt keinen in diesem bestimmten Korb (Korb Nr. 10 aus den USA). .

Mein Ziel ist es, den Datensatz (~ 100 Spalten mit verschiedenen Körben aus 5 Ländern (Afrika, USA, Frankreich, China, Australien) und ~ 10 Reihen mit verschiedenen Früchten) zu verwenden und zu antworten: Wenn ich einen zufälligen Korb bekomme, wie kann ich das? Ich bestimme, zu welchem ​​Land dieser Korb gehört.

Ich halte es nicht für angebracht, Werte für die NAs zu füllen, da die NAs keinen Wert haben sollten! Ich versuche auch die mehrfache Imputation, aber meine Daten enthalten viel zu viele fehlende Werte, so dass diese Methode auch nicht funktioniert ...

Antworten

2 RobertLong Sep 22 2020 at 14:05

Obwohl ich verstehen kann, warum einige Leute sagen würden, dass diese Daten MNAR (Missing Not At Random) sind, würde ich eher sagen, dass sie beabsichtigt sind. Ein anderer Begriff, der manchmal verwendet wird, ist strukturelles Fehlen.

Die Art und Weise, wie Sie damit umgehen, hängt stark von dem Modell ab, zu dem Sie passen. Ein Ansatz besteht darin, nichts zu tun und die NAs beizubehalten. Einige Modelle geben einen Wert wie den Mittelwert oder den Median an - und das möchten Sie nicht, aber es ist möglicherweise in Ordnung, wenn sie NAs ignorieren / löschen. Ein anderer Ansatz, der für Sie möglicherweise funktioniert, besteht darin, eine eindeutige Codierung für diese Daten zu verwenden, z. B. -1, die ansonsten unmöglich wäre (da Sie anscheinend Zählungen beobachten). Natürlich würde dies bedeuten, dass ein Modell, das eine Protokolltransformation wie Poisson oder negative binomiale Regression verwendet, nicht in Frage kommt, aber es sollte viele andere geben, die möglicherweise auf Bäumen basieren und funktionieren könnten. Dies ist nicht ideal, daher würde ich die Leistung mit verschiedenen Methoden und Modellen untersuchen.

deemel Sep 19 2020 at 13:19

Ich halte es nicht für angebracht, Werte für die NAs zu füllen, da die NAs keinen Wert haben sollten!

Was ist der Grund für diese Aussage? Betrachten Sie das folgende Beispiel, das Sie bereitgestellt haben:

Zum Beispiel hat Basket.Africa.1 NAs in Orange und Birne, da Afrika keine Orange und Birne produziert. Daher ist es sicher, dass Orange und Birne NAs sind.

Nun, wenn Sie sich nur den Korb ansehen würden: Wie häufig werden Birnen und Orangen in diesem Korb beobachtet? Sie sind Null - füllen Sie die NAs damit.
Ihr Versuch, "Ergebnis ist unmöglich" mit NA zu codieren, ist möglicherweise nicht erforderlich, da ein Ereignis, das unter bestimmten Umständen nicht auftreten kann, mit ziemlicher Sicherheit in den beobachteten Häufigkeiten angezeigt wird.