gpt4 book ai didi

R HoltWinters 预测包 - 避免过度拟合数据

转载 作者:行者123 更新时间:2023-12-03 16:01:51 25 4
gpt4 key购买 nike

我在 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 的限制以使其正常工作。

有谁知道如何做到这一点?

最佳答案

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

编辑功能:

fix(HoltWinters)

通过将第 66 行更改为:

enter image description here



enter image description here

关闭窗口并保存更改(这只会影响此 session )。像之前一样运行代码:
myforecast <- HoltWinters (myts, seasonal ="additive", 
optim.start = c(alpha = 0.2, beta = 0.1, gamma = 0.1))

关于R HoltWinters 预测包 - 避免过度拟合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45347892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com