Обратное прогнозирование с использованием пакета prophet

У меня есть данные о розничных продажах с июля 17 по июль 18, и я хотел бы расширить ряд до периода с января 17 по июнь 17, по которому у меня нет данных.

Поскольку это данные розничной торговли, я хочу использовать пакет prophet, поскольку он учитывает праздничные дни и ежемесячные / годовые тенденции. Однако я не могу сделать так, чтобы он предсказывал прошлые данные, так как я не могу позвонить make_future_dataframe, чтобы сообщить мне прошлый период.

Я не могу поделиться данными, поэтому в моем примере y был сгенерирован из rnorm()

data = structure(list(ds = structure(c(17683, 17652, 17622, 17591, 17563, 
17532, 17501, 17471, 17440, 17410, 17379, 17348), class = "Date"), 
y = c(104.668732663406, 98.3902718818212, 109.061616978181, 
109.838504824619, 111.732728009024, 102.108143707743, 99.4680518699638, 
84.228075141372, 110.844516862675, 92.5728013090567, 80.8504745693786, 
108.721168531315)), .Names = c("ds", "y"), row.names = c(NA, 
-12L), class = "data.frame")

m <- prophet(data,seasonality.mode = "multiplicative",yearly.seasonality = T)
future <- make_future_dataframe(m, periods = 6, freq = "1 month")
forecast <- predict(m, future)  %>% data.table() 

Есть ли способ заставить prophet давать мне прошлые прогнозы без необходимости указывать фальшивые даты?

Спасибо


person Fino    schedule 24.07.2018    source источник


Ответы (1)


Если кто-то позже наткнется на это, решение состоит в том, чтобы создать будущий фрейм данных вручную:

future = data.frame(
  "ds" = as.Date(c(
  "01/01/2017", #No Data
  "02/01/2017", #No Data
  "03/01/2017", #No Data
  "04/01/2017", #No Data
  "05/01/2017", #No Data
  "06/01/2017", #No Data
  "07/01/2017", #Data
  "08/01/2017", #Data
  "09/01/2017", #Data
  "10/01/2017", #Data
  "11/01/2017", #Data    
  "12/01/2017", #Data
  "01/01/2018", #Data
  "02/01/2018", #Data
  "03/01/2018", #Data
  "04/01/2018", #Data
  "05/01/2018", #Data
  "06/01/2018"),
  format = "%m/%d/%Y"
  )
)

predict() вернет прогноз на все периоды, даже если вы предоставите данные только на «будущее».

person Fino    schedule 30.07.2018