我正在尝试从statsmodel包
实现预测功能prediction = results.predict(start=1,end=len(test),exog=test)
输入,测试和输出预测的日期不一致。对于前者,我将于2012年1月4日至2012年7月25日至2013年4月26日至2013年11月13日。部分困难在于我没有完全反复出现的频率 - 我有每日价值,不包括周末和假日。设置指数的适当方法是什么?
x = psql.frame_query(query,con=db)
x = x.set_index('date')
train = x[0:len(x)-50]
test = x[len(x)-50:len(x)]
arima = tsa.ARIMA(train['A'], exog=train, order = (2,1,1))
results = arima.fit()
prediction = results.predict(start=test.index[0],end=test.index[-1],exog=test)
我收到错误
There is no frequency for these dates and date 2013-04-26 00:00:00 is not in dates index. Try giving a date that is in the dates index or use an integer
这是第一组数据
2013-04-26 -0.9492
2013-04-29 2.2011
...
2013-11-12 0.1178
2013-11-13 2.0449
答案 0 :(得分:0)
索引应该是任何类似日期时间的值,包括pandas的时间戳。如果您使用大熊猫的工作日频率,那么这应该有效,尽管假期可能会出现问题,因为它没有标准化。您可以使用他们的自定义假日日历支持,并获得您想要的内容。
正如我在你提到的其他问题中所提到的那样,没有一个完全可重复的例子,我可以说你得到的内容并不多,但是如果给出正确的索引,这应该有用。如果日期没有周期性频率。例如,在没有告诉索引的情况下排除周末和假日,然后就无法预测您想要抽出样本的日期。