r - 阶跃函数不返回较低的 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,有什么我不明白的吗?
解决方案
原因似乎是模型使用 REML 拟合,而 AIC 使用 ML。我不太确定如何解决这个问题,但现在它就足够了。
推荐阅读
- android - 如何在回收站视图中获取动态创建的编辑文本值的值?
- python - 如何在 Python 中检索 rx(反应式)管道中的可观察集?
- javascript - 验证表单中的多个字段 - Javascript
- git - 无法在 rhel 上克隆项目
- c# - 通过 MongoDb 的 json 响应
- excel - Excel VBA 读取单元格注释
- vue.js - 控制台错误,因为模板中使用的存储变量仅在异步 API 调用后填充
- tensorflow-federated - 在 TFF 上下文中:评估步骤是否取决于训练过程?
- matlab - 如何使用`textscan`将字符串转换为表格?
- php - ??= 运算符在 PHP 中使用设置值做什么