ValueError:StatsForecast 的 AutoARIMA 模型中的数学域错误

问题描述 投票:0回答:1

我正在尝试使用 statsforecast AutoArima 来预测以下类型的数据:

邮政编码 产品系列 周_日期 rma_count
12198 ABC 2021-01-03 6.0
61022 防御 2021-01-03 1.0
43106 GHI 2021-01-03 4.0
18019 XYZ 2021-01-03 3.0

我有两年的数据用于 13 周的训练和预测。

我正在调用 model.fit,如下所示:

models = [
        AutoARIMA(season_length=52),
        HoltWinters(season_length=52, error_type='A'),
        DynamicOptimizedTheta(season_length=52, 
                decomposition_type="additive"),
        SeasonalNaive(season_length=52)
    ]
    
    model = StatsForecast(models=models, 
                              freq='W', n_jobs=-1, fallback_model=Naive())
    model.fit(train_agg)

但是对于 AutoARIMA,我收到“ValueError:数学域错误”,堆栈跟踪如下:

Traceback (most recent call last):
  File "/miniconda3/lib/python3.8/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/miniconda3/lib/python3.8/site-packages/statsforecast/core.py", line 77, in fit
    fm[i, i_model] = new_model.fit(y=y, X=X)
  File "/miniconda3/lib/python3.8/site-packages/statsforecast/models.py", line 328, in fit
    self.model_ = auto_arima_f(
  File "/miniconda3/lib/python3.8/site-packages/statsforecast/arima.py", line 1828, in auto_arima_f
    fit = Arima(x, order=(0, 0, 0), include_mean=False)
  File "/miniconda3/lib/python3.8/site-packages/statsforecast/arima.py", line 1487, in Arima
    tmp["bic"] = tmp["aic"] + npar * (math.log(nstar) - 2)

查看代码生成错误,似乎 nstar 在以下等式中出现负值:

nstar = n - tmp["arma"][5] - tmp["arma"][6] * tmp["arma"][4]

所有这些值仅是预测评估的结果。我可以传递任何参数来修复此错误,还是数据问题(例如数字较小)?

time-series amazon-sagemaker forecasting arima statsforecast
1个回答
0
投票

发现问题了。

我正在对多个时间序列运行分层预测。

其中一些时间序列缺少数据点。

对我来说,这些类型的时间序列可以忽略,所以我删除了它们。 或者,您可以用一些常数值填充缺失的数据点。

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.