Я пытался извлечь оценочную ковариационную матрицу внутри объекта после запуска случайной модели перехватов / наклонов с помощью lme ().Я получаю сообщение об ошибке с функцией getVarCov (), которую не могу понять.Смотрите пример ниже.
my.lme <- lme(ham.d ~ week,
data = riesby, random = ~ week | id,
na.action=na.exclude,
method="ML")
getVarCov(my.lme,type="marginal")
Error in cond.var + Z %*% D %*% t(Z) : non-conformable arrays
Похоже, что существует проблема с тем, как хранится матрица проектирования для случайных эффектов, или, возможно, с их ковариационной матрицей.
Я могу рассчитать его вручную, извлекая ковариационную матрицу для случайных эффектов и дисперсии случайных ошибок, а также указав расчетную матрицу для случайных эффектов:
z <- matrix(c(1,1,1,1,1,1,0,1,2,3,4,5),byrow=F,nrow=6)
sigma.v <- getVarCov(my.lme)
z%*%sigma.v%*%t(z) + (my.lme$sigma)^2*diag(6)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 24.845840 11.20833 9.787477 8.366625 6.945774 5.524922
[2,] 11.208328 24.08309 12.524539 13.182645 13.840751 14.498856
[3,] 9.787477 12.52454 27.478263 17.998665 20.735727 23.472790
[4,] 8.366625 13.18264 17.998665 35.031345 27.630704 32.446724
[5,] 6.945774 13.84075 20.735727 27.630704 46.742341 41.420658
[6,] 5.524922 14.49886 23.472790 32.446724 41.420658 62.611252
Любой советбудет принята с благодарностью.Спасибо!