分析没有日期的时间序列
Analyze time series without dates
我有这样的数据:
dat
# A tibble: 34 x 2
date_block_num sales
<int> <dbl>
1 0 131479
2 1 128090
3 2 147142
4 3 107190
5 4 106970
6 5 125381
7 6 116966
8 7 125291
9 8 133332
10 9 127541
# ... with 24 more rows
date_block_num
是每年的月份。 sales
是产品的销售额。例如,在原始数据中,date_block_num
0 有 63,224 rows/cases,因为销售额是按天计算的,它们指的是不同商店的不同商品。每天分析数据也很有趣,但 R 无法处理如此多的数据。
我想分解时间序列以分析趋势、季节性和随机成分。总的来说,时间序列有 33 个月(开始:2013 年 1 月 1 日,结束,2015 年 10 月 1 日)。
这是我的方法。
library(forecast)
ts(dat, frequency = 12) %>%
decompose() %>%
autoplot()
但是,比较上面四个图中的第一个和这个似乎不正确:
plot(dat, type = "l")
structure(list(date_block_num = 0:33, sales = c(131479, 128090,
147142, 107190, 106970, 125381, 116966, 125291, 133332, 127541,
130009, 183342, 116899, 109687, 115297, 96556, 97790, 97429,
91280, 102721, 99208, 107422, 117845, 168755, 110971, 84198,
82014, 77827, 72295, 64114, 63187, 66079, 72843, 71056)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -34L))
问题是由于传递了 dat
的两列而不仅仅是 sales
的一列:
ts(dat$sales, frequency = 12) %>%
decompose() %>%
autoplot()
问题是ts(dat)
创建了一个二维时间序列:
ts(dat, frequency = 12)
date_block_num sales
Jan 1 0 131479
Feb 1 1 128090
然后只有第一列 (date_block_num
) 被分解。
试试这个
ts(dat$sales, frequency = 12) %>%
decompose() %>%
autoplot()
我有这样的数据:
dat
# A tibble: 34 x 2
date_block_num sales
<int> <dbl>
1 0 131479
2 1 128090
3 2 147142
4 3 107190
5 4 106970
6 5 125381
7 6 116966
8 7 125291
9 8 133332
10 9 127541
# ... with 24 more rows
date_block_num
是每年的月份。 sales
是产品的销售额。例如,在原始数据中,date_block_num
0 有 63,224 rows/cases,因为销售额是按天计算的,它们指的是不同商店的不同商品。每天分析数据也很有趣,但 R 无法处理如此多的数据。
我想分解时间序列以分析趋势、季节性和随机成分。总的来说,时间序列有 33 个月(开始:2013 年 1 月 1 日,结束,2015 年 10 月 1 日)。
这是我的方法。
library(forecast)
ts(dat, frequency = 12) %>%
decompose() %>%
autoplot()
但是,比较上面四个图中的第一个和这个似乎不正确:
plot(dat, type = "l")
structure(list(date_block_num = 0:33, sales = c(131479, 128090,
147142, 107190, 106970, 125381, 116966, 125291, 133332, 127541,
130009, 183342, 116899, 109687, 115297, 96556, 97790, 97429,
91280, 102721, 99208, 107422, 117845, 168755, 110971, 84198,
82014, 77827, 72295, 64114, 63187, 66079, 72843, 71056)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -34L))
问题是由于传递了 dat
的两列而不仅仅是 sales
的一列:
ts(dat$sales, frequency = 12) %>%
decompose() %>%
autoplot()
问题是ts(dat)
创建了一个二维时间序列:
ts(dat, frequency = 12)
date_block_num sales
Jan 1 0 131479
Feb 1 1 128090
然后只有第一列 (date_block_num
) 被分解。
试试这个
ts(dat$sales, frequency = 12) %>%
decompose() %>%
autoplot()