使用现代(>1.0)版本lme4
你可以直接比较lmer
菲茨和相应的lm
model, but你必须使用 ML——对于没有随机效应的模型,很难提出“REML 标准”的合理类比(因为它涉及数据的线性变换,将所有固定效应设置为零。 ..)
您应该意识到,具有和不具有方差分量的模型之间的信息论比较存在理论问题:请参阅GLMM FAQ https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html了解更多信息。
library(lme4)
fm1 <- lmer(Reaction~Days+(1|Subject),sleepstudy, REML=FALSE)
fm0 <- lm(Reaction~Days,sleepstudy)
AIC(fm1,fm0)
## df AIC
## fm1 4 1802.079
## fm0 3 1906.293
我更喜欢这种格式的输出(delta-AIC 而不是原始 AIC 值):
bbmle::AICtab(fm1,fm0)
## dAIC df
## fm1 0.0 4
## fm0 104.2 3
为了进行测试,让我们模拟没有随机效应的数据(我必须尝试几个随机数种子才能获得一个示例,其中主体间标准偏差实际上估计为零):
rr <- simulate(~Days+(1|Subject),
newparams=list(theta=0,beta=fixef(fm1),
sigma=sigma(fm1)),
newdata=sleepstudy,
family="gaussian",
seed=103)[[1]]
ss <- transform(sleepstudy,Reaction=rr)
fm1Z <- update(fm1,data=ss)
VarCorr(fm1Z)
## Groups Name Std.Dev.
## Subject (Intercept) 0.000
## Residual 29.241
fm0Z <- update(fm0,data=ss)
all.equal(c(logLik(fm0Z)),c(logLik(fm1Z))) ## TRUE