Невозможно предсказать значения для данной входной даты в ARIMA с помощью функцииgnast () - PullRequest
0 голосов
/ 11 февраля 2019

Я использую следующий код для аримы, чтобы предсказать значения вывода для данного значения даты от 2018-10-17 до 2018-10-22.Но я получаю сообщение об ошибке:

ОШИБКА: «аргумент int () должен быть строкой, байтовым объектом или числом, а не« отметкой времени »».

model = ARIMA(df, order=(5,1,0))
model = model.fit(disp=0)
pred = model.get_prediction(start=pd.to_datetime('2018-10-17'),
                            end=pd.to_datetime('2018-10-22'),
                            dynamic=True)

Не predict() принимает datetime объекты?В документации сказано, что это так.

1 Ответ

0 голосов
/ 11 февраля 2019

Если вы используете statsmodels.tsa.statespace.sarimax.SARIMAXResults.get_prediction, обратите внимание, что start и end ожидают int, str или дату / время.Согласно документам, str может быть строкой даты, поэтому вы можете использовать

pred = model.get_prediction(start='2018-10-17', 
                            end='2018-10-22',
                            dynamic=True)

Pandas Timestamps не совпадают с Python datetime.datetime objects.

Если вы хотите использовать дату и время, используйте метод Timestamp.to_pydatetime() для преобразования меток времени Pandas в объекты Python datetime.datetime:

In [181]: pd.to_datetime('2018-10-17')
Out[181]: Timestamp('2018-10-17 00:00:00')

In [180]: pd.to_datetime('2018-10-17').to_pydatetime()
Out[180]: datetime.datetime(2018, 10, 17, 0, 0)

илипросто создайте объект datetime.datetime напрямую:

In [184]: import datetime as DT

In [185]: DT.datetime(2018,10,17)
Out[185]: datetime.datetime(2018, 10, 17, 0, 0)

pred = model.get_prediction(start=DT.datetime(2018, 10, 17), 
                            end=DT.datetime(2018, 10, 22),
                            dynamic=True)
...