我正在尝试将ETS和ARIMA模型都拟合到2017年1月1日至2019年3月31日的每日销售数据中
使用R包“ forecast”,我从数据中创建了一个ts对象。在这里,我使用了频率 7 。不幸的是,这改变了我的日期符号,如下所示,这样每隔第7个周期就会有一个新的“年”开始,而不是保留旧的日期格式。
问题:我该如何应用数据中的每周季节性,并同时使用“年月日”(2017-01-01)格式保留所需的日期结构。
DF <- read_excel("....",
col_names = TRUE,
col_types = c("date", "numeric", "numeric",
"numeric", "numeric","numeric","numeric"))
TS <- ts(DF[,2:6], , start = c(2017, 1), frequency = 7)
TS_ggseasonplot <- lapply(TS,function(x){ggseasonplot(x, polar=TRUE)})
应用ts之前的旧输出。
Date V_1
<date> <dbl>
1 2017-01-01 0
2 2017-01-02 529
3 2017-01-03 556
4 2017-01-04 544
5 2017-01-05 510
6 2017-01-06 319
7 2017-01-07 0
8 2017-01-08 0
9 2017-01-09 1296
10 2017-01-10 388
之后:
Date V_1
2017.000 0
2017.286 556
2017.429 544
2017.571 510
2017.714 319
2017.857 0
2018.000 0
2018.143 1296
答案 0 :(得分:0)
使用ts对象进行预测是一个很大的缺点,也是为什么我们要开发可直接与时间序列数据帧(tsibble对象)一起使用的新软件包的一大动力。
对于预测程序包,您可以使用lubridate程序包的lubridate::date_decimal()
函数将十进制日期转换回日期。
lubridate::date_decimal(2017.3287671233)
#> [1] "2017-05-01 00:00:00 UTC"
由reprex package(v0.2.1)于2019-05-15创建