繁体   English   中英

将每周数据转换为时间序列 'ts' 对象

[英]Convert weekly data to time series 'ts' object

我有weekly数据:

weekly <- structure(list(date = c("2013-01-07", "2013-01-10", "2013-01-21", 
"2018-01-23", "2018-02-00", "2013-02-11", "2013-02-13", "2013-02-25", 
"2013-03-00", "2013-03-11", "2013-03-13", "2013-03-25", "2018-00-01", 
"2018-00-08", "2018-00-15", "2018-00-22", "2018-00-29", "2018-05-06", 
"2018-05-13"), count = c(1750L, 1993L, 1816L, 1264L, 2042L, 1989L, 
2186L, 2118L, 2081L, 2110L, 2151L, 2069L, 1898L, 1862L, 1952L, 
1891L, 1758L, 1169L, 2009L)), row.names = c(NA, -19L), class = "data.frame")

我想将此数据转换为时间序列ts对象,以便我可以预测数据。

我看到了这个问题,但它没有帮助我。

下面的代码创建带有日期和计数的data.frame

agr <-aggregate(input[1], input[2], FUN =  function(df) count=length(df))
colnames(agr)[2] <- "count"

创建的weekly数据如下:

weekly <- agr %>%
  tq_transmute(select     = count,
               mutate_fun = apply.weekly,
               FUN        = sum)

现在我想将此每周数据转换为时间序列数据,以便我可以应用 ARIMA 模型。

您可以使用lubridate包使用具有分数频率的ts函数将weekly数据帧转换为时间序列对象。 然后您可以使用HoltWinters来预测接下来的时间,例如 3 周。 请看下面的代码:

weekly <- structure(list(date = c("2013-01-07", "2013-01-10", "2013-01-21", 
                                  "2018-01-23", "2018-02-00", "2013-02-11", "2013-02-13", "2013-02-25", 
                                  "2013-03-00", "2013-03-11", "2013-03-13", "2013-03-25", "2018-00-01", 
                                  "2018-00-08", "2018-00-15", "2018-00-22", "2018-00-29", "2018-05-06", 
                                  "2018-05-13"), 
                         count = c(1750L, 1993L, 1816L, 1264L, 2042L, 1989L, 
                                                           2186L, 2118L, 2081L, 2110L, 2151L, 2069L, 1898L, 1862L, 1952L, 
                                                           1891L, 1758L, 1169L, 2009L)), 
                    row.names = c(NA, -19L), 
                    class = "data.frame")

library(lubridate)
weekly_ts <- ts(weekly$count, 
   freq=365.25/7, 
   start= decimal_date(ymd(weekly[1, 1])))

#weekly_ts<- ts(weekly$count, frequency = 52)


m <- HoltWinters(weekly_ts, alpha = TRUE, beta = TRUE, gamma = FALSE)

library(forecast)
p <- predict(m, 3, prediction.interval = TRUE)
plot(m, p)

输出: 图形

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM