Il merito di questa risposta va a @Joshua, che ha dato una risposta fantastica quando ho pubblicato questa domanda alla community di R e Statistics su Google+. Sto semplicemente incollando la sua risposta qui sotto.
Per eseguire la regressione (senza modellazione di variabili latenti), leggi le mie note digitate dopo il testo tra virgolette.
La gestione dei dati mancanti con la massima verosimiglianza su tutti i dati disponibili (il cosiddetto FIML) è una tecnica molto utile. Tuttavia, ci sono una serie di complicazioni che rendono difficile implementare in modo generale. Prendi in considerazione un semplice modello di regressione lineare, che prevede alcuni risultati continui di età, sesso e tipo di occupazione. In OLS, non ti preoccupare della distribuzione di età, sesso e occupazione, solo il risultato. In genere per i predittori categorici, sono codificati fittizi (0/1). Per utilizzare ML, sono necessarie ipotesi distributive per tutte le variabili con mancanza. Di gran lunga l'approccio più semplice è il multivariato normale (MVN). Questo è ciò che, ad esempio, Mplus farà per impostazione predefinita se non esci per dichiarare il tipo di variabile (ad esempio, categoriale). Nel semplice esempio che ho dato, probabilmente vorrai assumere, normale per età, Bernoulli per sesso e multinomale per tipo di lavoro. Quest'ultimo è complicato perché ciò che hai in realtà sono diverse variabili binarie, ma non vuoi trattarle come Bernoulli. Ciò significa che non si desidera lavorare con le variabili codificate fittizie, è necessario lavorare con la variabile categoriale effettiva in modo che gli stimatori ML possano utilizzare correttamente un multinomiale, ma questo a sua volta significa che il processo di codifica fittizia deve essere integrato nel modello , non i dati. Ancora una volta complicando la vita. Inoltre, la distribuzione congiunta di variabili continue e categoriche non è banale da calcolare (quando incontro problemi come questo in Mplus, inizia abbastanza rapidamente a rompersi e lottare). Infine, puoi davvero idealmente specificare il meccanismo di dati mancante. In stile SEM, FIML, tutte le variabili sono essenzialmente condizionate su tutte le altre, ma ciò non è necessariamente corretto. Ad esempio, forse l'età manca in funzione del genere e del tipo di occupazione, ma della loro interazione. L'interazione potrebbe non essere importante per il risultato focale, ma se è importante per la mancanza di età, allora deve anche essere nel modello, non necessariamente nel modello di interesse sostanziale ma nel modello di dati mancanti.
lavaan utilizzerà ML per MVN, ma attualmente credo che le opzioni di dati categoriali siano limitate (sempre dal campo SEM, questo è standard). All'inizio l'imputazione multipla sembra meno elegante perché rende esplicite molte ipotesi nascoste dietro FIML (come ipotesi distributive per ogni variabile e il modello predittivo assunto per mancanza su ogni variabile). Tuttavia, ti dà molto controllo e pensa esplicitamente alla distribuzione di ciascuna variabile e il meccanismo ottimale di dati mancanti per ciascuna è prezioso.
Sto diventando sempre più convinto che i modelli bayesiani siano il modo per gestire i dati mancanti. Il motivo è che sono molto flessibili nell'includere le distribuzioni per ciascuna variabile, consentendo molti tipi diversi di distribuzioni e possono facilmente incorporare la variabilità introdotta dai dati mancanti sui predittori, nelle stime globali del modello (che è il trucco con imputazione multipla in cui tu quindi in qualche modo combinare i risultati). Naturalmente, questi metodi non sono i più semplici e possono richiedere molto allenamento e tempo per essere utilizzati.
Quindi questo non risponde davvero alla tua domanda, ma spiega un po 'perché i quadri completamente generali per affrontare la mancanza sono difficili. Nel mio pacchetto semutils per le matrici di covarianza, uso sotto lavaan per usare ML. Lo faccio perché presumo per una matrice di covarianza di varianza che stai usando comunque variabili continue in modo che presumo che i miei utenti stiano già assumendo MVN per i loro dati.
Ciò significa che se tutte le variabili con mancanza sono continue, lavaan , un pacchetto di modellazione di equazioni strutturali (SEM) è un valido da usare per FIML in R.
Ora torno alla mia domanda iniziale. La mia intenzione era quella di avere una soluzione magica per la mancanza durante l'esecuzione della regressione lineare. Tutte le mie variabili mancanti erano belle e continue. Quindi ho proceduto ad eseguire le mie analisi in due stili:
- Il solito modo con imputazione multipla
- In stile SEM con lavaan usando FIML.
Mi mancavano molte cose facendo regressione in stile SEM. Entrambi gli stili hanno dato coefficienti e quadrati R simili, ma in stile SEM non ho ottenuto il test di significatività della regressione (i valori F tipici con df), invece ho ottenuto indici di adattamento che non erano utili poiché avevo usato tutti i miei gradi di libertà. Inoltre, quando un modello aveva un R2 più grande di un altro, non riuscivo a trovare un modo per confrontare se la differenza fosse significativa. Inoltre, fare la regressione nel solito modo consente di accedere a una serie di test per ipotesi di regressione che sono inestimabili. Per una risposta più dettagliata su questo problema, vedi la mia altra domanda a cui ha risposto bene @StasK .
Quindi la conclusione sembra essere che lavaan sia un pacchetto decente per FIML in R, tuttavia l'uso di FIML dipende da ipotesi statistiche e dal tipo di analisi che si sta conducendo. Per quanto riguarda la regressione (senza modellazione a variabile latente), tenerla fuori dai programmi SEM e usare l'imputazione multipla è probabilmente una mossa saggia.