【问题标题】:ARIMA order for trend趋势的 ARIMA 订单
【发布时间】:2018-07-31 21:39:16
【问题描述】:

我正在尝试拟合 ARIMA 模型。我有 3 个月的数据,每分钟显示count(float)。我应该为arima.fit() 传递哪个命令? 我需要预测每一分钟。

【问题讨论】:

  • 如果您对统计数据一无所知,您应该尝试在交叉验证上询问。

标签: python arima


【解决方案1】:

基本的 ARIMA(p,d,q) 模型不适用于您的数据。

您的数据违反了 ARIMA 的假设,其中之一是参数必须随时间保持一致。
我看到了 5 个峰值的集群,所以我假设您有 5 个忙碌的工作日和安静的周末。 Basic ARIMA 不会知道工作日和周末之间的区别,因此它可能不会为您提供有用的结果。

有 SARIMA(季节性自回归综合移动平均线)之类的东西。如果您处理的是每日数据点,这将很有用,但也不适用于分钟数据。

我建议您尝试过滤数据,以便将晚上和周末排除在外。然后,您可能正在处理具有一致参数的数据集。如果您使用的是 python,您可以尝试在过滤的时间序列数据上使用金字塔的 auto_arima() 函数,让它尝试自动找到最佳参数 p、d、q。

它还进行了许多您可能希望针对此类分析进行的统计测试。我实际上并不总是同意 auto_arima 的参数选择,但这是一个开始。

model = pyramid.arima.auto_arima(s)
print(model.summary())

http://pyramid-arima.readthedocs.io/en/latest/_submodules/arima.html

【讨论】:

  • 我排除了周末并使用 auto.arima。但我得到了 NaN 进行预测。
  • stepwise_model = auto_arima(group, start_p=1, start_q=1, max_p=3, max_q=3, m=12, start_P=0,seasonal=True, d=1, D=1, trace=True, error_action='ignore', suppress_warnings=True, stepwise=True)
  • 如果不了解更多数据,将很难诊断。数据代表什么? ARIMA 模型仅适用于固定时间序列数据,或可以转换为固定时间序列数据的数据。您可能还必须过滤掉晚上。您可能必须使用时间序列的第一个差异而不是原始时间序列。基本上,你必须让你的数据看起来像它在这个网站上的样子:en.wikipedia.org/wiki/Stationary_process 而且,总是有可能没有统计关系,你的数据只是白噪声。
  • 数据显示每分钟进入办公室咖啡厅的人数。它在早餐和午餐时间达到峰值。我正在尝试预测未来日期和时间的人数
  • 好的,如果您正在处理已知的周期性行为,那么季节性模型可能是要走的路。所有 ARIMA 模型都是线性模型,因此在某种程度上,形状或形式,您必须弄清楚如何转换数据以使其稳定。您必须删除数据的非固定元素。您应该阅读有关 SARIMA(p,d,q) x (P,D,Q)^s 模型的信息。季节性模型的作用是从数据中减去已知周期,因此在您的情况下,s=7*24*60=10080。然后您将比较周一上午 10 点和下周一上午 10 点,等等。
【解决方案2】:

1) 你的数据对 box -Jenkins 模型(ARIMA) 是否有用?

2) 我最终看到更高的平均值。数据有明显的季节性。 ARIMA 将失败。请尝试基于季节性的模型 - SARIMA 正如 try 所建议的那样,Prophet 是 Facebook 的另一个漂亮的季节性算法。 - (R 实现)
https://machinelearningstories.blogspot.com/2017/05/facebooks-phophet-model-for-forecasting.html

3) 不仅仅依赖 ARIMA。尝试其他时间序列算法,如 STL、BTS、TBATS。 (结构时间序列)和混合等。如果您需要 R 中的一些包信息,请告诉我?

【讨论】:

  • 我没有 R 语言背景。我可以在 python 中使用 Prophet,因为他们有 python 实现吗?
  • 我对 Timeseries 模型真的很陌生。我在回归和分类模型方面有一些经验。我可以在没有任何背景的情况下做这个项目吗?
  • 是的,确实如此。你可以在这里获得 python 实现(facebook .github)-facebook.github.io/prophet/docs/quick_start.html#python-api
  • 时间序列没什么大不了的,可以将其视为以滞后值作为自变量的回归。 ARIMA 只是一个回归模型。如果你对相关的回归和时间序列感兴趣。这篇文章可能会有所帮助-machinelearningstories.blogspot.com/2016/08/…
猜你喜欢
  • 1970-01-01
  • 2015-06-03
  • 2020-02-05
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2021-12-11
相关资源
最近更新 更多