12.12 Suavização exponencial

Forecasts produced using exponential smoothing methods are weighted averages of past observations, with the weights decaying exponentially as the observations get older. In other words, the more recent the observation the higher the associated weight. (Rob J. Hyndman and Athanasopoulos 2021)

12.12.1 Simples (primeira ordem)

The demand during a period \(n\) periods ago is weighted by \((1-\alpha)^n\), hence the designation “exponential smoothing”. (R. G. Brown 1956, 3)

The calculation of the average depended only on the new information each month and on one past value of the average. We can call that a “first-order” system of smoothing. (R. G. Brown 1959, 65)

(R. G. Brown 1956, 2) decompõe a série temporal em

  • Tendência: a variação é monotônica ao longo do intervalo de interesse, talvez por causa de um ciclo de baixa frequência.
  • Ciclos: o padrão de variação é reproduzido, de alguma forma previsível, repetidamente.
  • Ruído: variação aleatória, incluindo qualquer variação que não seja prevista, exceto em termos de uma função de distribuição estatística.

O artigo apresenta o desenvolvimento de “um procedimento para estimar rotineiramente a média, a tendência e a variação do ruído”. O autor informa que padrões cíclicos, como para demanda sazonal, não são discutidos.

A função forecast::ses() retorna previsões via suavização exponencial e outras informações. A função forecast::accuracy() retorna as seguintes medidas de acurácia:

  • ME: Mean Error
  • RMSE: Root Mean Squared Error
  • MAE: Mean Absolute Error
  • MPE: Mean Percentage Error
  • MAPE: Mean Absolute Percentage Error
  • MASE: Mean Absolute Scaled Error
  • ACF1: Autocorrelation of errors at lag 1

Exemplo 12.17 Adaptado do exemplo oil production de (Rob J. Hyndman and Athanasopoulos 2018).

# Previsão de 10 períodos via suavização exponencial de primeira ordem
fc_ses <- forecast::ses(fpp2::oil)
plot(fc_ses)

# Medidas de acurácia para o modelo de previsão
round(forecast::accuracy(fc_ses), 2)
##                ME  RMSE   MAE  MPE  MAPE MASE ACF1
## Training set 8.81 48.04 35.52 2.14 10.74 0.98 0.16

Exercício 12.26 Veja

  1. (R. G. Brown 1956)
  2. https://otexts.com/fpp3/ses.html
  3. https://otexts.com/fpp3/accuracy.html
  4. Implemente e valide as estimativas de forecast::ses().
  5. Implemente e valide as medidas de forecast::accuracy().
  6. https://www.quora.com/What-makes-exponential-smoothing-exponential

12.12.2 Com tendência (segunda ordem)

The calculation of the trend used two values of the average and is therefore a kind of second-order system of smoothing, and we note that this second-order system, combining the average and the trend, can track a steadily rising demand. (R. G. Brown 1959, 65)

(Holt 1957, 5) sugere métodos para “suavizar as flutuações aleatórias atuais e revisar continuamente os ajustes sazonais e de tendência”, de maneira que tais flutuações aleatórias passam então “ser extrapoladas para o futuro para fins de previsões”.

Exemplo 12.18 Exemplo baseado na documentação de forecast::holt().

# Previsão de 10 períodos via suavização exponencial de segunda ordem
fc_holt <- forecast::holt(fpp2::oil)
plot(fc_holt)

# Medidas de acurácia para o modelo de previsão
round(forecast::accuracy(fc_holt), 2)
##                 ME  RMSE   MAE  MPE  MAPE MASE ACF1
## Training set -1.11 48.59 35.45 0.07 11.54 0.98 0.16

Exercício 12.27 Veja

  1. (Holt 1957)
  2. https://otexts.com/fpp3/holt.html
  3. Implemente e valide as estimativas de forecast::holt().
  4. Valide as medidas de forecast::accuracy().

12.12.3 Com tendência e sazonalidade (terceira ordem)

Método de Holt-Winters, baseado em (Holt 1957) e (Winters 1960).

Exemplo 12.19 Exemplo baseado na documentação de forecast::hw().

# Previsão de 48 períodos via suavização exponencial de terceira ordem
fc_hw <- forecast::hw(USAccDeaths, h = 48)
plot(fc_hw)

# Medidas de acurácia para o modelo de previsão
round(forecast::accuracy(fc_hw, 2))
##                 ME RMSE  MAE     MPE   MAPE MASE ACF1
## Training set    16  266  212       0      2    0    0
## Test set     -8033 8033 8033 -401642 401642   12   NA

(J. W. Taylor 2003) estende a versão linear do método Holt-Winters para incorporar uma segundo componente sazonal.

Exercício 12.28 Veja

  1. (Winters 1960)
  2. https://otexts.com/fpp3/holt-winters.html
  3. Implemente e valide as estimativas de forecast::hw().
  4. Valide as medidas de forecast::accuracy().
  5. Compare forecast::hw() e stats::HoltWinters().
  6. https://otexts.com/fpp3/taxonomy.html

12.12.4 Via espaço de estados (ETS)

Each model consists of a measurement equation that describes the observed data, and some state equations that describe how the unobserved components or states (level, trend, seasonal) change over time. Hence, these are referred to as state space models. (Rob J. Hyndman and Athanasopoulos 2021)

We label each state space model as \(\text{ETS(Error, Trend, Seasonal)}\). This label can also be thought of as ExponenTial Smoothing. (…) [T]he possibilities for each component (or state) are: \(\text{Error}=\{A,M\}\), \(\text{Trend}=\{N,A,A_d\}\) and \(\text{Seasonal}=\{N,A,M\}\). (Rob J. Hyndman and Athanasopoulos 2021)

O argumento model da função forecast::ets() usa uma sequência de três caracteres que identifica o método conforme a terminologia de estrutura de (Rob J. Hyndman et al. 2002) e (R. Hyndman et al. 2008).

  • Primeira letra: tipo de erro (A,M)
  • Segunda letra: tipo de tendência (N,A,M)
  • Terceira letra: o tipo de período (N,A,M)

Em todos os casos

  • N: nenhum
  • A: aditivo
  • M: multiplicativo
  • Z: selecionado automaticamente

Exemplos.

  • “ANN”: suavização exponencial simples com erros aditivos
  • “MNN”: suavização exponencial simples com erros multiplicativos
  • “AAN”: método linear de Holt com erros aditivos
  • “MAN”: método linear de Holt com erros multiplicativos
  • “ANA”: método aditivo de Holt-Winters com erros aditivos sem sazonalidade
  • “MAA”: método multiplicativo de Holt-Winters com erros aditivos
  • “MAM”: método multiplicativo de Holt-Winters com erros multiplicativos

Exemplo 12.20 Exemplo baseado na documentação de forecast::ets().

# Previsão de 48 períodos via suavização exponencial simples com erros aditivos
fc_ets <- forecast::ets(USAccDeaths)
plot(predict(fc_ets, h = 48))

12.12.5 BATS

A key feature of the framework is that it relies on a new method that greatly reduces the computational burden in the maximum likelihood estimation. (De Livera, Hyndman, and Snyder 2011, 2)

A função forecast::bats() ajusta um modelo BATS (Box-Cox transform, ARMA errors, Trend, and Seasonal) conforme descrito em (De Livera, Hyndman, and Snyder 2011). Segundo os autores, para evitar os problemas com modelos não lineares de espaço de estados com suavização exponencial, restringe-se a atenção a modelos homocedásticos lineares. Alguns tipos de não linearidade são admitidas usando transformações Box-Cox (Box and Cox 1964, 214), o que limita a abordagem a séries temporais positivas.

Os parâmetros do modelo BATS são \((\omega,\{p,q\},\phi,\{m_1,\ldots,m_T\})\).

  • \(\omega\): parâmetro Box-Cox
  • \(p,q\): parâmetros ARMA
  • \(\phi\): parâmetro de amortecimento (damping parameter)
  • \(m_i\): períodos sazonais

Exemplos.

  • BATS\((1,\{0,0\},1,\{m_1\})\): método aditivo de sazonalidade única de Holt-Winters
  • BATS\((1,\{0,0\},1,\{m_1,m_2\})\): modelo aditivo de sazonalidade dupla de Holt-Winters de (J. W. Taylor 2003)
  • BATS\((1,\{1,0\},1,\{m_1,m_2\})\): modelo aditivo de sazonalidade dupla de Holt-Winters com resíduo AR(1) de (J. W. Taylor 2003) e (J. W. Taylor 2008)
  • BATS\((1,\{1,0\},1,\{m_1,m_2,m_3\})\): modelo aditivo de sazonalidade tripla de Holt-Winters com ajuste AR(1) de (J. W. Taylor 2010)

Exemplo 12.21 Exemplo baseado na documentação de forecast::bats().

fit <- forecast::bats(USAccDeaths)
plot(predict(fit, h = 48))

12.12.6 TBATS

[T]he proposed trigonometric formulation is presented as a means of decomposing complex seasonal time series, and it is shown that this decomposition leads to the identification and extraction of seasonal components which are otherwise not apparent in the time series plot itself. (De Livera, Hyndman, and Snyder 2011, 2)

A função forecast::tbats() ajusta um modelo TBATS (Trigonometric Box-Cox transform, ARMA errors, Trend, and Seasonal) conforme descrito em (De Livera, Hyndman, and Snyder 2011). (De Livera, Hyndman, and Snyder 2011, 12) apontam algumas das principais vantagens da estrutura de modelagem TBATS.

  • admite um espaço de parâmetros efetivo maior com a possibilidade de melhores previsões
  • permite a acomodação de múltiplos componentes sazonais aninhados e não aninhados
  • lida com características não lineares típicas que são frequentemente vistas em séries em tempo real
  • permite que qualquer autocorrelação nos resíduos seja levada em consideração
  • envolve um procedimento de estimativa muito mais simples, mas eficiente

Os parâmetros do modelo TBATS são \((\omega,\{p,q\},\phi,\{<m_1,k_1>,\ldots,<m_T,k_T>\})\).

  • \(\omega\): parâmetro Box-Cox
  • \(p,q\): parâmetros ARMA
  • \(\phi\): parâmetro de amortecimento (damping parameter)
  • \(m_i\): períodos sazonais
  • \(k_i\): número de harmônicos necessários para o \(i\)-ésimo componente sazonal

Exemplo 12.22 Exemplo baseado na documentação de forecast::tbats().

fit <- forecast::tbats(USAccDeaths)
plot(predict(fit, h = 48))

12.12.7 Para saber mais

Referências

Box, George EP, and David R Cox. 1964. “An Analysis of Transformations.” Journal of the Royal Statistical Society Series B: Statistical Methodology 26 (2): 211–43. http://www.econ.uiuc.edu/~econ508/Papers/boxcox64.pdf.
Brown, Robert G. 1956. Exponential Smoothing for Predicting Demand. Arthur D. Little Inc. - Massachusetts. https://www.industrydocuments.ucsf.edu/docs/jzlc0130.
———. 1959. “Statistical Forecasting for Inventory Control.” McGraw-Hill.
De Livera, Alysha M, Rob J Hyndman, and Ralph D Snyder. 2011. “Forecasting Time Series with Complex Seasonal Patterns Using Exponential Smoothing.” Journal of the American Statistical Association 106 (496): 1513–27. https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=f3de25596ab60ef0e886366826bf58a02b35a44f.
Holt, Charles C. 1957. “Forecasting Seasonals and Trends by Exponentially Weighted Moving Averages (Reprinted Version 2004).” International Journal of Forecasting 20 (1): 5–10. https://doi.org/10.1016/j.ijforecast.2003.09.015.
Hyndman, Rob J., and George Athanasopoulos. 2018. Forecasting: Principles and Practice, 2nd Ed. OTexts. https://otexts.com/fpp2/.
———. 2021. Forecasting: Principles and Practice, 3rd Ed. OTexts. https://otexts.com/fpp3/.
Hyndman, Rob J., Anne B. Koehler, Ralph D. Snyder, and Simone Grose. 2002. “A State Space Framework for Automatic Forecasting Using Exponential Smoothing Methods.” International Journal of Forecasting 18 (3): 439–54. https://d1wqtxts1xzle7.cloudfront.net/79835005/HKSG-libre.pdf?1643473833=&response-content-disposition=inline%3B+filename%3DA_State_Space_Framework_for_Automatic_Fo.pdf&Expires=1728148129&Signature=hKJA~KUtPIUEDj9xX1EAXUNlFgSvvnK~~5Bnbmqn1N1pYbDHZEAlZpeU~9lO8gxd8FSf07enzKnl4oSfD0GIbqVwnCcnz0WIc5psLFrbB3HoKuHA4hTdYiOmijtSn4nW47YOP6LQpYaLCu5KgrRKneLH36VBIuycWl8dmZDlwxlU9jRnsHZu3yB2~3C08IId48FWHQ7UsfSuzU8ziNN0Zmarwi~xlvTli3X9EclVvgLpYG5~eD-Tq-mPH0k3Vdcztikf7dG8cdvRvAFfKCaXWUXFpjUJtSvwiIBuio6wMiHDRy50OaUTddpDXgL~GLMFSIAy8Pz~O~bWURVR~rbbrA__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA.
Hyndman, Rob, Anne B Koehler, J Keith Ord, and Ralph D Snyder. 2008. Forecasting with Exponential Smoothing: The State Space Approach. Springer Science & Business Media. https://robjhyndman.com/expsmooth/.
Taylor, James W. 2003. Short-Term Electricity Demand Forecasting Using Double Seasonal Exponential Smoothing.” Journal of the Operational Research Society 54 (8): 799–805.
———. 2008. “An Evaluation of Methods for Very Short-Term Load Forecasting Using Minute-by-Minute British Data.” International Journal of Forecasting 24 (4): 645–58. https://ora.ox.ac.uk/objects/uuid:3efb634c-9f14-428a-9782-3e5e34686728/files/m0ed20837a9bc4028fbb9301719a7905d.
———. 2010. “Triple Seasonal Methods for Short-Term Electricity Demand Forecasting.” European Journal of Operational Research 204 (1): 139–52. https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=c106c17601226147c2db7a05b64bb146a1d8f6a0.
Winters, Peter R. 1960. “Forecasting Sales by Exponentially Weighted Moving Averages.” Management Science 6 (3): 324–42. https://doi.org/10.1287/mnsc.6.3.324.
Xu, Haichao, and Xingpao Suo. 2023. “A New Type of Window Functions Constructed with Exponential Function.” https://arxiv.org/abs/2312.15267.