Python Sarimax формат приема данных для повторения индекса в Dataframe - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь обучить модель Sarimax на моих данных ниже.Мои данные в формате, в котором у меня есть повторяющиеся индексы даты.Я хочу тренироваться на первое и второе свидания для каждого идентификатора и тестировать на третьем свидании для каждого идентификатора.

Моя экзогенная переменная id и count.Целевая переменная - y.

. Я подумал, что могу просто нарезать формат индекса даты, чтобы сегментировать его на тренировку и тестирование, но я получаю ошибки в части get_predict.

данные

a = pd.DataFrame({'date':['2017-06-01','2017-06-02','2017-06-03',
                         '2017-06-01','2017-06-02','2017-06-03'],
                 'id'   :[123,123,123,456,456,456],
                 'count':[10,10,10,12,12,12],
                 'y'    :[10,15,17,5,3,7]  })

a.index = pd.to_datetime(a['date'])

Создать модель

mod = sm.tsa.statespace.SARIMAX(a.loc['2017-06-01':'2017-06-02']['y'],
                                exog=data.loc['2017-06-01':'2017-06-02'].loc[:,a.columns!= 'y'],
                                order=(1, 1, 1),
                                seasonal_order=(0, 0, 0, 52),
                                enforce_stationarity=False,
                                enforce_invertibility=False)
results = mod.fit()
print(results.summary())

прогноз

p = results.get_prediction(start=pd.to_datetime('2017-06-03'), 
                           exog = a.loc['2017-06-03'].loc[:,a.columns!='y'])

Ошибка TypeError: аргумент int () должен быть строкой, байтовым объектом или числом, а не 'меткой времени'

Теперь эта ошибка, на мой взгляд, не имеет смыслапотому что, когда у меня только 1 id вместо 2 в моих данных поезда, весь этот код работает отлично.Поэтому мне интересно, правильный ли у меня формат данных или что в моем случае мне просто нужно иметь несколько моделей саримакса для каждого идентификатора?

...