Я пытаюсь воспроизвести примеры в многоуровневом анализе от Snijders & Bosker, но не могу найти, как рассчитать SE для ковариации остатка уровня 2.
Я нашел 2 связанных вопроса по SO:
Извлечение ковариации остатков уровня 2 из вывода lme4
Стандартная ошибкакомпонента дисперсии из вывода lmer
Я использовал данные и сценарий, предоставленные Snijders:
https://www.stats.ox.ac.uk/~snijders/mlbook2_r_dat.zip
https://www.stats.ox.ac.uk/~snijders/ch45.r
# Read data
mlbook_red <- read.table("mlbook2_r.dat", header=TRUE)
library(lme4)
# Example 5.4
mlb54 <- lmer(langPOST ~ IQ_verb*ses + sch_iqv*sch_ses
+ (IQ_verb|schoolnr), data = mlbook_red,
REML = FALSE)
dd.ML <- lme4:::devfun2(mlb54,useSc=TRUE,signames=FALSE)
vv <- as.data.frame(VarCorr(mlb54)) ## need ML estimates!
pars <- vv[,"sdcor"]
library("numDeriv")
hh1 <- hessian(dd.ML,pars)
vv2 <- 2*solve(hh1) ## 2* converts from log-likelihood to deviance scale
sqrt(diag(vv2)) ## get standard errors
Числа, которые я получил:
[1] 0.1898 0.1539 0.1014 0.0744
Я не думаю, что эти цифры где-то рядом 1.050 0.069 0.204 0.907
.Коэффициенты верны в as.data.frame(VarCorr(mlb54))$vcov
: [1] 8.369 0.164 -0.929 37.378
.
Может кто-нибудь помочь объяснить, что пошло не так?Большое спасибо!