r - 使用 dplyr 与 Facebook 先知的时间序列不同的情节
问题描述
我正在使用 Facebook Open Source 的 Prophet,我是使用 dplyr 的新手。我的数据库由一些 id 及其各自的每月时间序列组成。这是一个例子:
df <-tibble::tribble(
~ID, ~ds, ~y,
1L, "2018-09-01", -29884,
1L, "2018-10-01", 16143,
1L, "2018-11-01", 3785,
1L, "2018-12-01", -264,
1L, "2019-01-01", -308,
1L, "2019-02-01", 712,
1L, "2019-03-01", -260,
1L, "2019-04-01", -300,
1L, "2019-05-01", -149,
1L, "2019-06-01", -291,
1L, "2019-07-01", -284,
1L, "2019-08-01", -158,
1L, "2019-09-01", -272,
1L, "2019-10-01", -289,
1L, "2019-11-01", -1268,
2L, "2016-12-01", -489,
2L, "2017-01-01", 7606,
2L, "2017-02-01", -458,
2L, "2017-03-01", 8603,
2L, "2017-04-01", 6298,
2L, "2017-05-01", 2598,
2L, "2017-06-01", 914,
2L, "2017-07-01", 6004,
2L, "2017-08-01", 3684,
2L, "2017-09-01", -1815,
2L, "2017-10-01", 12487,
2L, "2017-11-01", -1288,
2L, "2017-12-01", 3213,
2L, "2018-01-01", 3447,
2L, "2018-02-01", 3986,
2L, "2018-03-01", 808201,
2L, "2018-04-01", 2033,
2L, "2018-05-01", 4401,
2L, "2018-06-01", 3482,
2L, "2018-07-01", 404,
2L, "2018-08-01", 1607,
2L, "2018-09-01", 694,
2L, "2018-10-01", 4026,
2L, "2018-11-01", -176,
2L, "2018-12-01", -41,
2L, "2019-01-01", 815,
2L, "2019-02-01", 1743,
2L, "2019-03-01", -3433,
2L, "2019-04-01", 4167,
2L, "2019-05-01", 3792,
2L, "2019-06-01", -293,
2L, "2019-07-01", -4666,
2L, "2019-08-01", 835,
2L, "2019-09-01", 5434,
2L, "2019-10-01", 4636,
2L, "2019-11-01", 2731
)
df$ds<-as.POSIXct(df$ds, format= '%Y-%m-%d')
现在,我需要的是使用先知并绘制每个 ID 的预测并记录 id、ds、yhat 和 y。
这是我尝试过的,使用 dplyr:
library(prophet)
library(dplyr)
plots = df %>%
group_by(ID) %>%
do(predict(prophet(.,seasonality.mode = 'multiplicative'), make_future_dataframe(prophet(.,seasonality.mode = 'multiplicative'), periods = 18, freq = 'month'))) %>%
do(plot(prophet(.,seasonality.mode = 'multiplicative'), predict(.,seasonality.mode = 'multiplicative', make_future_dataframe(m,periods= 18 ,freq='month')))) %>%
select(ds, ID, yhat, y)
但是当我这样做时,我在 fit.prophet(m, df, ...) 中得到错误 Error : Dataframe must have column 'ds' and 'y' 分别带有日期和值。
有谁知道如何使用先知为每个 ID 绘图?我不知道 plot 如何在 dplyr 上工作,或者如何将它用于多个任务。谢谢!
解决方案
推荐阅读
- java - 如何在应用程序自动创建的线程中设置 MDC 值
- asp.net-mvc - 网页空闲时 Quartz 调度程序停止工作
- mysql - mysql查询,剔除资产小于10的name,但仍然显示所有数据
- python-3.x - 带有限制 [1,2] 和 [2,1] 的两个循环不可接受 python
- html - 您如何从应用程序的类路径运行静态内容以使用(SpringBoot 2.x + weblogic + *.war)?
- react-native - 错误无法启动模拟器。原因:没有找到模拟器作为 `emulator -list-avds` 的输出。在 Mac 中
- regex - 无效的正则表达式没有重复使用正则表达式的电子邮件验证异常
- angular - 带有材料选项卡的 Angular 8 - 重新加载时选择最后一个活动选项卡
- python - Keras:val_loss 正在增加并且评估损失太高
- tensorflow - Deeplab tensorflow 实现:训练自定义数据。如何选择参数?