У меня есть такие данные:
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 строки / дела, поскольку продажи носят дневной характер и относятся к разным товарам в разных магазинах. Было бы также интересно анализировать данные ежедневно, но R не может обработать этот объем данных.
Я хочу разложить временные ряды, чтобы проанализировать тренд, сезонность и случайные компоненты. Всего временной ряд насчитывает 33 месяца (начало: 01.01.2013, конец - 01.10.2015).
Это мой подход.
library(forecast)
ts(dat, frequency = 12) %>%
decompose() %>%
autoplot()
![enter image description here](https://i.stack.imgur.com/YGZxb.png)
Однако, кажется, это неправильно, сравните первый из четырех графиков выше и этот:
plot(dat, type = "l")
![enter image description here](https://i.stack.imgur.com/l6bvn.png)
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))