различные графики, использующие dplyr с временными рядами пророка Facebook - PullRequest
1 голос
/ 19 марта 2020

Я использую Prophet с открытым исходным кодом Facebook, и я недавно использую dplyr. Моя база данных состоит из некоторого идентификатора с соответствующими месячными временными рядами. Вот пример:

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, 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,. ..): Dataframe должен иметь столбцы 'ds' и 'y' с датами и значениями соответственно.

Кто-нибудь знает, как построить для каждого идентификатора, используя пророка? Я не знаю, как заговор работает на dplyr, или как использовать его с несколькими задачами. Спасибо!

...