你如何在 R 中使用简单的指数平滑?

机器算法验证 r 时间序列 预测
2022-03-18 08:58:45

我是 R 的初学者,你能解释一下如何在 R预测的预测包中使用 ses吗?我想选择初始周期数和平滑常数。

d <- c(3,4,41,10,9,86,56,20,18,36,24,59,82,51,31,29,13,7,26,19,20,103,141,145,24,99,40,51,72,58,94,78,11,15,17,53,44,34,12,15,32,14,15,26,75,110,56,43,19,17,33,26,40,42,18,24,69,18,18,25,86,106,104,35,43,12,4,20,16,8)

我有 70 个句点,我想使用 40 个句点作为初始句点,将 30 个句点用于样本外。

ses(d, h=30, level=c(80,95), fan=FALSE,initial=c("simple"), alpha=.1)

这是正确的吗?

2个回答

这将做到:

ses(d[1:40], h=30, alpha=0.1, initial="simple")

和:

  • h是预测的周期数。
  • alpha是水平平滑参数。
  • initial是选择初始状态值的方法

(见?ses。)

您还可以使用基础 R 中提供的 HoltWinters 函数:

mod1 <- HoltWinters(d[1:40], alpha=0.1, beta=FALSE, gamma=FALSE)

要获得接下来 30 个时期的预测,请使用

predict(mod1, n.ahead=30)