我汇总零售周数据,季节性周期为52.2(每五年53周)。我想使用这个汇总数据来计算一个季节性指数,该指数可以应用于该类别中的每个项目,以获得其去季节化的需求。
使用stl,我会将季节性指数计算为"季节性" /"趋势" + 1(标准化为52)。我改为tbats,因为我的季节性不是整数,我有多个季节性时期(52.2和261)
我正在使用具有seasonal.periods = 52.2的tbats并使用tbats.components提取组件。这些组件是"观察","水平" "赛季"。谷歌没有透露这些组件是什么以及如何使用它们。我还提取了残差
我注意到"观察到"是我的数据的日志。我也注意到季节正在变化(这正是我想要的)
我的问题是:
1.Is" season"一个自然的日志呢? 2.如何提取未来"赛季"值?我可以对数据进行预测,因此我假设必须有一个预计的季节" 3.计算"指数"的最佳方法是什么?考虑到它将被分成粒度数据。我目前正在使用:exp("赛季")/居中移动平均线(exp("赛季"))
我的数据:
weeklyu <-structure(list(V1 = c(8L, 5L, 7L, 3L, 1L, 2L, 3L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 8L, 2L,
4L, 8L, 6L, 7L, 8L, 9L, 15L, 15L, 13L, 9L, 16L, 19L, 16L, 16L,
10L, 31L, 45L, 90L, 185L, 34L, 8L, 19L, 11L, 19L, 21L, 8L, 5L,
7L, 6L, 3L, 10L, 2L, 2L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 16L, 22L, 18L, 23L, 11L, 5L, 8L, 21L, 18L, 11L, 26L,
28L, 9L, 3L, 6L, 3L, 6L, 1L, 5L, 3L, 3L, 2L, 1L, 4L, 1L, 1L,
3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 5L,
19L, 11L, 17L, 23L, 50L, 52L, 23L, 18L, 22L, 44L, 37L, 22L, 30L,
32L, 47L, 34L, 30L, 26L, 25L, 44L, 87L, 65L, 30L, 17L, 12L, 2L,
16L, 14L, 17L, 6L, 7L, 3L, 6L, 7L, 8L, 11L, 12L, 4L, 1L, 3L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L)), .Names = "V1", class = "data.frame", row.names = c(NA,
-188L))
我的代码:
wklytbat <- tbats(msts(weeklyu, seasonal.periods = 52.2, ts.frequency=52.2), use.parallel=FALSE)
提取季节:
seasu <-data.table(exp(as.numeric(tbats.components(wklytbat)[,'season'])))