Я бы просто создал доверительные интервалы вероятности профиля . Они надежны и их очень легко вычислить с помощью пакета 'lme4'. Пример:
> library(lme4)
> fm = lmer(Reaction ~ Days + (Days | Subject),
data=sleepstudy)
> summary(fm)
[…]
Random effects:
Groups Name Variance Std.Dev. Corr
Subject (Intercept) 612.09 24.740
Days 35.07 5.922 0.07
Residual 654.94 25.592
Теперь вы можете рассчитать доверительные интервалы вероятности профиля с помощью confint()
функции:
> confint(fm, oldNames=FALSE)
Computing profile confidence intervals ...
2.5 % 97.5 %
sd_(Intercept)|Subject 14.381 37.716
cor_Days.(Intercept)|Subject -0.482 0.685
sd_Days|Subject 3.801 8.753
sigma 22.898 28.858
(Intercept) 237.681 265.130
Days 7.359 13.576
Вы также можете использовать параметрическую загрузку для вычисления доверительных интервалов. Вот синтаксис R (используя parm
аргумент для ограничения параметров, для которых мы хотим доверительные интервалы):
> confint(fm, method="boot", nsim=1000, parm=1:3)
Computing bootstrap confidence intervals ...
2.5 % 97.5 %
sd_(Intercept)|Subject 11.886 35.390
cor_Days.(Intercept)|Subject -0.504 0.929
sd_Days|Subject 3.347 8.283
Результаты, естественно, будут несколько отличаться для каждого запуска. Вы можете увеличить nsim
это отклонение, но это также увеличит время, необходимое для оценки доверительных интервалов.