提问者:小点点

指数平滑-预测每日数据


我有一个文件,价值5年的每日数据从2015年到2019 (31/12/2019)我需要预测2021年的每日价值;我使用statsmodels.tsa.holtwinters.指数平滑,直到现在我还能预测2019年和2020年。有可能预测2021年而不预测2020年吗?

这是我在代码方面所拥有的:

fit1 = ExponentialSmoothing(train[colval],seasonal_periods=730,trend=trend, seasonal=seasonal,).fit()
prediction_result = fit1.forecast(365)

有了上面的代码,预测也正好在训练数据集之后开始,正常吗?

这就是我如何分割数据的方式:2015-2018年列车和2019年测试


共1个答案

匿名用户

您可以使用预测函数来预测任何日期,如果您将基于datetimeindex的系列喂给ExpenentialSmoothing,同时训练频率设置。航空乘客数据的频率设置为每月开始。航空乘客中包含的数据1949 - 1960。

详情请参阅以下范例:

import pandas as pd 
df = pd.read_csv('AirPassengers.csv')
df['Month'] = pd.to_datetime(df['Month'])
df = df.set_index('Month')
from statsmodels.tsa.api import ExponentialSmoothing
es = ExponentialSmoothing(df).fit()
es.predict('2021-05-01', '2021-08-01')

您将获得以下输出: