首页 > 解决方案 > 阶跃函数不返回较低的 AIC

问题描述

我正在尝试将 stats::step 函数应用于 lmer 模型。我有一个初始模型

modelComplex1 <- lmer(
log(value) ~ (time | ID) + time + (X1 + X2 + X3) ^ 2,
data = test,
REML = TRUE,
lmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 100000)))

然后我使用 step 函数:

step(modelComplex1)

哪个输出:

Model found: log(value) ~ (time | ID) + time + X2 + X3

然后我建立了所说的模型:

modelStepComplex1 <- lmer(
log(value) ~ (time | ID) + time + X2+ X3,
data = test,
REML = TRUE,
lmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 100000)))

但是,在计算 AIC 时:

> AIC(modelComplex1, modelStepComplex1)
                  df      AIC
modelComplex1     25 6944.118
modelStepComplex1  9 6950.111

我认为输出模型必须具有较低的 AIC,有什么我不明白的吗?

标签: rstatistics

解决方案


原因似乎是模型使用 REML 拟合,而 AIC 使用 ML。我不太确定如何解决这个问题,但现在它就足够了。


推荐阅读