首页 > 解决方案 > 三个 ARIMA 问题

问题描述

我正在学习 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.

处理此类问题的推荐方法是什么?

标签: time-seriesarima

解决方案


推荐阅读