Альтернативные решения для многоуровневого моделирования из-за того, что на уровнях 2 и 3 недостаточно кластеров - PullRequest
0 голосов
/ 15 февраля 2019

Я использовал несколько многоуровневых моделей для своих данных, но теперь мне сказали, что мои кластеры слишком малы, и мне нужно рассмотреть возможность удаления двух уровней и добавления их в качестве ковариат (фиктивных переменных). Я дал этому шанси это не сработало.

Чтобы предоставить некоторую справочную информацию, у меня есть переменные результата до и после теста.У меня есть данные в длинном формате.Я использовал пакет 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

...