ARIMAX вне выборочного прогноза со statsmodels - PullRequest
0 голосов
/ 02 января 2019

Пожалуйста, помогите мне понять, как сделать из выборочного прогноза 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()
...