Ein statistischer Ansatz, um festzustellen, ob zufällig Daten fehlen

21

Ich habe eine große Menge von Merkmalsvektoren, die ich verwenden werde, um ein Binärklassifizierungsproblem anzugreifen (mit Scikit Learn in Python). Bevor ich mich mit Imputation beschäftige, möchte ich anhand der verbleibenden Teile der Daten feststellen, ob die fehlenden Daten "zufällig" oder nicht zufällig fehlen.

Was ist ein vernünftiger Weg, um diese Frage anzugehen?


Es stellt sich heraus, dass es eine bessere Frage ist, ob die Daten "völlig zufällig fehlen" oder nicht. Was ist ein vernünftiger Weg, um das zu tun?

Lembik
quelle
Wenn keine Zuordnung zwischen dem fehlenden Indikator und einer beobachteten Variablen besteht, lautet der fehlende Datenmechanismus MCAR.
Randel,
@Randel Was ist ein guter Test, um dies in der Praxis zu testen?
Lembik
Nichts Besonderes als ein Korrelationstest oder eine Regression.
Randel
3
Es ist nichts, was Sie testen, es ist etwas, das Sie annehmen .
Tim
3
Um es klar auszudrücken : Vollständig zufällig zu fehlen bedeutet, dass die Wahrscheinlichkeit für das Fehlen eine Konstante ist, sie hängt von nichts ab. Fehlende zufällig bedeutet , dass Fehlüber auf einigen gemessenen Faktoren abhängt, wie Alter oder Geschlecht, so dass Sie einige Modelle zu füllen die fehlenden Muster verwenden können. Fehlende nicht wahllos Mittel Fehlüber hängt von Dingen , die Sie nicht messen. In der Frage sagt OP NMAR vs. MAR, aber OP bedeutet MAR vs. MCAR.
AdamO

Antworten:

8

Ich habe die Informationen, über die ich gesprochen habe, in meinem Kommentar gefunden.

Aus van Buurens Buch , Seite 31, schreibt er

Es wurden mehrere Tests vorgeschlagen, um MCAR im Vergleich zu MAR zu testen. Diese Tests sind nicht weit verbreitet und ihr praktischer Wert ist unklar. Siehe Enders Für eine Bewertung von zwei Verfahren (2010, S. 17–21). Es ist nicht möglich, zu testen MAR versus MNAR, da die Informationen, die für einen solchen Test benötigt werden, fehlen. "

RayVelcoro
quelle
Bei der Frage geht es um MAR vs MNAR, aber bei Ihrer Antwort geht es um MCAR vs MAR. MCAR ist völlig anders als MNAR.
Tim
Wenn Sie feststellen können, dass es sich bei den Daten um MAR handelt, sollte dies ausreichen. Wie Björn sagt, ist es nicht möglich zu sagen, ob es MAR / MNAR ist, aber diese Antwort ist ein guter Vertreter für seine Frage, glaube ich. Wenn Sie Enders Test machen und feststellen, dass es sich um MCAR handelt, brauchen Sie keine Zurechnung. Wenn Sie feststellen, dass es sich um MAR handelt, können Sie Ihre Daten unterstellen oder sich genau ansehen, um festzustellen, ob Grund zu der Annahme besteht, dass es sich um MNAR handelt.
RayVelcoro
@RayVelcoro Es handelt sich um ein Identifizierungsproblem: NMAR-Daten können möglicherweise als MCAR-Daten angezeigt werden. Tim hat Recht, dass NMAR (oder umgekehrt) nicht von uns getestet wird, sondern von etwas, von dem wir ausgehen. Was MCAR und MAR betrifft, ist das (wichtigste?) Folgendes: Wenn die Daten MCAR sind und Sie MAR-Methoden verwenden, gibt es dann wirklich einen Nettoeffekt auf die Daten? Ich glaube nicht. In Anbetracht der Durchdringung, Verfügbarkeit und Benutzerfreundlichkeit von MAR-Methoden ist es vielleicht besser, nur das nicht-parametrische Gewichtungs- oder Imputationsverfahren anzuwenden, als sich auf eine rhetorische Gänsehaut von Tests und Tests einzulassen.
AdamO
17

Dies ist nur möglich, wenn Sie die fehlenden Daten abrufen konnten. Sie können anhand der beobachteten Daten nicht feststellen, ob die fehlenden Daten zufällig (MAR) oder nicht zufällig (MNAR) vorliegen. Sie können nur feststellen, ob die Daten eindeutig nicht völlig zufällig fehlen (MCAR). Darüber hinaus sollte die Plausibilität von MCAR oder MAR im Gegensatz zu MNAR nur auf der Grundlage Ihrer Kenntnisse geprüft werden (z. B. gemeldete Gründe für das Fehlen von Daten). Alternativ könnten Sie argumentieren, dass es nicht allzu wichtig ist, da der Anteil der fehlenden Daten gering ist und unter MNAR sehr extreme Szenarien auftreten müssten, damit Ihre Ergebnisse verworfen werden (siehe "Tipping Point Analysis").

Björn
quelle
1
Vielen Dank. Wie können Sie feststellen, ob es sich bei den Daten um MCAR handelt?
Lembik
@ Björn, oben muss möglicherweise umformuliert werden, um wesentliche Asymmetrien in dem, was wir aus Daten lernen können, widerzuspiegeln. Obwohl es möglich ist, eine Hypothese zu fälschen , dass es sich bei den Daten um MCAR handelt (d. H. Indem ein Modell erstellt wird, das die beobachteten Kovariaten ausnutzt, um einen Teil der Fehlenden zu erklären), ist es nicht möglich, MCAR oder eine andere solche Hypothese zu bestätigen .
David C. Norris
Guter Punkt. Ich habe das klarer gemacht.
Björn,
4

Dies klingt unter dem Gesichtspunkt der Klassifizierung durchaus machbar.

Sie möchten fehlende und nicht fehlende Daten mit allen anderen Funktionen klassifizieren. Wenn Sie deutlich bessere Ergebnisse erzielen als zufällige Ergebnisse, fehlen Ihre Daten nicht zufällig.

Firebug
quelle
2

Sie möchten wissen, ob eine Korrelation zwischen einem Wert, der in einem Feature fehlt, und dem Wert eines anderen Features besteht.

Erstellen Sie für jedes der Features ein neues Feature, das angibt, ob der Wert fehlt oder nicht (nennen wir sie das Feature "is_missing"). Berechnen Sie Ihr Lieblingskorrelationsmaß (ich schlage vor, hier gegenseitige Informationen zu verwenden) für die is_missing-Merkmale und die übrigen Merkmale.

Beachten Sie, dass, wenn Sie keine Korrelation zwischen zwei Features finden, aufgrund einer Gruppe von Features dennoch eine Korrelation möglich ist (ein Wert fehlt in Abhängigkeit von XOR von zehn anderen Features).

Wenn Sie eine große Anzahl von Funktionen und eine große Anzahl von Werten haben, erhalten Sie aufgrund der Zufälligkeit falsche Korrelationen. Abgesehen von den normalen Methoden zur Bewältigung dieses Problems (Validierungssatz, ausreichend hoher Schwellenwert) können Sie prüfen, ob die Korrelationen symmetrisch und transitiv sind. Wenn dies der Fall ist, ist es wahrscheinlich, dass sie wahr sind, und Sie sollten sie weiter überprüfen.

DaL
quelle
1

Eine Methode, die ich verwende, ist eine Schattenmatrix, in der der Datensatz aus Indikatorvariablen besteht, bei denen eine 1 angegeben wird, wenn ein Wert vorhanden ist, und 0, wenn dies nicht der Fall ist. Das Korrelieren dieser Daten untereinander und mit den Originaldaten kann dabei helfen, festzustellen, ob Variablen zusammen fehlen (MAR) oder nicht (MCAR). An Reinem Beispiel (aus dem Buch "R in action" von Robert Kabacoff):

#Load dataset
data(sleep, package = "VIM")

x <- as.data.frame(abs(is.na(sleep)))

#Elements of x are 1 if a value in the sleep data is missing and 0 if non-missing.
head(sleep)
head(x)

#Extracting variables that have some missing values.
y <- x[which(sapply(x, sd) > 0)]
cor(y)

#We see that variables Dream and NonD tend to be missing together. To a lesser extent, this is also true with Sleep and NonD, as well as Sleep and Dream.

#Now, looking at the relationship between the presence of missing values in each variable and the observed values in other variables:
cor(sleep, y, use="pairwise.complete.obs")

#NonD is more likely to be missing as Exp, BodyWgt, and Gest increases, suggesting that the missingness for NonD is likely MAR rather than MCAR.
Phil
quelle
1
In VIM können Sie auch Spinoplots überprüfen. Sie geben ein Histogramm von zwei Variablen mit der jeweils fehlenden. Wir können zwei Variablen zeichnen und sehen, wie das Fehlen einer Variablen von der anderen abweicht. Wenn wir zum Beispiel die Überlebenszeit und die Behandlungszuordnung aufzeichnen und eine recht verzerrte Verteilung der Fehlzeiten feststellen, können wir davon ausgehen, dass geringere Überlebenszeiten mit mehr Fehlzeiten verbunden sind beobachtete variable Überlebenszeit.
RayVelcoro
1
Bei der Frage geht es um MAR vs MNAR, aber bei Ihrer Antwort geht es um MCAR vs MAR. MCAR ist völlig anders als MNAR.
Tim
@Tim Wie AdamO in einem Kommentar unter der Frage feststellte, bedeutete OP MAR vs MCAR.
Phil