Я б замість цього просто створив довірчі інтервали вірогідності профілю . Вони надійні і їх дуже легко обчислити, використовуючи пакет '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
щоб зменшити цей варіант, але це також збільшить час, необхідний для оцінки довірчих інтервалів.