Рабочие данные выглядят так:
set.seed(1234)
df <- data.frame(y = rnorm(1:30),
fac1 = as.factor(sample(c("A","B","C","D","E"),30, replace = T)),
fac2 = as.factor(sample(c("NY","NC","CA"),30,replace = T)),
x = rnorm(1:30))
Модель lme
устанавливается как:
library(lme4)
mixed <- lmer(y ~ x + (1|fac1) + (1|fac2), data = df)
Я использовал bootMer
для запуска параметрической начальной загрузки, и я могу успешно получить коэффициенты (перехват) и SE для фиксированных и случайных эффектов:
mixed_boot_sum <- function(data){s <- sigma(data)
c(beta = getME(data, "fixef"), theta = getME(data, "theta"), sigma = s)}
mixed_boot <- bootMer(mixed, FUN = mixed_boot_sum, nsim = 100, type = "parametric", use.u = FALSE)
Мой первый вопрос: как получить коэффициенты (наклон) каждого отдельного уровня двух случайных эффектов из результатов начальной загрузки mixed_boot
?
У меня нет проблем с извлечением коэффициентов (наклона) из модели mixed
с помощью функции augment
из пакета broom
, см. ниже:
library(broom)
mixed.coef <- augment(mixed, df)
Однако похоже, что broom
не может работать с объектом класса boot
. Я не могу использовать вышеуказанные функции непосредственно на mixed_boot
.
Я также пытался изменить mixed_boot_sum
, добавив mmList
(я думал, что это то, что я ищу), но R жалуется:
Error in bootMer(mixed, FUN = mixed_boot_sum, nsim = 100, type = "parametric", :
bootMer currently only handles functions that return numeric vectors
Кроме того, можно ли получить CI как для фиксированных, так и для случайных эффектов, указав также FUN
?
Теперь я очень запутался в правильных спецификациях для FUN
, чтобы удовлетворить мои потребности. Любая помощь в отношении моего вопроса будет принята с благодарностью!