Альтернативные решения для многоуровневого моделирования из-за того, что на уровнях 2 и 3 недостаточно кластеров
Я использовал несколько многоуровневых моделей для своих данных, но теперь мне сказали, что мои кластеры слишком малы, и мне нужно рассмотреть возможность вынести два уровня и добавить их в качестве ковариат (фиктивные переменные). Я сделал это, и это не помогло. не работает
Чтобы предоставить некоторую справочную информацию, у меня есть результаты до и после теста в качестве переменной результата. У меня есть данные в длинном формате. Я использовал пакет nlme.
У меня есть дети, вложенные в классы, вложенные в школы. Моя оригинальная модель включала участника (n=303), класс (n=17) и школу (n=10) в качестве трех уровней MLM для случайных уклонов, но я также добавил время для случайных перехватов.
Основываясь на новом совете вынимать класс и школу из-за того, что вложенные кластеры недостаточно велики, я собирался держать участников как случайные уклоны, а время - как случайные перехваты.
Я довольно новичок в R и также нахожу свои ноги со статистикой, поэтому извиняюсь, если я сделал несколько простых ошибок.
Я предполагаю, что мои вопросы: 1. Является ли новый метод добавления класса и школы в качестве фиктивных переменных лучшим подходом? Я читал об использовании FEM (моделей с фиксированным эффектом), чтобы быть надежным методом для кластеризованных данных, но не был уверен, что это соответствует методу, который я на самом деле пытаюсь запустить 2. Есть ли способ вернуть проблемы с моей моделью и выходные данные, которые я получаю (Ошибка в MEEM(объект, conLin, control$niterEM): Сингулярность в обратном разрешении на уровне 0, блок 1) Я обнаружил, когда вынул класс или код, он работал, но это не совсем решение.
Буду очень признателен за любые предложения, решения или рекомендации, спасибо.
Старая модель:
model1 <- lme(MASSATTS ~ Time*Condition,
data = cdata,
method = "ML",
na.action = "na.omit",
random = ~ Time|School/Class/Code,
control = list(opt = "optim"))
Новый код:
model1 <- lme(MASSATTS ~ Time*Condition + School + Class,
data = cdata,
method = "ML",
na.action = "na.omit",
random = ~ Time|Code,
control = list(opt = "optim"))
Error in MEEM(object, conLin, control$niterEM) : Singularity in backsolve at level 0, block 1