【发布时间】:2016-05-13 11:11:01
【问题描述】:
请参阅 Ben Bolker 2016 年 5 月 16 日的回答以获取适当的解决方案。 OP 下面。
我正在用 lme4 拟合几个多级模型。我想报告随机效应的方差和协方差,并使这个过程自动化。
我知道我可以使用as.data.frame(VarCorr(mymodel)) 获得方差,并且我知道我可以使用confint(mymodel) 获得置信区间。显然,我可以合并/合并这两个表,并通过简单地将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(Time^2)”和“(Intercept)”变量,然后按两列匹配,但我没有得到任何结果。问题在于,每次模型更改时,您可能会有不同数量的方差和协方差,以及不同的三角矩阵。
感谢您的帮助,
k.
【问题讨论】:
-
您能更清楚地说明您要做什么吗?你想要方差和协方差的置信区间吗?还是您想要方差和协方差本身的方差和协方差?正如@Thierry 下面建议的那样,我认为您需要在尝试找到正确的计算框架之前解决/澄清一些问题。
-
嗨,Ben,感谢您的回复,如果不清楚,我们深表歉意。实际上,我想将置信区间表示为方差和协方差,而不是像
lme4::confint()的默认值那样的标准差和相关性。 -
请注意,在方差-协方差尺度上获得随机效应的置信区间确实不是一件容易的事;我正在对包进行一些修改,以帮助解决这个问题。
-
嗨,Ben,我不明白,这不只是取标准化结果并乘以 SD 的问题吗?最美好的祝愿
-
如果您想要配置置信区间(仍在研究中),则不是。
标签: r covariance lme4 confidence-interval