Modelo SARIMA
O SARIMA estende o ARIMA com operadores AR, de diferenciação e MA sazonais que capturam padrões que se repetem a cada \(s\) períodos. É o modelo padrão para dados mensais, trimestrais ou diários com ciclos sazonais regulares, como vendas no varejo, demanda de energia ou turismo.
Definição
Um modelo SARIMA(\(p,d,q\))(\(P,D,Q\))\(_s\) é escrito de forma compacta como:
\[\Phi_P(L^s)\,\phi_p(L)\,(1-L^s)^D(1-L)^d\,y_t = \Theta_Q(L^s)\,\theta_q(L)\,\varepsilon_t\]
em que:
- \((p,d,q)\): ordem AR não sazonal, diferenciação, ordem MA não sazonal.
- \((P,D,Q)\): ordem AR sazonal, diferenciação sazonal, ordem MA sazonal.
- \(s\): duração da estação (12 para dados mensais, 4 para trimestrais, 7 para dados diários com ciclo semanal).
- \(\phi_p(L) = 1 - \phi_1 L - \cdots - \phi_p L^p\): polinômio AR não sazonal.
- \(\Phi_P(L^s) = 1 - \Phi_1 L^s - \cdots - \Phi_P L^{Ps}\): polinômio AR sazonal.
- \(\theta_q(L)\), \(\Theta_Q(L^s)\): polinômios MA correspondentes.
- \((1-L)^d\): diferenciação não sazonal; \((1-L^s)^D\): diferenciação sazonal.
O operador de diferenciação sazonal remove uma tendência sazonal estocástica:
\[(1-L^{12})y_t = y_t - y_{t-12}\]
Para dados mensais, isso calcula a variação ano a ano, eliminando o padrão sazonal.
Identificando ordens sazonais a partir da ACF e da PACF
A estrutura sazonal aparece como picos em múltiplos de \(s\) na ACF e na PACF. As regras de identificação espelham as do caso não sazonal, mas aplicadas às defasagens sazonais:
| Padrão sazonal | ACF nas defasagens \(s, 2s, 3s, \ldots\) | PACF nas defasagens \(s, 2s, 3s, \ldots\) |
|---|---|---|
| SAR(\(P\)) | Se atenua | Se corta após a defasagem \(Ps\) |
| SMA(\(Q\)) | Se corta após a defasagem \(Qs\) | Se atenua |
| SARMA | Ambas se atenuam | Ambas se atenuam |

As linhas pontilhadas laranjas marcam as defasagens sazonais (12, 24, 36). O pico significativo na defasagem 12 da ACF (mas não na 24) sugere SMA(1). O pico na defasagem 12 da PACF sugere SAR(1). Combinado com a estrutura não sazonal, isso aponta para SARIMA(0,1,1)(0,1,1)\(_{12}\) ou SARIMA(0,1,1)(1,1,0)\(_{12}\).
O modelo airline: SARIMA(0,1,1)(0,1,1)\(_{12}\)
O modelo SARIMA mais famoso, proposto por Box e Jenkins para os dados de passageiros aéreos:
\[\Delta\Delta_{12}\log y_t = (1 + \theta L)(1 + \Theta L^{12})\varepsilon_t\]
Expandido:
\[\Delta\Delta_{12}\log y_t = \varepsilon_t + \theta\varepsilon_{t-1} + \Theta\varepsilon_{t-12} + \theta\Theta\varepsilon_{t-13}\]
Apenas dois parâmetros (\(\theta\) e \(\Theta\)) capturam tanto a dinâmica de curto prazo quanto o padrão sazonal. A transformação logarítmica estabiliza a variância crescente; a diferenciação regular remove a tendência; a diferenciação sazonal remove a tendência sazonal.

A previsão (vermelho) preserva o padrão sazonal e a tendência de alta, com intervalos de previsão que se ampliam apropriadamente.
Diagnóstico de resíduos

Nenhum pico significativo em qualquer defasagem, incluindo as sazonais 12 e 24. O modelo capturou toda a estrutura de autocorrelação.
⚠️ A diferenciação sazonal excessiva infla a variância da previsão
Aplicar \(D = 1\) quando \(D = 0\) é suficiente introduz uma raiz unitária no MA sazonal, tornando o modelo não inversível e produzindo previsões com variância explosiva. Sinais: a ACF da série diferenciada sazonalmente começa com um valor negativo grande na defasagem \(s\).
Um erro comum com dados mensais: aplicar tanto \(D = 1\) (sazonal) quanto \(d = 2\) (não sazonal) quando \(d = 1, D = 1\) é suficiente. Use forecast::nsdiffs(y) para determinar \(D\) e forecast::ndiffs(diff(y, 12)) para determinar \(d\) após a diferenciação sazonal.
💡 SARIMA em R
# Fit SARIMA(0,1,1)(0,1,1)[12] manually
arima(log(y), order = c(0,1,1),
seasonal = list(order = c(0,1,1), period = 12))
# Automatic SARIMA selection
library(forecast)
auto.arima(y, seasonal = TRUE) # default, searches seasonal orders too
# Determine differencing orders
nsdiffs(y) # number of seasonal differences needed
ndiffs(diff(y, 12)) # non-seasonal differences after seasonal differencing
# Forecast and plot
fc <- forecast(fit, h = 24)
autoplot(fc)