Python中是否有可自动计算SARIMAX最优order和seasonal_order参数的函数?
SARIMAX参数自动调优Python实现方案
直接用pmdarima库的auto_arima功能即可满足需求,这是目前工业界和学术领域最常用的SARIMA/SARIMAX自动调参工具,核心能力如下:
- 自动通过ADF、KPSS等平稳性检验判断普通差分阶数
d和季节性差分阶数D - 支持自定义
p、q、P、Q四个参数的搜索上下界,可根据业务场景缩小范围提升搜索效率 - 内置AIC、BIC等信息准则作为参数优劣的判断依据,也支持自定义预测效果评估指标
- 传入季节性周期
s后会自动遍历所有合法的seasonal_order(P,D,Q,s)组合
基础使用示例
import pmdarima as pm # 替换为你的时间序列数据,这里以周度季节性周期(s=7)为例 time_series = [你的序列数据] auto_model = pm.auto_arima( time_series, seasonal=True, m=7, # 即参数s,对应季节性周期 start_p=0, max_p=3, start_q=0, max_q=3, start_P=0, max_P=2, start_Q=0, max_Q=2, d=None, # 自动计算d的最优值 D=None, # 自动计算D的最优值 trace=True, error_action="ignore", suppress_warnings=True, stepwise=True # 开启逐步搜索,速度是全网格搜索的数倍,精度损失极小 ) # 输出最优参数 print("最优order(p,d,q):", auto_model.order) print("最优seasonal_order(P,D,Q,s):", auto_model.seasonal_order)
其他可选方案
如果你需要更高的灵活度,比如自定义参数约束、自定义评估逻辑,也可以结合statsmodels的SARIMAX实现,搭配optuna、hyperopt这类通用超参数优化库自行搭建搜索逻辑。
内容的提问来源于stack exchange,提问作者Remi L.
相关产品推荐
相关产品推荐

