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