Penghargaan untuk jawaban ini diberikan kepada @ Yosua yang memberikan jawaban yang bagus ketika saya memposting pertanyaan ini ke komunitas R dan Statistik di Google+. Saya hanya menempelkan jawabannya di bawah.
Untuk menjalankan regresi (tanpa pemodelan variabel laten), harap baca catatan saya yang diketik setelah teks yang dikutip.
Menangani data yang hilang dengan Kemungkinan Maksimum pada semua data yang tersedia (disebut FIML) adalah teknik yang sangat berguna. Namun, ada sejumlah komplikasi yang membuatnya sulit untuk diimplementasikan secara umum. Pertimbangkan model regresi linier sederhana, yang memprediksi beberapa hasil terus menerus dari usia, jenis kelamin, dan jenis pekerjaan. Dalam OLS, Anda tidak perlu khawatir tentang distribusi usia, jenis kelamin, dan pekerjaan, hanya hasilnya. Biasanya untuk prediktor kategori, mereka diberi kode dummy (0/1). Untuk menggunakan ML, asumsi distribusi diperlukan untuk semua variabel dengan ketiadaan. Sejauh ini pendekatan termudah adalah multivariate normal (MVN). Inilah yang misalnya, Mplus akan lakukan secara default jika Anda tidak mencari cara untuk mendeklarasikan tipe variabel (misalnya, kategori). Dalam contoh sederhana yang saya berikan, Anda mungkin ingin berasumsi, normal untuk usia, Bernoulli untuk jenis kelamin, dan multinomal untuk jenis pekerjaan. Yang terakhir ini rumit karena apa yang sebenarnya Anda miliki adalah beberapa variabel biner, tetapi Anda tidak ingin memperlakukannya sebagai Bernoulli. Ini berarti Anda tidak ingin bekerja dengan variabel kode dummy, Anda harus bekerja dengan variabel kategorikal yang sebenarnya sehingga estimator ML dapat menggunakan multinomial dengan benar, tetapi ini pada gilirannya berarti bahwa proses pengkodean boneka perlu dibangun ke dalam model , bukan data. Lagi-lagi menyulitkan hidup. Lebih jauh lagi, distribusi bersama variabel kontinu dan kategoris adalah nontrivial untuk dikomputasi (ketika saya mengalami masalah seperti ini di Mplus, itu cukup cepat mulai rusak dan berjuang). Akhirnya, Anda benar-benar menentukan mekanisme data yang hilang. Dalam gaya SEM, FIML, semua variabel pada dasarnya dikondisikan pada yang lain, tetapi ini belum tentu benar. Sebagai contoh, mungkin usia hilang sebagai fungsi bukan dari jenis kelamin dan jenis pekerjaan, tetapi interaksi mereka. Interaksi mungkin tidak penting untuk hasil akhir, tetapi jika penting untuk ketiadaan usia, maka itu juga harus dalam model, tidak harus model yang menarik, tetapi model data yang hilang.
lavaan akan menggunakan ML untuk MVN, tetapi saat ini saya percaya opsi data kategorikal terbatas (sekali lagi berasal dari bidang SEM, ini standar). Beberapa imputasi pada awalnya tampak kurang elegan karena membuat banyak asumsi tersembunyi di balik FIML (seperti asumsi distribusi untuk setiap variabel dan model prediktif yang diasumsikan hilang pada setiap variabel). Namun, ini memberi Anda banyak kontrol dan secara eksplisit berpikir tentang distribusi masing-masing variabel, dan mekanisme data hilang yang optimal untuk masing-masing bernilai.
Saya menjadi semakin yakin bahwa model Bayesian adalah cara untuk menangani data yang hilang. Alasannya adalah mereka sangat fleksibel dalam memasukkan distribusi untuk setiap variabel, memungkinkan berbagai jenis distribusi, dan dapat dengan mudah memasukkan variabilitas yang diperkenalkan oleh data yang hilang pada prediktor, ke dalam perkiraan model keseluruhan (yang merupakan trik dengan imputasi berganda di mana Anda maka harus entah bagaimana menggabungkan hasil). Tentu saja, metode ini bukan yang termudah dan dapat mengambil banyak pelatihan dan waktu untuk digunakan.
Jadi itu tidak benar-benar menjawab pertanyaan Anda, tetapi menjelaskan sedikit mengapa kerangka kerja yang sepenuhnya umum untuk mengatasi ketiadaan rumit. Dalam paket semutils saya untuk matriks kovarians, saya menggunakan lavaan di bawahnya untuk menggunakan ML. Saya melakukan itu karena saya berasumsi untuk matriks kovarians varians bahwa Anda menggunakan variabel kontinu sehingga saya menganggap pengguna saya sudah mengasumsikan MVN untuk data mereka.
Ini berarti bahwa jika semua variabel dengan yang hilang adalah kontinu, lavaan , paket pemodelan persamaan struktural (SEM) adalah paket yang bagus untuk digunakan untuk FIML di R.
Sekarang kembali ke pertanyaan awal saya. Niat saya adalah memiliki perbaikan ajaib untuk hilangnya ketika menjalankan regresi linier. Semua variabel saya dengan yang hilang bagus dan berkelanjutan. Jadi saya melanjutkan untuk menjalankan analisis saya dalam dua gaya:
- Cara biasa dengan beberapa imputasi
- Dalam gaya SEM dengan lavaan menggunakan FIML.
Saya kehilangan banyak hal dengan melakukan regresi dalam gaya SEM. Kedua gaya memberikan koefisien yang sama dan kuadrat R, tetapi dalam gaya SEM saya tidak mendapatkan pengujian signifikansi regresi (nilai-nilai F khas dengan df), sebaliknya saya mendapatkan indeks kecocokan yang tidak membantu karena saya telah menggunakan semua gelar saya. kebebasan. Juga ketika satu model memiliki R2 lebih besar dari yang lain, saya tidak bisa menemukan cara untuk membandingkan apakah perbedaannya signifikan. Selain itu, melakukan regresi dengan cara biasa memberikan akses ke sekelompok pengujian untuk asumsi regresi yang sangat berharga. Untuk jawaban yang lebih terperinci tentang masalah ini, lihat pertanyaan saya yang lain yang dijawab dengan baik oleh @StasK .
Jadi kesimpulannya sepertinya lavaan adalah paket yang layak untuk FIML dalam R, namun penggunaan FIML tergantung pada asumsi statistik dan jenis analisis yang dilakukan. Sejauh regresi (tanpa pemodelan variabel laten) berjalan, menjaganya agar tidak keluar dari program SEM dan menggunakan beberapa imputasi mungkin merupakan langkah yang bijaksana.