解释每周和每年季节性的先知产出

时间:2017-07-12 15:36:13

标签: r time-series fft continuous-fourier fourier-descriptors

我正在阅读使用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,预测)的输出如下:

enter image description here

我是否将此年度季节性部分的情节解释为:

无论您对特定日期的预测是什么,增加或减少某一数量都会占到年度季节性?例如,看起来在4月1日,y预计为-0.5。我该如何使用这个结果?我是否取一年中的平均y并将其减去-0.5来计算季节性?小困惑。

任何帮助都会很棒!

1 个答案:

答案 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没有被转换,则无需采用指数。