11.10 Prophet

Prophet é um modelo aditivo proposto por (S. J. Taylor and Letham 2018, 7) em que as tendências não lineares são ajustadas à sazonalidade anual, semanal e diária, além dos efeitos de feriados. Os autores utilizam um modelo de série temporal decomponível (Harvey and Peters 1990, 90) de três componentes:

  • \(g(t)\): função de tendência que modela mudanças não periódicas no valor da série temporal
  • \(s(t)\): mudanças periódicas (por exemplo, sazonalidade semanal e anual)
  • \(h(t)\): efeitos de feriados que ocorrem em horários potencialmente irregulares ao longo de um ou mais dias

Estas componentes são combinadas conforme equação a seguir.

\[\begin{equation} y(t) = g(t) + s(t) + h(t) + a_t \tag{11.34} \end{equation}\]

Os autores apontam tabém que esta formulação fornece uma série de vantagens práticas em relação à modelagem ARIMA, tais como:

  • Ajuste rápido;
  • O modelo de previsão tem parâmetros facilmente interpretáveis;
  • Flexibilidade para acomodar a sazonalidade com vários períodos;
  • As medições não precisam ser regularmente espaçadas e não é necessário interpolar valores faltantes.

(S. J. Taylor and Letham 2023) apresentam o pacote prophet21, no qual implementam o modelo que “funciona melhor com séries temporais com fortes efeitos sazonais e várias temporadas de dados históricos”. Os autores ainda comentam que “[o] Prophet é robusto para dados faltantes e mudanças na tendência, e usualmente lida bem com outliers”.

Exemplo 11.47 Exemplo baseado na documentação de prophet::prophet().

library(prophet)
set.seed(42)
history <- data.frame(ds = seq(as.Date('2023-01-01'), 
                               as.Date('2024-01-01'), by = 'd'),
                      y = sin(1:366/200) + rnorm(366)/10)
plot(history, type = 'l', main = 'Dados diários simulados')

m <- prophet::prophet(history)
future <- prophet::make_future_dataframe(m, periods = 30)
forecast <- predict(m, future)
plot(m, forecast)

prophet::prophet_plot_components(m, forecast)

References

Harvey, Andrew C, and Simon Peters. 1990. “Estimation Procedures for Structural Time Series Models.” Journal of Forecasting 9 (2): 89–108. http://www.stat.yale.edu/~lc436/papers/Harvey_Peters1990.pdf.
Taylor, Sean J., and Ben Letham. 2023. Prophet: Automatic Forecasting Procedure. https://github.com/facebook/prophet.
Taylor, Sean J., and Benjamin Letham. 2018. “Forecasting at Scale.” The American Statistician 72 (1): 37–45. https://peerj.com/preprints/3190/.

  1. Conforme informação do repositório GitHub do prophet, “[a] versão CRAN do prophet está bem desatualizada. Para obter as últimas correções de bugs e dados atualizados de feriados do país, sugerimos instalar a versão mais recente”.↩︎