带有统计模型的ARIMAX样本外预测

时间:2019-01-02 05:56:08

标签: python-3.x numpy statistics statsmodels arima

请帮助我找出如何使用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()

0 个答案:

没有答案
相关问题