Взаимодействие случайных эффектов - кодирование в nlme и lme4 - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь воссоздать анализ из статьи, которую я читал. Документ представлял собой контролируемое исследование, в котором 20 пациентов были разделены на две группы: контроль (n = 10) и лечение (n = 10).

В документе указано, что они использовали смешанную модель, в которой зависимая переменная была предварительно - разница в посте в тесте, независимой переменной была группа (контроль или лечение), и был случайный эффект для субъекта * группового взаимодействия.

Я пытаюсь закодировать это как в nlme и lme4 и получение некоторых проблем с взаимодействием.

Вот симуляция данных:

set.seed(2020)
subject <- as.factor(1:20)
Group <- as.factor(rep(c("Control", "Treatment"), each = 10))
pre_post_diff <- c(round(rnorm(n = 10, mean = 0, sd = 1), 2),
                   round(rnorm(n = 10, mean = 2, sd = 1.5), 2))
df <- data.frame(subject, Group, pre_post_diff)
df

nlme

Я пробовал два разных способа, оба с одной и той же ошибкой :

summary(nlme::lme(pre_post_diff ~ 1 - Group, random = ~1|subject:Group, data = df))
summary(nlme::lme(pre_post_diff ~ 1 - Group, random = ~1|subject*Group, data = df))

Это привело к следующей ошибке:

Error in getGroups.data.frame(dataMix, groups) : 
  invalid formula for groups

lme4

В lme4, я попробовал следующее:

summary(lme4::lmer(pre_post_diff ~ 1 - Group + (1|subject:Group), data = df))

Создание этой ошибки:

Error: number of levels of each grouping factor must be < number of observations

Автор использовал статистику для своего анализа, поэтому потенциально модель указывается не так, как я пытаюсь сделать в R. Я просто пытаюсь следовать подходу, который они объяснили в своей статье. Здесь я что-то не так делаю?

...