Python:pmdarima、autoarima 不适用于大数据

chr*_*er1 3 python forecasting arima

我有一个数据框,每 15 分钟进行大约 80.000 次观察。季节性参数 m 假定为 96,因为模式每 24 小时重复一次。当我在 auto_arima 算法中插入这些信息时,需要很长时间(几个小时)才能发出以下错误消息:

MemoryError: Unable to allocate 5.50 GiB for an array with shape (99, 99, 75361) and data type float64
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码:

stepwise_fit = auto_arima(df['Hges'], seasonal=True, m=96, stepwise=True, 
                          stationary=True, trace=True)
print(stepwise_fit.summary())
Run Code Online (Sandbox Code Playgroud)

我尝试将其重新采样为每小时值,以将数据量和 m 因子减少到 24,但我的计算机仍然无法计算结果。

处理大数据时如何使用 auto_arima 找到权重因子?

Ale*_*man 7

我不记得我读到这篇文章的确切来源,但是 auto.arima 和 pmdarima 都没有真正针对规模进行优化,这可能解释了您面临的问题。

但是关于您的问题还有一些更重要的事情需要注意:每隔 15 分钟有 80K 个数据点,ARIMA 可能不是您用例的最佳模型类型:

  • 根据数据的频率和密度,很可能存在多个周期/季节性模式,而 ARIMA 只能处理一种季节性成分。所以至少你应该尝试一个可以处理多个季节性的模型,比如STS或Prophet(R 中的 TBATS也可以处理多个季节性,但它可能会遇到与 auto.arima 相同的问题,因为它在同一个包裹)。
  • 在 80K 点和 15 分钟的测量间隔中,我假设您最有可能处理“物理”时间序列,即传感器或其他一些计量/监控设备(电力负载、网络流量等)的输出。这些类型的时间序列通常是 LSTM 或其他基于深度学习的模型而不是 ARIMA 的很好用例。