Estacionariedade em séries temporais
Uma série temporal estacionária tem média constante, variância constante e autocorrelações que dependem apenas da defasagem, não do tempo. A maioria dos modelos de séries temporais assume estacionariedade. Detectar e corrigir a não estacionariedade é o primeiro passo essencial antes de ajustar modelos AR, MA, ARIMA ou qualquer outro.
Definição formal
Uma série temporal \(\{y_t\}\) é fracamente estacionária (ou estacionária em covariância) se:
\[E[y_t] = \mu \quad \forall t \qquad \text{(média constante)}\] \[\text{Var}(y_t) = \sigma^2 < \infty \quad \forall t \qquad \text{(variância constante)}\] \[\text{Cov}(y_t, y_{t+k}) = \gamma(k) \quad \forall t \qquad \text{(autocovariância que depende apenas da defasagem } k \text{)}\]
A estacionariedade estrita exige que toda a distribuição conjunta de \((y_t, y_{t+1}, \ldots, y_{t+k})\) seja invariante a deslocamentos no tempo. Para fins práticos, a estacionariedade fraca é suficiente.
Uma série que não é estacionária é chamada de não estacionária ou integrada. A forma mais comum de não estacionariedade em dados econômicos e financeiros é a raiz unitária: uma tendência estocástica que faz a série vagar sem reverter à média.

A série estacionária (verde) flutua em torno de uma média constante. O passeio aleatório (vermelho) deriva sem limite. A série com tendência (laranja) tem uma média crescente. A série heterocedástica (azul) tem variância que muda na metade da amostra.
Raízes unitárias e passeios aleatórios
A fonte mais importante de não estacionariedade na prática é a raiz unitária. Um processo AR(1):
\[y_t = \phi y_{t-1} + \varepsilon_t\]
é estacionário quando \(|\phi| < 1\) (a série reverte à sua média). Quando \(\phi = 1\), ele se torna um passeio aleatório:
\[y_t = y_{t-1} + \varepsilon_t \implies y_t = y_0 + \sum_{s=1}^t \varepsilon_s\]
A variância de um passeio aleatório cresce sem limite: \(\text{Var}(y_t) = t\sigma^2\). Os choques são permanentes: eles nunca se dissipam. É por isso que testar se \(\phi = 1\) (uma raiz unitária) é central na análise de séries temporais.
Testando a estacionariedade
Teste de Dickey-Fuller Aumentado (ADF)
Para a regressão completa, um exemplo resolvido e como ele difere da função rápida adf.test(), veja o post dedicado ao teste de Dickey-Fuller.
Testa \(H_0\): a série tem uma raiz unitária (não estacionária) contra \(H_1\): a série é estacionária. O teste ajusta a regressão:
\[\Delta y_t = \alpha + \beta t + \gamma y_{t-1} + \sum_{j=1}^p \delta_j \Delta y_{t-j} + \varepsilon_t\]
e testa \(H_0: \gamma = 0\) (presença de raiz unitária). Rejeita-se \(H_0\) se a estatística \(t\) para \(\gamma\) for suficientemente negativa (os valores críticos não são padrão, não vêm da distribuição normal).
O número de defasagens \(p\) é escolhido para remover a autocorrelação dos resíduos (normalmente por AIC ou BIC).
Teste KPSS (Kwiatkowski-Phillips-Schmidt-Shin)
Testa o oposto: \(H_0\): a série é estacionária contra \(H_1\): a série tem uma raiz unitária. Valores grandes da estatística KPSS rejeitam a estacionariedade.
⚠️ ADF e KPSS têm hipóteses nulas opostas, não os confunda
O erro mais comum: tratar os dois testes como se testassem a mesma coisa.
- ADF: \(H_0\) = raiz unitária (não estacionária). Um p-valor alto significa que você não rejeita a não estacionariedade. Um p-valor baixo significa que você rejeita a raiz unitária, apoiando a estacionariedade.
- KPSS: \(H_0\) = estacionariedade. Um p-valor alto significa que você não rejeita a estacionariedade. Um p-valor baixo significa que você rejeita a estacionariedade.
Interpretar “p-valor do ADF = 0,60, portanto a série é estacionária” está errado. Um p-valor de 0,60 significa que você não rejeitou a raiz unitária, ou seja, não há evidência contra a não estacionariedade.
Use os dois testes juntos. Se o ADF rejeita a raiz unitária E o KPSS não rejeita a estacionariedade: evidência forte de estacionariedade. Se eles não concordam: investigue mais.
Teste de Phillips-Perron (PP)
Uma alternativa não paramétrica ao ADF. Mesma \(H_0\) (raiz unitária), mas usa uma correção diferente para a autocorrelação dos resíduos em vez de adicionar diferenças defasadas. Tende a ser mais robusto à heterocedasticidade.

Para o AR(1) estacionário: o ADF rejeita a raiz unitária (vermelho, \(p < 0,05\)) e o KPSS não rejeita a estacionariedade (azul, \(p > 0,05\)). Os dois concordam: estacionária. Para o passeio aleatório: o ADF não rejeita a raiz unitária (azul) e o KPSS rejeita a estacionariedade (vermelho). Os dois concordam: não estacionária.
Transformações para alcançar estacionariedade
Diferenciação
O remédio padrão para uma raiz unitária. A primeira diferença remove uma tendência estocástica linear:
\[\Delta y_t = y_t - y_{t-1}\]
Uma série que se torna estacionária após \(d\) diferenciações é chamada de integrada de ordem \(d\), denotada \(I(d)\). A maioria das séries econômicas é \(I(1)\): uma diferenciação é suficiente.
Transformação logarítmica
Estabiliza a variância que cresce proporcionalmente ao nível (comum em preços, PIB, vendas). \(\log(y_t)\) converte a sazonalidade multiplicativa em aditiva e torna a série mais simétrica.
Transformação Box-Cox
Uma família de transformações de potência parametrizada por \(\lambda\):
\[y_t^{(\lambda)} = \begin{cases} (y_t^\lambda - 1)/\lambda & \lambda \neq 0 \\ \log(y_t) & \lambda = 0 \end{cases}\]
O \(\lambda\) ótimo é estimado a partir dos dados. \(\lambda = 1\) significa nenhuma transformação; \(\lambda = 0\) é o log; \(\lambda = 0{,}5\) é a raiz quadrada.

O PIB em níveis (vermelho) é não estacionário com variância crescente. Após o log (laranja), a variância se estabiliza, mas a tendência permanece. Após diferenciar o log(PIB) uma vez (verde), a série se torna estacionária: ela representa a taxa de crescimento do PIB, flutuando em torno de uma média constante.
Quantas diferenças são necessárias?
Aplique o teste ADF após cada etapa de diferenciação até que a estacionariedade seja alcançada. Para a maioria das séries econômicas, \(d=1\) é suficiente. A diferenciação excessiva (aplicar mais diferenças do que o necessário) torna a série mais difícil de modelar e deve ser evitada.
Uma regra prática: se o teste ADF na série original não rejeita a raiz unitária, diferencie uma vez e teste novamente. Se o ADF em \(\Delta y_t\) rejeita a raiz unitária, \(d=1\) é adequado.
💡 Testes de estacionariedade em R
library(tseries)
# ADF test (H0: unit root)
adf.test(y)
adf.test(diff(y)) # after first differencing
# KPSS test (H0: stationary)
kpss.test(y)
# Phillips-Perron test (H0: unit root)
pp.test(y)
# Automatic differencing order selection
library(forecast)
ndiffs(y) # number of regular differences needed
nsdiffs(y) # number of seasonal differences needed