【问题标题】:R HoltWinters forecast package - avoiding overfitting dataR HoltWinters 预测包 - 避免过度拟合数据
【发布时间】:2018-01-03 00:17:37
【问题描述】:

我正在使用 R 中的 HoltWinters 预测包根据月度呼叫量数据生成预测。

它在大多数情况下运行良好,但有过度拟合数据的趋势,特别是在有特殊时期的情况下,例如呼叫需求的阶跃变化。

在最近的一个例子中,中间有一个阶跃变化,将 alpha 设置为 0.94,beta 设置为 0,gamma 设置为 0,这会生成一个看起来很奇怪的预测。

Month   Data
1   7082
2   6407
3   5479
4   5480
5   5896
6   6038
7   5686
8   6126
9   6280
10  6893
11  6028
12  5496
13  3569
14  3383
15  3718
16  3351
17  3340
18  3559
19  3722
20  3201
21  3494
22  2810
23  2611
24  2471
25  7756
26  6922
27  7593
28  6716
29  7278
30  7071

这是我一直在使用的 R 脚本

scandata <-read_csv("525-gash.csv");
pages <-scandata[,2];
myts <-ts(pages , start=c(2015, 1), frequency = 12)
myforecast <- HoltWinters (myts, seasonal ="additive", 
          optim.start = c(alpha = 0.2, beta = 0.1, gamma = 0.1));
myholt = predict(myforecast, 12 , prediction.interval = FALSE);
plot(myforecast,myholt);

相比之下,如果我将指数平滑参数设置为标准可接受的值 - alpha 为 0.2,beta 为 0.1,gamma 为 0.1,我会得到一个更好看的预测。

我仍想使用预测的自动拟合部分,但想在 alpha、beta 和 gamma 附近设置一个范围。

我一直在尝试对自动拟合设置限制,以便 alpha 必须介于 0.1 和 0.5 之间,gamma 必须介于 0.1 和 0.3 之间,而 gamma 必须介于 0.1 和 0.3 之间。

https://stat.ethz.ch/R-manual/R-devel/library/stats/html/HoltWinters.html

看起来应该可以通过设置

optim.control = list() 

函数,但我无法找到成功设置 alpha、beta 和 gamma 限制以使其正常工作的方法。

有人知道怎么做吗?

【问题讨论】:

    标签: r optimization forecasting holtwinters


    【解决方案1】:

    对于多参数优化,HoltWinters 使用 L-BFGS-B 算法。通过调整原有的HoltWinters函数,可以为所有参数设置lowerupper限制。

    编辑功能:

    fix(HoltWinters)
    

    将第 66 行更改为:

    关闭窗口并保存更改(这只会影响此会话)。像以前一样运行代码:

    myforecast <- HoltWinters (myts, seasonal ="additive", 
          optim.start = c(alpha = 0.2, beta = 0.1, gamma = 0.1))
    

    【讨论】:

    • 看起来很有希望。我已经尝试过了,但我收到了这个错误消息。硬件错误(p[1L]、p[2L]、p[3L]):找不到对象“C_HoltWinters”
    • 我应该补充说我正在使用 Rstudio
    • 当我试图以不同的名称保存函数时,我遇到了类似的错误。你试过 R Gui 吗?
    • 刚刚找到了RGui程序。它可以工作,但是有没有办法将其作为批处理来执行,而无需每次都运行 fix()?
    • 我只能想到重写函数并以不同的名称保存它。我试图这样做,但发生了一些错误,我现在不知道如何解决它。这就是为什么我只发布了这个一次性解决方案。
    猜你喜欢
    • 2019-12-15
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2020-06-24
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多