У меня проблема с временными рядами, которая немного изменена.У меня есть 2 проиндексированные переменные, дата и идентификатор пользователя.для каждого идентификатора пользователя, даты я хочу прогнозировать значение.
Интересная часть - это дата, сбрасываемая для каждого нового идентификатора пользователя.
Стандартные задачи временного ряда имеют для этого периода времени прогноз на следующие n дней.
В моих данных поезда, у меня есть для каждого идентификатора пользователя, для 1-3 января, у меня есть их целевое значение.
В моих данных теста, для каждого идентификатора пользователя, дата теста - jan4-6.
Как для данных поезда, так и для испытаний, индексом данных является дата.
Мои данные
id,date,week_day,target
1,2019-01-01,1,10
1,2019-01-02,2,6
1,2019-01-03,3,7
2,2019-01-01,1,8
2,2019-01-02,1,5
2,2019-01-03,1,4
Как видно, для нового идентификатора дата сбрасывается.Поэтому я не могу создать набор данных поезда, в котором я говорю, что первые N строк - это данные о поездах, а следующие N строк - это данные испытаний.
Я сохранил дату и цель только в данных поезда с указателем даты.
мой тестовый набор данных
id,date,week_day,target
1,2019-01-4,1,15
1,2019-01-5,2,13
1,2019-01-6,3,8
2,2019-01-4,1,7
2,2019-01-5,1,7
2,2019-01-6,1,4
Как и набор данных поезда, дата сбрасывается для каждого нового идентификатора пользователя.
я сохранил только дату и user_id с датой в качестве индекса для теста.
Мой код
(Так вот, что я пробовал, но я не уверен, правильно ли я делаю)
stepwise_model = auto_arima(df[['target']],exogenous=df[['id']],
start_p=1, start_q=1,
max_p=3, max_q=3, m=12,
start_P=0, seasonal=True,
d=1, D=0, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
предсказано = stepwise_model.predict (n_periods = len (test), exogenous = test)
Итак, это работает, но я подумал, что n_periods должно быть на сколько дней в будущем мы хотим прогнозировать? (в моем случае это должно быть 3) Но я использовал n_periods = длину тестовых данных, потому что это дало мне ошибку, что длина периодов не совпадает с длиной тестовых данных.
Я правильно делаю?