pmdarima调用auto_arima设seasonal=False仍返回SARIMAX问题求助
问题成因
pmdarima 1.5.0及之后的版本对模型基类做了重构,所有时间序列模型统一基于SARIMAX类实现调度,即便设置seasonal=False禁用了季节性拟合,输出结果的模型名称也会显示为SARIMAX,这只是类名显示的问题,本质上只要返回结果里的季节性阶数(P,D,Q,s)全为0,就是你需要的普通ARIMA模型,没有额外拟合季节性参数。
另外你现有代码存在参数笔误:你写的start_P=0是SARIMA模型的季节性p阶起始值,普通ARIMA对应的起始p参数是小写的start_p,该笔误不影响本次结果但容易引发参数混淆。
调整配置方法
- 直接提取阶数忽略模型类名:将auto_arima的运行结果赋值给变量后,调用
.order属性即可直接拿到你需要的(p,d,q)元组,无需关注summary里显示的模型名称,示例如下:
model = auto_arima(df['Births'], start_p=0, start_q=0, max_p=6, max_q=3, d=None, error_action='ignore', suppress_warnings=True, seasonal=False, stepwise=True) # 直接输出ARIMA的(p,d,q)阶数 print(model.order)
- 验证模型属性:查看summary结果里的
Seasonal ARIMA Parameters部分,确认季节性阶数为(0,0,0,0),即可确认该模型本质为无季节性的普通ARIMA模型,返回的(p,d,q)参数完全符合你的需求。 - 修正参数笔误后运行,也可避免程序误调用季节性参数逻辑,进一步保证结果符合预期。
内容的提问来源于stack exchange,提问作者Shayan
相关产品推荐
相关产品推荐

