time-series - SARIMA模型订单
问题描述
我正在对具有 ACF 和 PACF 图的数据集使用 SARIMA 模型 (1,1,1)(2,1,1,96),如下所示: ACF 图的数据集 PACF 图的数据集
使用上述模型后,我查看了 ACF 和 PACF 图以确保我已经涵盖了所有依赖项;但是,ACF 和 PACF 图在滞后 96 处显示出很大的值。如果我能得到一些关于我应该对我的 SARIMA 模型订单进行修改的帮助,我将不胜感激。请考虑我的数据具有每日季节性,因为它是 15 分钟数据,所以 S=96。
谢谢,
解决方案
您可以使用pmdarima 包中的 auto_arima 函数来迭代订单组合并根据 AIC 分数获得最佳值。您已经确定了查看 acf 和 pacf 图的季节性和非季节性订单。您可以使用这些订单作为起始参数。
import pmdarima as pm
from sklearn.metrics import mean_squared_error
model = pm.auto_arima(<train_data>,error_action="ignore", suppress_warnings = True,
seasonal = True,
m = 96,
start_p = 1,start_q = 1,d=1,
start_P = 2,start_Q = 1,D=1,
max_p = 12,max_q = 12,max_d=2,
max_P = 4,max_Q = 4,max_D = 2,
test='adf', #use adf test
information_criterion='aic', #AIC or BIC
stepwise = False, trace = False)
之后,您可以使用plot_diagnostics
函数获取模型诊断
model.plot_diagnostics(figsize=(8,8))
您还可以从汇总函数中获取 Ljung-Box和Jarque-Bera统计数据,以检查残差分布和残差相关性。
model.summary()
推荐阅读
- javascript - 重新加载页面时如何保持灯箱图像打开?
- python - 为什么我的代码在我还没有提出时在自定义异常类中执行
- r - 如何按特定标准拆分 R 中的数据?
- spring-boot - org.hibernate.id.IdentifierGenerationException:必须在调用 save() 之前手动分配此类的 id:com.robicciportal.entity.Dnd
- python - 生成遵循概率分布的随机数
- javascript - windows.onload 函数运行速度快于元素被填充
- mysql - mysql中的错误:无效使用NULL值
- android - 如何放置重复的警报通知?
- javascript - 如何在 jQuery 项目中渲染 React 组件或页面?
- python - 固定问题谢谢