Подяки цій відповіді належить Подяка @Joshua, який дав приголомшливу відповідь, коли я опублікував це питання на адресу спільноті R та Statistics у Google+. Я просто вставляю його відповідь нижче.
Для запуску регресії (без прихованого змінного моделювання), будь ласка, прочитайте мої нотатки, введені після тексту цитованих.
Поводження з відсутніми даними з максимальною ймовірністю за всіма доступними даними (так званий FIML) - дуже корисна методика. Однак існує низка ускладнень, які ускладнюють їх здійснення загальним чином. Розглянемо просту лінійну регресійну модель, передбачивши деякий постійний результат від скажімо віку, статі та типу занять. В OLS ви не турбуєтесь про розподіл віку, статі та професії, лише результат. Зазвичай для категоричних прогнозів вони кодуються фіктивним кодом (0/1). Для використання ML потрібні припущення щодо розподілу для всіх змінних з відсутністю. На сьогодні найпростіший підхід - багатоваріантний нормальний (MVN). Це те, що, наприклад, зробить Mplus за замовчуванням, якщо ви не виходите для того, щоб оголосити тип змінної (наприклад, категоричну). У простому прикладі, який я наводив, ви, напевно, хочете припустити, що це нормально для віку, Бернуллі для сексу та багаточлен для типу роботи. Останнє є складним, оскільки у вас є декілька бінарних змінних, але ви не хочете трактувати їх як Бернуллі. Це означає, що ви не хочете працювати з макетними кодованими змінними, вам потрібно працювати з фактичною категоріальною змінною, щоб оцінювачі ML могли правильно використовувати багаточлен, але це, в свою чергу, означає, що процес кодування манекена потрібно вбудовувати в модель , а не дані. Знову ускладнює життя. Крім того, спільний розподіл безперервних і категоричних змінних є нетривіальним для обчислення (коли я стикаюся з такими проблемами в Mplus, він досить швидко починає руйнуватися і боротися). Нарешті, ви дійсно ідеально вказуєте механізм відсутності даних. У стилі SEM, FIML, всі змінні по суті обумовлені усіма іншими, але це не обов'язково правильно. Наприклад, можливо, вік відсутній як функція не за статтю та типом занять, а від їх взаємодії. Взаємодія може бути не важливою для головного результату, але якщо вона важлива для відсутності віку, то вона також повинна бути в моделі, не обов'язково по суті, яка представляє інтерес, але відсутня модель даних.
lavaan використовуватиме ML для MVN, але в даний час я вважаю, що параметри категоричних даних обмежені (знову ж таки надходить із поля SEM, це стандарт). Множинна імпутація спочатку здається менш елегантною, оскільки вона робить явні безліч прихованих припущень, що стоять за FIML (наприклад, припущення щодо розподілу для кожної змінної та прогнозована модель, яка передбачається відсутністю кожної змінної). Однак це дає багато контролю та чітко замислюється над розподілом кожної змінної, і оптимальний механізм відсутніх даних для кожної є цінним.
Я все більше переконуюсь, що байєсівські моделі - це спосіб поводження з відсутніми даними. Причина полягає в тому, що вони дуже гнучкі, включаючи розподіли для кожної змінної, дозволяючи безлічі різних типів розподілів, і можуть легко включати змінність, введену відсутніми даними про предиктори, у загальну модель оцінки (що є фокусом з багаторазовою імпутацією, де ви то доведеться якось поєднувати результати). Звичайно, ці методи не найпростіші та можуть зайняти багато тренувань та часу на використання.
Таким чином, це насправді не відповідає вашому запитанню, але трохи пояснює, чому повністю загальні рамки боротьби з відсутністю є складними. У своєму пакеті semutils для коваріаційних матриць я використовую лаваан під ним, щоб використовувати ML. Я роблю це, тому що я вважаю, що для матриці коваріації дисперсії ви все одно використовуєте безперервні змінні, так що я вважаю, що мої користувачі вже приймають MVN для своїх даних.
Це означає, що якщо всі змінні з відсутністю є безперервними, лаванськими , пакет для моделювання структурних рівнянь (SEM) є приємним для використання для FIML в R.
Тепер повернусь до мого початкового питання. Мій намір полягав у тому, щоб мати магічне виправлення відсутності під час лінійної регресії. Всі мої змінні з відсутніми були приємними та безперервними. Тож я продовжував виконувати свої аналізи у двох стилях:
- Звичайний спосіб з багаторазовою імпутацією
- У стилі SEM з лаваном за допомогою FIML.
Мені не вистачало багато речей, роблячи регресію в стилі SEM. Обидва стилі давали подібні коефіцієнти та R квадрати, але в стилі SEM я не отримав тестування на регресію (типові значення F з df), замість цього я отримав відповідні показники, які не були корисними, оскільки я використовував усі мої ступені свободи. Також, коли одна модель мала більший R2, ніж інша, я не міг знайти спосіб порівняти, чи була різниця суттєвою. Крім того, звичайний спосіб регресії дає доступ до ряду тестувань на припущення про регресію, які є неоціненними. Для більш детальної відповіді на це питання дивіться моє інше питання, на яке добре відповів @StasK .
Тому висновок здається, що lavaan є гідним пакетом для FIML в R, але використання FIML залежить від статистичних припущень та типу аналізу, який проводиться. Що стосується регресії (без латентного змінного моделювання), то, мабуть, розумним кроком є утримання від програм SEM та використання багаторазової імпутації.