ARIMA具有多个属性python

时间:2018-11-12 17:48:19

标签: python-3.x time-series arima

在这里,我有一个具有两个属性的数据集。我总共有200天,每天都有TotalTransactionNumberPrice属性,例如:

    Day, Price,TotalTransactionNumber
    10/18/2015 0:00,262.9,118916
    10/19/2015 0:00,264.42,151128
    10/20/2015 0:00,270.22,147335
    10/21/2015 0:00,267.33,149446
    10/22/2015 0:00,274.41,146556
    10/23/2015 0:00,277.46,142066
    10/24/2015 0:00,282.66,140943
    10/25/2015 0:00,283.07,131191

在这里,我正在尝试使用ARIMA,但我不知道如何使用它。在这种情况下,我试图猜测价格值。 如果只是价格,此代码段将起作用,但我不知道如何对其进行修改。

from statsmodels.tsa.arima_model import ARIMA
import pandas as pd

series = pd.read_csv('prices.csv')
X = series.values
train, test = X[0:size], X[size:len(X)]
history = [x for x in train]
predictions = list()
for t in range(len(test)):
    model = ARIMA(history, order=(5,1,0))
    model_fit = model.fit(disp=0)
    output = model_fit.forecast()
    yhat = output[0]
    predictions.append(yhat)
    obs = test[t]
    history.append(obs)
    print('predicted=%f, expected=%f' % (yhat, obs))

1 个答案:

答案 0 :(得分:0)

TL; DR:了解exog的{​​{1}}参数。


据我所知,您从这个非常好的教程中获得了代码:

ARIMA

那么,ARIMA是一种用于分析和预测时间序列的统计方法。因此,起初它只应处理时间序列本身的数据。但是,还有另一个名为ARIMAX的模型,该模型处理的外源数据可以补充通过主要时间序列观察到的数据。

对于https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python/ ,设置参数statsmodelsARIMAX只是ARIMA的特定情况。

您应该尝试解决这一问题,并注意exogPrice之间的任何“隐藏”关联。