r - 霍尔特温特斯预测 R
问题描述
我想用 进行预测,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)
感谢你的帮助。
解决方案
该stats::plot.HoltWinters()
函数向您显示数据(黑色)和拟合值和预测(红色)。
由于您已经在使用 tidyverse 包,您可能会发现在 tidy 框架中使用适合相同模型的tsibble
和包更容易。fable
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 包(v0.3.0)于 2020-03-25 创建
该模型等效于您正在拟合的模型HoltWinters()
,尽管 中的参数估计ETS()
使用 MLE 而不是 LS 与使用的即席启发式估计的混合HoltWinters()
。
有关如何使用这些包的教科书,请参阅OTexts.com/fpp3 。
推荐阅读
- r - Bookdown (gitbook) 产生空的 HTML
- python-3.x - 使用 Django 3 将变量从我的数据库传递到我的网站时遇到问题
- java - 为不同的注解进行 Spring Boot 扫描
- oracle - 创建 DBLINK Oracle 到 SQL Server 时出错
- android - WorkManager 将工作设置为未来 10 年
- laravel - Laravel 8:默认路由在哪里?
- docker - Sonatype Nexus OSS 3 内容选择器查询特定存储库
- angular - Styles.scss 未正确应用 Angular 8
- c# - 将行插入表时通知窗口服务
- java - 如何在测试中测试具有长 redeliveryDelays 的 Camel onExceptions 块