Der Verdienst dieser Antwort geht an @Joshua , der eine großartige Antwort gegeben hat, als ich diese Frage in der R and Statistics-Community auf Google+ gepostet habe . Ich füge einfach seine Antwort unten ein.
Um eine Regression durchzuführen (ohne latente Variablenmodellierung), lesen Sie bitte meine Notizen, die nach dem zitierten Text eingegeben wurden.
Die Behandlung fehlender Daten mit maximaler Wahrscheinlichkeit für alle verfügbaren Daten (sogenannte FIML) ist eine sehr nützliche Technik. Es gibt jedoch eine Reihe von Komplikationen, die eine allgemeine Implementierung erschweren. Stellen Sie sich ein einfaches lineares Regressionsmodell vor, das ein kontinuierliches Ergebnis anhand von Alter, Geschlecht und Berufstyp vorhersagt. Bei OLS kümmern Sie sich nicht um die Verteilung von Alter, Geschlecht und Beruf, sondern nur um das Ergebnis. Typischerweise sind sie für kategoriale Prädiktoren Dummy-codiert (0/1). Um ML zu verwenden, sind Verteilungsannahmen für alle fehlenden Variablen erforderlich. Der mit Abstand einfachste Ansatz ist das multivariate Normal (MVN). Dies ist zum Beispiel die Standardeinstellung von Mplus, wenn Sie nicht versuchen, den Variablentyp (z. B. kategorial) zu deklarieren. In dem einfachen Beispiel, das ich gegeben habe, Sie möchten wahrscheinlich annehmen, dass Bernoulli für das Alter, Bernoulli für das Geschlecht und multinomal für den Jobtyp ist. Letzteres ist schwierig, da Sie tatsächlich mehrere Binärvariablen haben, diese aber nicht als Bernoulli behandeln möchten. Dies bedeutet, dass Sie nicht mit den Dummy-codierten Variablen arbeiten möchten. Sie müssen mit der tatsächlichen kategorialen Variablen arbeiten, damit die ML-Schätzer ein Multinomial verwenden können. Dies bedeutet jedoch, dass der Dummy-Codierungsprozess in das Modell integriert werden muss , nicht die Daten. Das Leben wieder komplizieren. Darüber hinaus ist die gemeinsame Verteilung kontinuierlicher und kategorialer Variablen nicht einfach zu berechnen (wenn ich in Mplus auf Probleme wie diese stoße, beginnt sie ziemlich schnell zusammenzubrechen und zu kämpfen). Schließlich spezifizieren Sie den fehlenden Datenmechanismus wirklich ideal. Im SEM-Stil, FIML, Alle Variablen sind im Wesentlichen von allen anderen abhängig, dies ist jedoch nicht unbedingt korrekt. Zum Beispiel fehlt vielleicht das Alter als Funktion nicht des Geschlechts und des Berufstyps, sondern ihrer Interaktion. Die Interaktion ist möglicherweise nicht wichtig für das Fokusergebnis, aber wenn sie für das Fehlen des Alters wichtig ist, muss sie auch im Modell vorhanden sein, nicht unbedingt im inhaltlichen Modell von Interesse, sondern im fehlenden Datenmodell.
Lavaan wird ML für MVN verwenden, aber derzeit glaube ich, dass die kategorialen Datenoptionen begrenzt sind (ebenfalls aus dem SEM-Bereich, dies ist Standard). Die multiple Imputation scheint zunächst weniger elegant zu sein, da sie viele versteckte Annahmen hinter FIML explizit macht (wie etwa Verteilungsannahmen für jede Variable und das Vorhersagemodell, das für das Fehlen jeder Variablen angenommen wird). Es gibt Ihnen jedoch viel Kontrolle und ermöglicht Ihnen ein explizites Nachdenken über die Verteilung jeder Variablen, und der optimale Mechanismus für fehlende Daten für jede Variable ist wertvoll.
Ich bin immer mehr davon überzeugt, dass Bayes'sche Modelle der Weg sind, mit fehlenden Daten umzugehen. Der Grund dafür ist, dass sie sehr flexibel Verteilungen für jede Variable einbeziehen können, was viele verschiedene Arten von Verteilungen zulässt, und die durch fehlende Daten zu Prädiktoren verursachte Variabilität problemlos in die Gesamtmodellschätzungen einbeziehen können (was der Trick bei der Mehrfachzuschreibung ist, wenn Sie dies tun) dann muss man irgendwie die ergebnisse zusammenfassen). Natürlich sind diese Methoden nicht die einfachsten und erfordern viel Training und Zeit.
Das beantwortet Ihre Frage also nicht wirklich, erklärt aber ein wenig, warum völlig allgemeine Rahmenbedingungen für den Umgang mit Missständen schwierig sind. In meinem semutils-Paket für die Kovarianzmatrizen verwende ich Lavaan darunter, um ML zu verwenden. Ich mache das, weil ich für eine Varianz-Kovarianz-Matrix annehme, dass Sie ohnehin kontinuierliche Variablen verwenden, so dass ich annehme, dass meine Benutzer bereits MVN für ihre Daten annehmen.
Dies bedeutet, dass, wenn alle fehlenden Variablen stetig sind ( Lavaan) , ein Paket zur Strukturgleichungsmodellierung (SEM) für FIML in R hilfreich ist.
Kommen wir nun zu meiner ersten Frage zurück. Meine Absicht war es, eine magische Lösung für das Fehlen zu finden, wenn ich eine lineare Regression durchführe. Alle meine Variablen mit fehlenden waren nett und kontinuierlich. Also habe ich meine Analysen auf zwei Arten durchgeführt:
- Der übliche Weg mit Mehrfachzuschreibung
- Im SEM-Stil mit Lavaan unter Verwendung von FIML.
Ich habe viele Dinge übersehen, indem ich eine Regression im SEM-Stil durchgeführt habe. Beide Stile ergaben ähnliche Koeffizienten und R-Quadrate, aber im SEM-Stil erhielt ich keinen Signifikanztest der Regression (die typischen F-Werte mit df), sondern Fit-Indizes, die nicht hilfreich waren, da ich alle meine Grade aufgebraucht hatte der Freiheit. Auch wenn ein Modell ein größeres R2 als ein anderes hatte, konnte ich nicht vergleichen, ob der Unterschied signifikant war. Wenn Sie die Regression auf die übliche Weise durchführen, erhalten Sie darüber hinaus Zugriff auf eine Reihe von Tests für unbezahlbare Regressionsannahmen. Für eine detailliertere Antwort zu diesem Thema siehe meine andere Frage , die von @StasK gut beantwortet wurde .
Die Schlussfolgerung scheint also zu sein, dass Lavaan ein anständiges Paket für FIML in R ist, die Verwendung von FIML jedoch von statistischen Annahmen und der Art der durchgeführten Analyse abhängt. In Bezug auf die Regression (ohne latente Variablenmodellierung) ist es wahrscheinlich ein kluger Schritt, sie aus SEM-Programmen herauszuhalten und multiple Imputation zu verwenden.