我之前使用 Prophet 来预测单个指标,但现在我需要预测到 2022 年,使用大约 3 年的历史数据并包括多个组。我宁愿不要为每种可能性创建 1000 多个预测,所以希望我可以在 Prophet 中做到这一点。
我已经阅读了 Stackoverflow 上的几个适用于单个组的解决方案,但我有 3 个不同的组要预测。
下面我创建了一个示例表,其中虚拟 Y 数据显示了数据的格式:(注意:可以并且将会是零值,但如果它会对输出产生负面影响,我可以排除它们)
ds | 成立 | 类别 | 渠道 | 是的 |
---|---|---|---|---|
2020-01-01 | 中学 | 静止的 | 直接的 | 27 |
2020-01-01 | 中学 | 静止的 | 付费搜索 | 31 |
2020-01-01 | 中学 | 艺术 | 直接的 | 47 |
2020-01-01 | 中学 | 艺术 | 付费搜索 | 0 |
2020-01-01 | 大学 | 静止的 | 直接的 | 60 |
2020-01-01 | 大学 | 静止的 | 付费搜索 | 35 |
2020-01-01 | 大学 | 艺术 | 直接的 | 54 |
2020-01-01 | 大学 | 艺术 | 付费搜索 | 15 |
2020-01-02 | 中学 | 静止的 | 直接的 | 27 |
2020-01-02 | 中学 | 静止的 | 付费搜索 | 31 |
2020-01-02 | 中学 | 艺术 | 直接的 | 47 |
2020-01-02 | 中学 | 艺术 | 付费搜索 | 0 |
2020-01-02 | 大学 | 静止的 | 直接的 | 60 |
2020-01-02 | 大学 | 静止的 | 付费搜索 | 35 |
2020-01-02 | 大学 | 艺术 | 直接的 | 54 |
2020-01-02 | 大学 | 艺术 | 付费搜索 | 15 |
2020-01-03 | 中学 | 静止的 | 直接的 | 27 |
2020-01-03 | 中学 | 静止的 | 付费搜索 | 31 |
2020-01-03 | 中学 | 艺术 | 直接的 | 47 |
2020-01-03 | 中学 | 艺术 | 付费搜索 | 0 |
2020-01-03 | 大学 | 静止的 | 直接的 | 60 |
2020-01-03 | 大学 | 静止的 | 付费搜索 | 35 |
2020-01-03 | 大学 | 艺术 | 直接的 | 54 |
2020-01-03 | 大学 | 艺术 | 付费搜索 | 15 |
... | ... | ... | ... | ... |
以下代码适用于单个组,但我想将其扩展为包括所有组。
d1 <- df %>%
nest(-establishment) %>%
mutate(m = map(data, prophet)) %>%
mutate(future = map(m, make_future_dataframe, period = 730)) %>%
mutate(forecast = map2(m, future, predict))
d <- d1 %>%
unnest(forecast) %>%
select(ds, establishmentShortcut, yhat)
如果有人可以推荐解决方案,我将不胜感激。