【问题标题】:Holt Winters forecast in R霍尔特温特斯预测 R
【发布时间】:2020-03-24 13:37:28
【问题描述】:

我想用Holt Winters 做一个,但我犯了一些错误。

从包含大约 10k 个值的数据集中,我只想要那些超出给定范围 15-26 的值。 每周超出我放入数据框“out”范围的所有值。从 2020 年 1 月 2 日这一周开始。

到目前为止一切顺利。

我每周有一个值,并想与 Holt Winters 一起预测接下来几周的增长。但是我的情节看起来非常难以理解。没有预测可看。我做错了什么?

df_B2 = fread("C:/Users/B2.csv")
df_B2$Date = as.Date(df_B2$Date, "%d.%m.%y")
df_B2$Week = strftime(df_B2$Date, format = "%V")

#Limit
limit_a = 15
limit_b = 26`

out = (df_B2 %>% filter(ExtractionTimes < limit_a | ExtractionTimes > limit_b) %>% count(Week))

 str(out)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   4 obs. of  2 variables:
 $ Week: chr  "02" "03" "04" "05"
 $ n   : int  99 106 156 237
 - attr(*, ".internal.selfref")=<externalptr> 

out
# A tibble: 4 x 2
  Week      n
  <chr> <int>
1 02       99
2 03      106
3 04      156
4 05      237

data = ts(out$n,start=c(2020,02), frequency = 52)

hw = HoltWinters(data, alpha=NULL, beta=FALSE, gamma=FALSE)
> p = predict (hw, n.ahead=1, level=0.95)
> plot(hw,p)

感谢您的帮助。

【问题讨论】:

    标签: prediction r prediction forecasting


    【解决方案1】:

    stats::plot.HoltWinters() 函数向您显示数据(黑色)和拟合值和预测(红色)。

    由于您已经在使用 tidyverse 包,您可能会发现在 tidy 框架中使用适合相同模型的 tsibblefable 包更容易。

    library(dplyr, warn.conflicts=FALSE)
    library(tsibble, warn.conflicts=FALSE)
    library(fable, warn.conflicts=FALSE)
    #> Loading required package: fabletools
    
    out <- tibble(
        Week = c("02","03","04","05"),
        n = c(99,106,156,237)
      ) %>%
      mutate(Week = yearweek(paste0("2020 W",Week))) %>%
      as_tsibble(index=Week)
    out 
    #> # A tsibble: 4 x 2 [1W]
    #>       Week     n
    #>     <week> <dbl>
    #> 1 2020 W02    99
    #> 2 2020 W03   106
    #> 3 2020 W04   156
    #> 4 2020 W05   237
    
    out %>%
      model(ses = ETS(n ~ season("N"))) %>%
      forecast(h = "10 weeks") %>%
      autoplot(out)
    

    reprex package (v0.3.0) 于 2020 年 3 月 25 日创建

    该模型等同于您使用HoltWinters() 拟合的模型,尽管ETS() 中的参数估计使用MLE,而不是HoltWinters() 使用的LS 与临时启发式估计的混合。

    有关如何使用这些软件包的教科书,请参阅 OTexts.com/fpp3

    【讨论】:

    • 非常感谢您的帮助!图表看起来不错。我对 2 月份的预测以及未来 95% 的确定性最高约为 300 是否正确? hw = HoltWinters(y, alpha=NULL, beta=TRUE, gamma=FALSE) 如果我执行我的版本 (beta = TRUE),我得到的预测值远远超过 300。我是不是搞错了什么?
    • 您问题中的代码没有趋势,因此与您评论中的图表不匹配。无论如何,我不会相信任何基于四个观察的预测。
    • 非常感谢 Rob 的帮助。如果我在代码中设置 beta=TRUE,那么我就有了预测。但是,我怀疑这个上升太陡了。但正如你所说,只有 4 次观察很难做出准确的预测。我不明白你的图表是如何预测未来几周的。预计最大值会在 300% 到 95% 左右吗?
    • 阴影区域是预测区间。如果要相信预测(不是仅给出 4 次观测),则有 2.5% 的机会超过上限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    相关资源
    最近更新 更多