我正在学习ARIMA算法,遇到了一些问题。请回答以下问题。所使用的ARIMA实现来自Statesmodel.tsa。
Q1。当ARIMA算法检测到AR系数不稳定时,是否可以将其配置为进行预测,而不是停止预测。我有以下代码:
history = [x for x in train]
for tt in test.index:
t=datetime.date(tt)
# fit model
model = ARIMA(history, order=(1,1,1))
model_fit = model.fit()
# one step forecast
yhat = model_fit.forecast()[0]
# store forecast and ob
predictions.append(yhat)
history.append(test[t])
大多数数据集都将通过代码运行,即使它们可能无法产生良好的结果。有一组数据导致算法停止。我检查了这个数据集,发现它的值先升后降。我收到的错误消息如下:
ValueError: The computed initial AR coefficients are not stationary. You should induce stationarity, choose a different model order, or you can pass your own start_params.
Q2:一个人应该如何处理先增加值然后减少的时间序列数据?
Q3:然后,我通过使用训练数据实施了网格搜索,以首先找到最佳的(p,d,q)参数。然后,这组参数在ARIMA中用于预测测试集中的数据。但是,当测试集中的数据具有不同的属性时,ARIMA也将停止。例如,使用一个数据集,我从训练数据中得到了(0,0,2)。但是,使用这组参数将其用于预测测试集时,会收到以下错误消息。
ValueError: The computed initial MA coefficients are not invertible. You should induce invertibility, choose a different model order, or you can pass your own start_params.
处理此类问题的推荐方法是什么?