随机效应与lme4包的随机效应和方差 - 协方差矩阵提取如下:
library(lme4)
fm1 <- lmer(Reaction ~ Days + (1|Subject), sleepstudy)
fm1.rr <- ranef(fm1,condVar=TRUE)
fm1.pv <- attr(rr[[1]],"postVar")
我想知道如何用mgcv做到这一点? 'gam.vcomp'函数确实提取了估计的方差分量,但不是每个级别的随机效应 .
library(mgcv)
fm2 <- gam(Reaction ~ Days + s (Subject, bs="re"), data = sleepstudy, method = "REML")
gam.vcomp(fm2)
2 回答
为每个
Subject
提取随机效果我们可以看到两个模型中的随机效应与预期相同 .
为了提取随机效应的方差 - 协方差矩阵并计算误差,我们使用参数
Vp
,它是贝叶斯后验协方差矩阵:或频率论估计的协方差矩阵
Ve
我们可以看到
mgcv
估计的随机效应误差与使用lme4
模型估计的那些略有不同 . 基于贝叶斯后验协方差矩阵的误差较大,而基于频率矩阵的误差较小 .您还可以使用包
gamm4
,它基于gamm
包,但在下面使用lme4
. 该模型将适合:随机效应的随机效应和方差 - 协方差矩阵可以在正常的
lme4
过程之后获得 .但是
gamm4
可能比gam
慢得多,因此请阅读帮助文件以了解何时最适合您的需求 .