我正在尝试使用 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]
所有这些值仅是预测评估的结果。我可以传递任何参数来修复此错误,还是数据问题(例如数字较小)?
发现问题了。
我正在对多个时间序列运行分层预测。
其中一些时间序列缺少数据点。
对我来说,这些类型的时间序列可以忽略,所以我删除了它们。 或者,您可以用一些常数值填充缺失的数据点。
谢谢!