Я использую Prophet для многоканального прогноза потенциальных клиентов. Мне удалось сделать прогноз, используя метод, описанный @RLave в этом сообщении Прогнозирование пророка с использованием R для нескольких элементов. Хочу добавить в свой прогноз регрессоры. Ниже приведен пример @RLave вместе с примером того, как я пытался добавить регрессор, и результаты. Как заставить add_regressor работать со списком потенциальных клиентов?
# also contains the purrr package
library(tidyverse)
set.seed(123)
tb1 <- tibble(
ds = seq(as.Date("2018-01-01"), as.Date("2018-12-31"), by = "day"),
y = sample(365)
regressor = rnorm(365, mean = 0, sd = 1)
)
tb2 <- tibble(
ds = seq(as.Date("2018-01-01"), as.Date("2018-12-31"), by = "day"),
y = sample(365)
regressor = rnorm(365, mean = 0, sd = 1)
)
# two separate time series
ts_list <- list(tb1, tb2)
Построение и прогноз:
library(prophet)
# prophet call
m_list <- map(ts_list, prophet)
# makes future obs
future_list <- map(m_list, make_future_dataframe, periods = 40)
# map2 because we have two inputs
forecast_list <- map2(m_list, future_list, predict)
Попытка добавить регрессор
m <- prophet()
m <- add_regressor(m, "regressor")
# prophet call
m_list2 <- map2(m, ts_list, fit.prophet )
Ошибка: сопоставленные векторы должны иметь одинаковую длину:
.x
имеет длину 31.y
имеет длину 14