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

MATLAB:如何计算fitlm构建的线性回归模型的AIC值

计算MATLAB线性回归模型的AIC值

当你用fitlm(X,y)构建线性回归模型后,确实MATLAB没有为LinearModel类提供直接的aic()函数,但我们可以通过模型自带的属性,结合AIC的定义公式轻松计算出来,下面是两种实用方法:

方法1:直接用模型属性计算标准AIC

AIC的核心公式是:

AIC = 2k - 2ln(L)
其中:

  • k 是模型中估计的参数数量(包含截距项)
  • ln(L) 是模型的对数似然值

fitlm返回的LinearModel对象已经包含了这两个关键属性,直接调用计算即可:

% 假设你的线性模型对象是modl
k = modl.NumCoefficients;       % 获取参数总数(含截距)
log_likelihood = modl.LogLikelihood;  % 获取对数似然值
aic = 2*k - 2*log_likelihood;

方法2:计算校正版AIC(AICc)

当样本量较小的时候,标准AIC可能会有偏差,这时候可以计算校正后的AICc,公式为:

AICc = AIC + 2k(k+1)/(n - k - 1)
其中n是样本数量,同样可以从模型属性中获取:

n = modl.NumObservations;       % 获取样本总数
aic_c = aic + 2*k*(k+1)/(n - k - 1);

注意事项

  • 确保你的MATLAB版本支持LinearModel的这些属性(R2016a及以后版本都没问题)
  • 如果是正则化的线性模型(比如用fitlm添加正则项),参数数量k的计算需要调整,不过常规的普通最小二乘回归直接用NumCoefficients就可以。

内容的提问来源于stack exchange,提问作者Prasannjeet Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:22:57