gpt4 book ai didi

r - 如何使用lme4将没有随机效应的模型与具有随机效应的模型进行比较?

转载 作者:行者123 更新时间:2023-12-03 12:40:00 26 4
gpt4 key购买 nike

我可以使用nlme包中的gls()来构建没有随机效果的mod1。
然后,我可以将使用AIC的mod1与使用lme()构建的mod2(确实包含随机效果)进行比较。

mod1 = gls(response ~ fixed1 + fixed2, method="REML", data)
mod2 = lme(response ~ fixed1 + fixed2, random = ~1 | random1, method="REML",data)
AIC(mod1,mod2)


是否有与lme4软件包的gls()类似的东西,可以让我构建没有随机效果的mod3,并将其与使用包含随机效果的lmer()构建的mod4进行比较?

mod3 = ???(response ~ fixed1 + fixed2, REML=T, data)
mod4 = lmer(response ~ fixed1 + fixed2 + (1|random1), REML=T, data)
AIC(mod3,mod4)

最佳答案

使用lme4的现代(> 1.0)版本,您可以在lmer拟合和相应的lm模型之间进行直接比较,但是您必须使用ML ---很难提出合理的模拟没有随机效应的模型的“ REML准则”(因为它将涉及将所有固定效应设置为零的数据的线性变换...)

您应该意识到,在具有和不具有方差成分的模型之间进行信息理论比较时,存在一些理论问题:有关更多信息,请参见GLMM FAQ

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


我更喜欢这种格式的输出(增量AIC而不是原始AIC值):

bbmle::AICtab(fm1,fm0)
## dAIC df
## fm1 0.0 4
## fm0 104.2 3


为了进行测试,让我们模拟没有随机影响的数据(我不得不尝试几个随机数种子来获得一个示例,其中对象间std dev实际上估计为零):

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

关于r - 如何使用lme4将没有随机效应的模型与具有随机效应的模型进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com