我有从7月17日到18年7月的零售数据,并且希望将该系列扩展到从1月17日到17年6月的期间,但我没有任何数据。
由于这是零售数据,因此我想使用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
给出过去的预测而不必填写假日期?
谢谢
答案 0 :(得分:0)
如果以后有人偶然发现,解决方案是手动创建将来的数据框:
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()
将返回所有期间的预测,即使您仅提供“未来”的数据也是如此。