如何将季节性指数平滑预测方法应用于 R 中的每小时数据

How can I apply Seasonal Exponential Smoothing forecasting method to hourly data in R

我正在尝试使用指数平滑法预测 2016 年次日的每小时电价。我使用的数据集包含 2014-01-01 00:00 到 2016-12-31 23:00 期间的每小时价格数据。我的目标是在 Beigaitė & Krilavičius (2018)

中重现结果

由于电价数据具有多重季节性(每日、每周和每年),我定义了一个 msts 对象,时间段为 2014-01-01 至 2015-12-31

msts.elspot.prices.2014_2015 <- msts(df.elspot.prices.2014_2015$Price, seasonal.periods = c(24, 168, 8760), ts.frequency = 8760, start = 2014)

我想使用此 msts 对象使用 forecast 包中的 hw() 函数预测第二天 (2016-01-01) 的每小时电价,并将点预测存储在包含 2016 年实际每小时电价的数据框。

df.elspot.prices.2016$pred.hw <- hw(msts.elspot.prices.2014_2015, h = 24)$mean

但是,我无法使用 hw() 函数,因为我收到以下错误消息:

Error in ets(x, "AAA", alpha = alpha, beta = beta, gamma = gamma, phi = phi,  : `
Frequency too high

网上查了一下,好像ets()函数只能接受参数frequency为max24。当我处理每小时数据时,这远远低于我的数据频率。

有没有一种方法可以使用 hw() 函数实现我想要的结果?还有其他 packages/functions 可以帮助我达到我想要的结果吗?

感谢您的帮助!

仔细查看后,我发现 this question 用户想使用 hw 方法使用可用的 taylor 数据集预测半小时电力需求在 forecast 包中。

正如 Rob Hyndman 教授在对链接问题的回答中所建议的那样,forecast 包中的双季节 Holt Winters 模型方法 dshw 可用于处理半小时数据。

在我的 msts 对象的定义中删除年度季节性参数 (seasonal.periods = 8760) 后,我已经 运行 模型并且它提供了一个非常准确的结果。