Em vez disso, eu apenas criaria intervalos de confiança de probabilidade de perfil . Eles são confiáveis e muito fáceis de calcular usando o pacote 'lme4'. Exemplo:
> 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
Agora você pode calcular os intervalos de confiança da probabilidade do perfil com a confint()
função:
> 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
Você também pode usar a auto-inicialização paramétrica para calcular intervalos de confiança. Aqui está a sintaxe R (usando o parm
argumento para restringir para quais parâmetros queremos intervalos de confiança):
> 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
Os resultados variam naturalmente um pouco para cada execução. Você pode aumentar nsim
para diminuir essa variação, mas isso também aumentará o tempo necessário para estimar os intervalos de confiança.