【问题标题】:pm AutoARIMA no suitable models foundpm AutoARIMA 没有找到合适的型号
【发布时间】:2021-03-24 06:03:01
【问题描述】:

我正在尝试使用 pmdarima 的 AutoARIMA 创建季节性 ARIMA (SARIMA) 模型。原因是新数据将在项目的生命周期内变得可用,并且需要自动找到最佳时间序列模型的代码。不幸的是,我当前的代码似乎正在产生垃圾:

import pmdarima as pm
import pandas as pd


train_data = pd.read_csv("test.csv", header=None, names=["Value"])["Value"]
model = pm.AutoARIMA(seasonal=True, m=168, trace=True)
model.fit(train_data.fillna(0))

test.csv

输出(到目前为止,在大型服务器上经过相当长的一段时间后):

Performing stepwise search to minimize aic
 ARIMA(2,1,2)(1,0,1)[168] intercept   : AIC=inf, Time=4041.19 sec
 ARIMA(0,1,0)(0,0,0)[168] intercept   : AIC=-35451.160, Time=1.07 sec
 ARIMA(1,1,0)(1,0,0)[168] intercept   : AIC=inf, Time=15118.06 sec
 ARIMA(0,1,1)(0,0,1)[168] intercept   : AIC=-35951.886, Time=3805.77 sec
 ARIMA(0,1,0)(0,0,0)[168]             : AIC=-35453.123, Time=0.56 sec
 ARIMA(0,1,1)(0,0,0)[168] intercept   : AIC=-35723.198, Time=2.69 sec
 ARIMA(0,1,1)(1,0,1)[168] intercept   : AIC=inf, Time=61326.67 sec
 ARIMA(0,1,1)(0,0,2)[168] intercept   : AIC=inf, Time=39971.60 sec
 ARIMA(0,1,1)(1,0,0)[168] intercept   : AIC=-36054.745, Time=4211.60 sec
 ARIMA(0,1,1)(2,0,0)[168] intercept   : AIC=-36344.782, Time=30668.84 sec

数据有两种季节性模式(一种每天和一种每周)。包含每日模式会产生合理的结果(使用m=24),但每周往往会导致AIC=inf,如上例所示。

【问题讨论】:

  • 这么长时间正常吗?
  • 数据集比较大,运行时间长在意料之中。但在你的情况下可能会有很大的不同。
  • 你用的是哪台机器?我有一个非常相似的数据集,也有很大的季节性。由于计算时间长,我改用 Facebook Prophet,它的速度更快。
  • 机器有32核,约64线程,约250GB RAM。我可能也会选择 fb 先知,但希望将 SARIMA 作为备用选项

标签: python arima pmdarima


【解决方案1】:

问题似乎是 pmdarima 会在一段时间后超时并插入 inf 的 AIC 作为未计算 AIC 的替代。我最终进行了常规分析,并选择了一个稍微过大的 SARIMA 模型,该模型需要更长的时间才能拟合,但肯定包含所有相关效果。

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2016-05-15
    相关资源
    最近更新 更多