我正在使用statsmodels.tsa.statespace.sarimax进行预测。 这是我的代码
pprint(list(rolmean_df.index)[0])
>> datetime.date(2015, 5, 19)
mod = sm.tsa.statespace.SARIMAX(rolmean_df['IC_10_diff'], trend='n', order=(2,1,2))
results = mod.fit()
s = results.get_prediction(start = pd.to_datetime('2016-01-01').date(), dynamic= False)
>> ValueError: Start must be in dates. Got 2016-01-01 | 2016-01-01 00:00:00
我不确定我的"开始"格式错误或其他不起作用。
答案 0 :(得分:10)
来自doc: http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAXResults.html
所以,“开始必须在日期”意味着开始应该在您的数据集中。
如果要将模型用于forecase,请使用get_forecast()。
答案 1 :(得分:1)
我几天前和你有同样的问题,现在我有一个合理的解释。
我认为此功能的开始日期和结束日期取决于您的数据集。
例如,我第一次希望开始日期等于2017-10-01',但此日期不包含在我的数据中。然后' 2017-12-01'是开始日期的值,可以编译文件,因为此日期在我的数据集中。
答案 2 :(得分:1)
我有类似的问题。您必须确保开始日期包含在rolmean_df['IC_10_diff']
中。
只需打印`rolmean_df ['IC_10_diff']'中的所有值,然后选择最接近2016-01-01的值。