我正在上Udemy的课程,以学习一些时间序列预测,并且我试图用一年的每小时数据来运行这段代码:
from statsmodels.tsa.holtwinters import ExponentialSmoothing
model = ExponentialSmoothing(train['count'],trend='add',seasonal='add',seasonal_periods=12).fit()
但是一旦我运行了这个
predictions = model.forecast(24)
我收到此错误:
ValueWarning:没有支持的索引可用。预测结果将以从
start
开始的整数索引给出。 ValueWarning)
这使我很难绘制数据进行比较,因为索引类型在测试数据和预测之间不匹配。
这是我创建索引的方式:
idx = pd.date_range(ts_data.index.min(), ts_data.index.max(), freq='H')
ts_data = ts_data.reindex(idx, fill_value=0)
ts_data.sort_index(inplace=True)
ts_data.head(10)
count
date
2018-11-19 02:00:00 70.0
2018-11-19 03:00:00 84.0
2018-11-19 04:00:00 98.0
2018-11-19 05:00:00 89.0
2018-11-19 06:00:00 87.0
2018-11-19 07:00:00 76.0
2018-11-19 08:00:00 58.0
2018-11-19 09:00:00 36.0
2018-11-19 10:00:00 38.0
2018-11-19 11:00:00 17.0
我想知道为什么预测方法没有返回正确的索引。
答案 0 :(得分:0)
您正在创建一个名为 ts_data 的数据框的正确索引,但您正在将模型拟合到另一个名为 train 的数据框。
尝试查看 train 数据框的索引,并查看其格式是否正确。