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

如何从pmdarima的pipe.fit()中获取AIC、BIC等最优估计值

如何从pmdarima Pipeline中提取AIC、BIC等最优估计值?

嘿,我来帮你搞定这个问题!你已经用pmdarima的Pipeline拟合了带傅里叶特征的AutoARIMA模型,现在想把AIC、BIC这些关键指标从模型里提取出来,而不是只看pipe.summary()的文本输出对吧?其实不用去解析summary的字符串,模型本身就把这些值存在可直接访问的属性和方法里,我给你一步步说:

第一步:获取Pipeline中的AutoARIMA模型实例

你的Pipeline最后一步命名为arima,所以可以通过named_steps属性直接拿到这个模型对象:

arima_model = pipe.named_steps['arima']

第二步:提取AIC、BIC等指标

pmdarima的AutoARIMA对象提供了两种方式获取这些信息准则值:

方式1:使用快捷方法(推荐)

AutoARIMA封装了直接返回指标的方法,调用起来很方便:

# 获取AIC值
aic = arima_model.aic()
# 获取BIC值
bic = arima_model.bic()
# 获取HQIC值(如果需要的话)
hqic = arima_model.hqic()

方式2:访问底层statsmodels模型的属性

AutoARIMA的model_属性对应着底层拟合好的statsmodels ARIMA模型,你也可以直接访问它的属性来获取指标:

# 从statsmodels模型中获取AIC
aic_from_model = arima_model.model_.aic
# 获取BIC
bic_from_model = arima_model.model_.bic

完整示例代码

把这些整合起来,你可以这样写:

import pmdarima as pm
from sklearn.pipeline import Pipeline
from pmdarima.preprocessing import FourierFeaturizer

# 假设y_train和X_train已经定义好
pipe = Pipeline([
    ("fourier", FourierFeaturizer(m=12, k=4)),
    ("arima", pm.AutoARIMA(start_p=1, d=None, start_q=1, max_p=4, max_d=3, max_q=4, 
                           start_P=1, D=None, start_Q=1, max_P=2, max_D=1, max_Q=2, 
                           max_order=10, m=12, seasonal=False, stationary=False, 
                           information_criterion='aic', alpha=0.05, ))
])
pipe.fit(y_train,X_train)

# 提取指标
arima_model = pipe.named_steps['arima']
aic_value = arima_model.aic()
bic_value = arima_model.bic()

print(f"最优模型AIC值: {aic_value:.4f}")
print(f"最优模型BIC值: {bic_value:.4f}")

小提示

比起从pipe.summary()的文本里去解析这些值,直接访问模型的属性或方法要可靠得多——毕竟summary的输出格式可能会随pmdarima版本变化,而模型的API属性和方法会保持稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:23:01