解读Prophet输出结果中的周季节和年度季节性

3

我正在学习如何在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, forecast)的输出如下:

enter image description here

我该如何解释年度季节性部分的这个图表:

对于特定日期的预测,需要增加或减少一定数量来考虑年度季节性。例如,看起来在4月1日,y的预期值为-0.5。我该如何使用这个结果?是否应该取一年中y的平均值并将其减去-0.5以考虑季节性?有点困惑。

希望能够得到帮助!

1个回答

0

@Nick Prophet的predict()函数具有以下语法:

temp_dataframe_to_store_prediction <- predict(model_name, new_dataframe_created)

在你的情况下:

forecast <- predict(m, future)
predict() 函数中的预测结果包括每个时间戳的趋势和季节性。因此,在最终的预测值中,您无需包含任何额外的代码行来包含或排除季节性。 您的解释是正确的,即最终的预测值是通过将季节性和趋势的值添加(+/-)到平稳的“y”值中获得的。请注意,在您的代码中,prophet 使用的“y”值是 log(original_y)。
 mutate(y = log(y))

这行代码使原始的y值保持不变。因此,为了解释最终结果,您需要对预测的“y”值取指数。这将把预测带回到原始比例。如果没有转换原始的y值,则无需取指数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接