Python Sarimax数据摄取格式,用于在Dataframe中重复索引

时间:2019-01-30 22:47:21

标签: python pandas statsmodels forecasting arima

我正在尝试在下面的数据上训练Sarimax模型。我的数据是在我已经重复日期索引的格式。 我想在每个ID的第一个和第二个日期进行训练,并在每个ID的第三个日期进行测试。

我的外源变量为idcount。目标变量是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'])

错误 类型错误:INT()参数必须是一个字符串,一个字节状物体或数字,而不是“时间戳”

现在我相信这个错误没有道理,因为当我的火车数据中只有1个id而不是2个时,整个代码都可以正常工作。所以我想如果我的数据格式是正确的,或者在我的情况下,我只需要为每个ID的多个sarimax模式?

0 个答案:

没有答案