我是Python ARIMA实现的新手。我有15分钟频率的数据几个月。我试图遵循Box-Jenkins方法来拟合时间序列模型。我到最后遇到了一个问题。给出了时间序列(ts)的ACF-PACF graph和差异序列(ts_diff)。我使用了ARIMA(5,1,2),最后我绘制了拟合值(绿色)和原始值(蓝色)。正如你可以从figure那样,价值观有明显的变化(一个)。我做错了什么?
预测不好吗?任何见解都会有所帮助。
答案 0 :(得分:0)
这是一步预测或预测的标准属性。
用于预测的信息是包括前一时期在内的历史记录。例如,某个时段的峰值将影响下一个时段的预测,但不会影响高峰时段的预测。这使得预测似乎在图中发生了变化。
提前两步预测会给人一种转变两个时期的印象。
答案 1 :(得分:0)
只是为了确认,我正在这样做吗?这是我使用的代码。
from statsmodels.tsa.arima_model import ARIMA
model = sm.tsa.ARIMA(ts, order=(5, 1, 2))
model = model.fit()
results_ARIMA=model.predict(typ='levels')
concatenated = pd.concat([ts, results_ARIMA], axis=1, keys=['original', 'predicted'])
concatenated.head(10)
original predicted
login_time
1970-01-01 20:00:00 2 NaN
1970-01-01 20:15:00 6 2.000186
1970-01-01 20:30:00 9 4.552971
1970-01-01 20:45:00 7 7.118973
1970-01-01 21:00:00 1 7.099769
1970-01-01 21:15:00 4 3.624975
1970-01-01 21:30:00 0 3.867454
1970-01-01 21:45:00 4 1.618120
1970-01-01 22:00:00 9 2.997275
1970-01-01 22:15:00 8 6.300015
答案 2 :(得分:0)
在您指定的模型(5,1,2)中,设置d = 1.这意味着您将数据差异1,或者换句话说,执行整个时间相关观察范围的移位以便最小化拟合模型的残差。
有时,将d设置为1将导致ACF / PACF图具有更少和/或更少的显着尖峰(即,更少的极端残差)。在这种情况下,如果您使用已经拟合的模型来预测未来的值,那么如果应用差分,您的预测将与您的预测偏差相差不大。
通过Y(差分)= Y(t) - Y(t- d )完成差分,其中Y(t)是指时间指数t处的观测值Y,并且 d 指的是您申请的差异顺序。当您使用差分时,您的整个观察范围基本上会向右移动。这意味着您在时间序列的左边缘丢失了一些数据。丢失的时间点取决于您使用的差异 d 的顺序。这是您观察到的转变的来源。
This page可能会提供更详细的解释(如果您想要处理拟合ARIMA模型的整个过程,请确保点击一下并探索其他页面)。
希望这会有所帮助(或至少让你放心转变)!
贝斯茨,
埃弗特