Как мне сделать, чтобы получить решение для случайных эффектов, используя пакет lme4? - PullRequest
0 голосов
/ 01 мая 2019

У меня есть модель, подобная этой:

model=lmer(y ~ (1|ID) + Factor.A + Factor.B, data=df)

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

coef(summary(model))
summary(model)

Я тоже пробовал этот код:

coef(model)

но я полагаю, этот вывод не для решения случайных эффектов. Есть ли код для получения решения случайных эффектов с использованием пакета lme4 или другого?

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Используя только пакет lme4, вы можете наиболее удобно получить условные режимы вместе с условными стандартными отклонениями через as.data.frame(ranef(fitted_model)):

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
as.data.frame(ranef(fm1))
##     grpvar        term grp     condval    condsd
## 1  Subject (Intercept) 308   2.2575329 12.070389
## 2  Subject (Intercept) 309 -40.3942719 12.070389
## 3  Subject (Intercept) 310 -38.9563542 12.070389
## ... etc.

Я не уверен, что мне было бы удобно называть эти "стандартные ошибки" - здесь есть целый набор червей о том, какие выводы вы можете сделать для наблюдаемых условных значений случайных величин ... согласно Даг Бейтс

Что касается терминологии, я предпочитаю называть величины, которые "1015 * экстрактор" возвращает условные режимы случайного эффекты ". Если вы хотите быть точным, это условные режимы (для линейной смешанной модели они также являются условными средствами) случайные эффекты B, заданные Y = y, оцениваются по параметру оценки. Можно также оценить условную дисперсию-ковариацию B, заданную Y = y и, следовательно, получить интервал прогнозирования.

1 голос
/ 07 мая 2019

Я думаю, что ясно сформулировать ваш вопрос, и то, что вы пытаетесь сделать, было бы полезно. Однако, основываясь на комментариях, я думаю, что знаю, что вы пытаетесь сделать.

Как сказал @Marius, ranef(model) даст вам перехваты.

пакет arm имеет функцию se.ranef, которая дает вам «стандартные ошибки». Я не уверен, как они рассчитываются. Посмотрите эту ссылку, чтобы убедиться, что она делает то, что вам нужно:

https://rdrr.io/cran/arm/man/se.coef.html

Итак, все вместе:

library(lme4)
model=lmer(y ~ (1|ID) + Factor.A + Factor.B, data=df)

ranef(model)

library(arm)
se.ranef(model)
...