Извлеките апостериорную оценку и вероятные интервалы для случайного эффекта для модели lme4 в R

Мне нужно извлечь апостериорные оценки и интервалы для случайного эффекта из моей модели.

В иллюстративных целях набор данных, аналогичный тому, который я использую, будет ChickWeight набор данных в базе R.

Я извлекаю апостериорные оценки и интервалы для моих фиксированных эффектов следующим образом:

#load package
library(lme4)

#model
m.surv<-lmer(weight ~ Time + Diet + (1|Chick), data=ChickWeight)

#load packages
library(MCMCglmm)
library(arm)

#set up for fixed effects
sm.surv<-sim(m.surv)
smfixef.surv=sm.surv@fixef
smfixef.surv=as.mcmc(smfixef.surv)

#which gives
> posterior.mode(smfixef.surv)
(Intercept)        Time       Diet2  ... 
  8.5963329   8.7034260   5.1220436  ...
> HPDinterval(smfixef.surv)
                   lower      upper
(Intercept) -0.90309142 21.3617805
Time         8.42279728  9.0306337
Diet2       -6.84371527 35.1745980
...
attr(,"Probability")
[1] 0.95
>

Когда я пробую это для случайного эффекта (Chick), Я получаю следующую ошибку во второй строке кода:

smranef.surv=sm.surv@ranef
smranef.surv=as.mcmc(smranef.surv)

Ошибка в mcmc.list(x): аргументы должны быть объектами mcmc

Любые предложения о том, как я могу изменить свой код, чтобы извлечь эти значения для случайного эффекта?

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

posterior.mode(sm.surv$VCV[,1])
HPDinterval(sm.surv$VCV[,1])

1 ответ

Решение

Чтобы получить оценку и 95% доверительный интервал для случайных эффектов, вы используете следующий код:

sm.surv <-sim(m.surv)

#between Chick variance
bChick <-sm@ranef$Chick[,,1]
bvar<-as.vector(apply(bChick, 1, var)) #between ind variance posterior distribution
bvar<-as.mcmc(bvar)
posterior.mode(bvar) #mode of the distribution
HPDinterval(bvar)

Это даст вам:

>     posterior.mode(bvar)
     var1 
     501.24353 
>     HPDinterval(bvar)
      lower   upper
var1 412.36042 630.201
attr(,"Probability")
[1] 0.95

Это означает, что оценка составляет 501, нижний 95% интервал - 412, а верхний 95% интервал - 630.

Другие вопросы по тегам