我正在阅读使用R中的prophet
的教程。
您可以在此处找到数据集: https://github.com/facebookincubator/prophet/blob/master/examples/example_wp_peyton_manning.csv
# R
library(prophet)
library(dplyr)
df <- read.csv('peyton.csv') %>%
mutate(y = log(y))
head(df)
ds y
1 2007-12-10 9.590761
2 2007-12-11 8.519590
3 2007-12-12 8.183677
4 2007-12-13 8.072467
5 2007-12-14 7.893572
6 2007-12-15 7.783641
df$ds<-as.Date(df$ds,'%m/%d/%Y')
m <- prophet(df)
future <- make_future_dataframe(m, periods = 365)
forecast <- predict(m, future)
plot(m, forecast)
prophet_plot_components(m, forecast)
prophet_plot_components(m,预测)的输出如下:
我是否将此年度季节性部分的情节解释为:
无论您对特定日期的预测是什么,增加或减少某一数量都会占到年度季节性?例如,看起来在4月1日,y预计为-0.5。我该如何使用这个结果?我是否取一年中的平均y并将其减去-0.5来计算季节性?小困惑。
任何帮助都会很棒!
答案 0 :(得分:0)
@Nick Prophet predict()函数具有以下语法:
temp_dataframe_to_store_prediction <- predict(model_name, new_dataframe_created)
在你的情况下:
forecast <- predict(m, future)
来自predict()函数的预测或预测包括每行的趋势和季节性,即每个time_stamp。因此,您无需在最终预测值中包含任何单独的代码行来包含或排除季节性。 您的解释是正确的,即通过将季节性的值(+/-)和趋势加到静止的“y”值来获得最终预测值。请注意,代码中先知使用的“y”值是log(original_y)
mutate(y = log(y))
此行使original_y值保持不变。因此,为了解释最终结果,您需要采用指数预测的“y”值。这使预测达到原始规模。如果original_y没有被转换,则无需采用指数。