我正在学习在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以考虑季节性因素?有点困惑。
任何帮助将是巨大的!
最佳答案
@缺口
先知的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,则无需取指数。
关于r - 解释每周和每年的季节性的先知输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45062100/