请参考Ben Bolker在2016年5月16日的答案,以获得适当的解决方案。以下是OP。
我正在使用lme4拟合几个多层模型。我想报告随机效应的方差和协方差,并自动化这个过程。
我知道可以使用
假设
我该如何自动化各种乘法以获得协方差,例如:
我正在使用lme4拟合几个多层模型。我想报告随机效应的方差和协方差,并自动化这个过程。
我知道可以使用
as.data.frame(VarCorr(mymodel))
获取方差,也知道可以使用confint(mymodel)
获取置信区间。显然,我可以合并/ rbind两个表格,并通过简单地将confint()
输出的适当行和列的平方放置在方差周围来放置置信区间,但我无法找到一种令人信服的方法来计算协方差。假设
confint
的结果为:conf <- NULL
a <- c(6.2,-0.4,2.2,1.5,-0.4,-0.5,2.8,-0.9,1.3,3.9)
b <- c(6.8,-0.2,2.5,2.5,0.1,0.2,4.8,-0.7,2.3,5)
conf <- data.frame(a,b,row.names = c("sd_(Intercept)|ID","cor_Time.(Intercept)|ID","sd_Time|ID","sd_(Intercept)|Group","cor_Time.(Intercept)|Group","cor_I(Time^2).(Intercept)|Group","sd_Time|Group","cor_I(Time^2).Time|Group","sd_I(Time^2)|Group","sigma"))
colnames(conf) <- c("2.5%","97.5%")
conf
我该如何自动化各种乘法以获得协方差,例如:
cov.time.intercept <- conf[1,2]*conf[1,1]*conf[1,3]
我尝试过拆分标准差和相关系数,创建“ID”、“时间”、“I(时间^2)”和“(截距)”变量,然后通过两列匹配,但我一无所获。问题是每次模型更改时,方差和协方差的数量可能不同,三角矩阵也可能不同。
谢谢任何帮助,
k.
lme4 :: confint()
默认情况下的标准偏差和相关性。 - r.kaiza