Ich würde stattdessen nur Konfidenzintervalle für die Profilwahrscheinlichkeit erstellen . Sie sind zuverlässig und mit dem 'lme4'-Paket sehr einfach zu berechnen. Beispiel:
> 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
Sie können jetzt die Konfidenzintervalle für die Profilwahrscheinlichkeit mit der folgenden confint()
Funktion berechnen :
> 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
Sie können auch den parametrischen Bootstrap verwenden, um Konfidenzintervalle zu berechnen. Hier ist die R-Syntax (mit dem parm
Argument einschränken, für welche Parameter Konfidenzintervalle gewünscht werden):
> 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
Die Ergebnisse variieren natürlich für jeden Lauf etwas. Sie können nsim
diese Abweichung erhöhen , um sie zu verringern. Dies erhöht jedoch auch die Zeit, die zum Schätzen der Konfidenzintervalle benötigt wird.