ARIMA с более чем одним атрибутом python - PullRequest
0 голосов
/ 12 ноября 2018

Здесь у меня есть набор данных с двумя атрибутами. У меня всего 200 дней, и каждый день имеет атрибуты TotalTransactionNumber и Price, такие как:

    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 голосов
/ 12 ноября 2018

TL; DR: понять аргумент exog ARIMA.


Насколько я могу судить, вы получили код из этого очень хорошего урока:

https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python/

Хорошо, ARIMA - это статистический метод для анализа и прогнозирования временных рядов. Таким образом, сначала он должен иметь дело только с данными самого временного ряда. Но есть и другая модель, называемая ARIMAX, которая имеет дело с экзогенными данными, которые могут дополнять то, что можно наблюдать в основных временных рядах.

В случае statsmodels, ARIMAX - это просто особый случай ARIMA, когда установлен параметр exog.

Вы должны попытаться поиграть с этим, позаботившись о любой "скрытой" корреляции между Price и TotalTransactionNumber.

...