请帮助我找出如何使用1个外生变量对ARIMA样本进行预测。
我有一个名为FILEDATA
的列表,其中包含两个列表FILEDATA[0]
是内生变量,FILEDATA[1]
是外生变量数据,它们都是相同的长度。
我可以轻松地在FILEDATA[0]
上进行ARIMA预测,但是当我添加FILEDATA[1]
时我不知道如何将其插入model_fit.forecast()
中。
请阅读文档,但是它非常模棱两可,我不了解exog
函数和ARIMA()中model_fit.forecast()
参数的类型是什么,我也不确定如何提供元素。
我遇到类似IndexError: tuple index out of range
的错误,我不确定该怎么办。
size = 4 # min 4
history = list(FILEDATA[0][0:size])
future = FILEDATA[0][size:len(FILEDATA[0])]
history2 = list(FILEDATA[1][0:size])
future2 = FILEDATA[1][size:len(FILEDATA[1])]
begintime = datetime.datetime.now()
predictions = list()
for t in range(len(future)):
model = ARIMA(endog=history, order=(1,1,0), exog=np.array(history2).reshape(len(history2),1) )
model_fit = model.fit(transparams=False, trend='nc',maxiter=20000 , tol=1e-08 , disp=0, method='mle')
actual2 = future2[t]
output = model_fit.forecast(exog=np.array(actual2))
forecast = output[0]
predictions.append(forecast)
actual = future[t]
history.append(actual)
history2.append(actual2)
print(t,'predicted=%f, actual=%f' % (forecast, actual))
endtime = datetime.datetime.now()