Первый комментарий, что это на самом деле является не- тривиальный теоретический вопрос: есть крыса ее long thread on r-sig-mixed-models, который входит в некоторые технические детали; вам обязательно нужно взглянуть, хотя это немного страшно. Основная проблема заключается в том, что оценочные значения коэффициентов для каждой группы представляют собой сумму параметра фиксированного эффекта и BLUP/условный режим для этой группы, которые являются разными классами объектов (один параметр, один является условным средним для случайная величина), что создает некоторые технические трудности.
Второй момент заключается в том, что (к сожалению), я не знаю простой способ сделать это в lme
, поэтому мой ответ использует lmer
(от lme4
пакета).
Если вам удобно выполнять самую легкую вещь и игнорировать (возможно, не определенную) ковариацию между параметрами фиксированного эффекта и BLUP, вы можете использовать приведенный ниже код.
Возможны две альтернативы: (1) для вашей модели с байесовским иерархическим подходом (например, пакет MCMCglmm
) и вычисление стандартных отклонений задних предсказаний для каждого уровня (2) с использованием параметрического бутстрапинга для вычисления BLUPs/условных а затем принять стандартные отклонения от загрузочных распределений.
Пожалуйста, помните, что, как обычно, этот совет поставляется без каких-либо гарантий.
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
cc <- coef(fm1)$Subject
## variances of fixed effects
fixed.vars <- diag(vcov(fm1))
## extract variances of conditional modes
r1 <- ranef(fm1,condVar=TRUE)
cmode.vars <- t(apply(cv <- attr(r1[[1]],"postVar"),3,diag))
seVals <- sqrt(sweep(cmode.vars,2,fixed.vars,"+"))
res <- cbind(cc,seVals)
res2 <- setNames(res[,c(1,3,2,4)],
c("int","int_se","slope","slope_se"))
## int int_se slope slope_se
## 308 253.6637 13.86649 19.666258 2.7752
## 309 211.0065 13.86649 1.847583 2.7752
## 310 212.4449 13.86649 5.018406 2.7752
## 330 275.0956 13.86649 5.652955 2.7752
## 331 273.6653 13.86649 7.397391 2.7752
## 332 260.4446 13.86649 10.195115 2.7752
Отличный @Ben! Это то, что я искал ... Я посмотрю на этом сайте. – Juanchi
Два вопроса: 1) Являются ли СЕ всегда одинаковыми для каждого уровня группировки, или могут быть модели, где значения SE различаются для каждого уровня группировки? (другими словами: достаточно ли было бы вернуть только одно значение SE для перехвата и одно для наклона). 2) Используется ли это также и для «glmer»? – Daniel