You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Base R与broom::glance计算AIC结果不一致的技术问询

AIC数值差异的原因解析
  • 核心差异来源:step()输出的是逐步筛选后最终简化模型的AIC,而glance()输出的是初始全变量模型的AIC,二者针对的是完全不同的模型,所以数值差异巨大:
    • step(lm(mpg~disp+hp+drat+wt+qsec), direction="backward")会从全模型开始逐步剔除冗余变量,最终保留的最优模型是mpg ~ drat + wt + qsec,这个模型的AIC为63.89。
    • glance(lm(mpg~disp+hp+drat+wt+qsec))直接计算的是包含全部5个自变量的全模型AIC,数值为158。
  • 验证方式:对最终简化模型调用glance(),就能得到和step()一致的结果:
    glance(lm(mpg ~ drat + wt + qsec))
    # 输出的AIC会与63.89一致
    
  • 补充相关知识点:
    • AIC(赤池信息准则)的计算结合了模型的似然值与参数数量,变量越多的模型,参数惩罚项越大,全模型因包含冗余变量,AIC远高于简化后的最优模型是正常现象。
    • 逐步向后法的逻辑是从全模型出发,每次剔除会让AIC上升最少(或下降最多)的变量,直到无法通过剔除变量降低AIC为止。
    • 你提到的“逐步回归结果会因变量进入顺序不同而变化”是向前/逐步法的典型特性,向后法因从全模型开始,变量剔除顺序对最终结果的影响相对更小,但仍可能存在多个AIC相近的候选模型。

内容的提问来源于stack exchange,提问作者Yann peacelover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:30:39