提取(i)随机效应的估计方差 - 协方差矩阵和/或(ii)来自lme4的混合模型方程解作为矩阵?

时间:2017-11-15 12:23:53

标签: r sas lme4 mixed-models nlme

正如标题所说我试图从lme4(或其他包?)对象中提取矩阵。为了明确我想要的内容,我认为最简单的方法是参考SAS文档:https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mixed_sect022.htm

随机效应的方差 - 协方差矩阵

在SAS表示法中,此矩阵称为 G ,是随机效应参数 gamma 的方差 - 协方差矩阵。通过在PROC MIXED中使用选项“G”和输出传送系统,您可以获得 G 作为矩阵。

我知道一旦我有了伽玛的方差分量和维度,手动构造这个矩阵就相对简单了。然而,我希望有一种更简单的方式。

混合模型方程解

在SAS表示法中,这些称为 C 。 通过在PROC MIXED中使用选项“MMEQSOL”和输出传送系统,您可以请求生成混合模型方程的解,以及反转系数矩阵。我感兴趣的是后者。

提前致谢!

1 个答案:

答案 0 :(得分:1)

不是一个非常明智的模型(见?lme4::cake),但说明是合理的:

library(lme4)
fm1 <- lmer(angle ~ temperature + 
           (1|recipe)+(1|replicate), cake)

VarCorr()方法为每个术语(在这种情况下每个术语为1x1)提供方差 - 协方差矩阵的列表,并使用自己的打印方法:

v <- VarCorr(fm1)

您可以使用bdiag()中的Matrix(块对角线)函数将这些组合成单个矩阵(as.matrix()从稀疏矩阵转换为标准(密集)R矩阵对象)。

as.matrix(Matrix::bdiag(v))
##          [,1]      [,2]
## [1,] 39.21541 0.0000000
## [2,]  0.00000 0.4949681

遗憾的是,C矩阵并不那么容易获得。如vignette("lmer",package="lme4")中所述,lme4不使用Henderson方程式。 C的上部块(固定效应的方差 - 协方差矩阵)可以通过vcov()访问,但方差的方差 - 协方差矩阵并不那么容易:参见例如here