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)
最新(> 1.0)バージョンのlme4
lmer
フィットと対応するlm
モデルを直接比較できますが、butを使用する必要があります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
テストするために、ランダム効果なしでデータをシミュレートしましょう(被験者間標準偏差が実際にゼロと推定された例を取得するために、いくつかの乱数シードを試す必要がありました):
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