如何从lme()对象提取估计的主题内协方差矩阵

时间:2019-02-28 15:45:11

标签: r mixed-models

在使用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

任何建议将不胜感激。谢谢!

0 个答案:

没有答案
相关问题