如何将季节性指数平滑预测方法应用于 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
) 后,我已经 运行 模型并且它提供了一个非常准确的结果。
我正在尝试使用指数平滑法预测 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
) 后,我已经 运行 模型并且它提供了一个非常准确的结果。