我正在处理时间序列预测问题,我对 ARIMA 和时间序列很陌生,所以请耐心等待;)。实际上我的问题是,对于“标准”ARIMA,您使用训练集的一个子集来预测系列中的下一个观察结果(如果我没有错...),我想要的是: a) 使用固定数量的观察来预测输出,b) 不是预测系列中的下一个观察,而是预测固定数量的观察之后的观察(实际上我想提前 24 小时进行预测,所以在 24 小时之后) “位置”,因为我正在处理每小时数据)。这是我正在使用的代码,我应该如何修改它?
from statsmodels.tsa.arima_model import ARIMA
from sklearn.metrics import mean_squared_error
train, test = array(load[:'2018']), array(load['2019':'2019'])
history = [x for x in train]
predictions = list()
# walk-forward validation
for t in range(len(test)):
model = ARIMA(history, order=(1,1,0))
model_fit = model.fit()
output = model_fit.forecast()
yhat = output[0]
predictions.append(yhat)
obs = test[t]
history.append(obs)
print('predicted=%f, expected=%f, %f of %f' % (yhat, obs, t, len(test)))
# evaluate forecasts
rmse = sqrt(mean_squared_error(test, predictions))
print('Test RMSE: %.3f' % rmse)