Пожалуйста, помогите мне понять, как сделать из выборочного прогноза ARIMA с 1 экзогенной переменной.
У меня есть список с именем FILEDATA
, который содержит два списка FILEDATA[0]
- это эндогенная переменная и FILEDATA[1]
- это данные экзогенной переменной, они оба имеют одинаковую длину.
Я могу легко сделать прогноз ARIMA на FILEDATA[0]
, но когда я добавляю FILEDATA[1]
, я не могу понять, как вставить его в model_fit.forecast()
.
Прочитать документацию, но это очень неоднозначно, я неЯ не знаю, как вводить элементы.
Я получаю сообщения об ошибках типа IndexError: tuple index out of range
, я не уверен, к какому типу относится параметр exog
в функции model_fit.forecast()
.что делать.
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()