我正在尝试使用ARIMA预测时间序列。从图中可以看到,预测值比预期值高了一步。我在其他一些线程中读到,这种行为是预期的,但是如何?如何同步?
我使用的代码:
history = [x for x in train]
predictions = list()
for t in range(len(test)):
model = ARIMA(history,order=(2, 2, 1))
model_fit = model.fit(disp=0)
output = model_fit.forecast(alpha=0.05)
yhat = output[0]
predictions.append(yhat)
obs = test[t]
history.append(obs)
print('predicted=%f, expected=%f' % (yhat, obs))
rmse = sqrt(mean_squared_error(test, predictions))
print('Test RMSE: %.3f' % rmse)
# plot
plt.plot(test, color='blue')
plt.plot(predictions, color='red')
plt.show()