auto_arima选中带截距的最优ARIMA模型,如何正确拟合?
解决statsmodels ARIMA添加截距项的问题
statsmodels的ARIMA类在d=0(平稳序列)的情况下,默认不会包含截距项,这就是你拟合ARIMA(5,0,5)后AIC与pmdarima最优模型不一致的核心原因。要拟合带截距的该模型,只需在初始化模型时指定trend='c'参数即可。
代码示例
import statsmodels.api as sm from statsmodels.tsa.arima.model import ARIMA # 假设你的时间序列数据存储在ts_data变量中 # 初始化带截距的ARIMA(5,0,5)模型 model = ARIMA(ts_data, order=(5, 0, 5), trend='c') # 拟合模型 results = model.fit() # 查看拟合后的AIC值,应该与pmdarima的最优模型结果一致 print("模型AIC:", results.aic)
补充说明
- pmdarima中标识的"intercept"(截距),对应statsmodels里的
trend='c'参数; - 若模型d>0(存在差分),截距项的逻辑会不同,但你的场景是d=0,
trend='c'完全匹配需求; - 拟合完成后,可通过
results.summary()查看模型的详细参数,确认截距项已被纳入模型。
内容的提问来源于stack exchange,提问作者Freyana
相关产品推荐
相关产品推荐

