Modelo ARIMA

O ARIMA(\(p,d,q\)) estende o ARMA(\(p,q\)) para séries não estacionárias por meio de \(d\) diferenciações. As \(d\) diferenças removem tendências estocásticas (raízes unitárias), deixando uma série estacionária à qual o ARMA(\(p,q\)) é aplicado. É a classe de modelos mais amplamente usada para previsão de séries temporais univariadas.

Definição

Uma série \(y_t\) segue um ARIMA(\(p,d,q\)) se \(w_t = \Delta^d y_t = (1-L)^d y_t\) segue um ARMA(\(p,q\)) estacionário:

\[\Phi(L)(1-L)^d y_t = \Theta(L)\varepsilon_t\]

\[\Phi(L) = 1 - \phi_1 L - \cdots - \phi_p L^p, \qquad \Theta(L) = 1 + \theta_1 L + \cdots + \theta_q L^q\]

Os três parâmetros:

  • \(p\): ordem AR (número de defasagens autorregressivas).
  • \(d\): grau de diferenciação (ordem de integração). \(d=0\) dá o ARMA; \(d=1\) é o caso mais comum.
  • \(q\): ordem MA (número de termos de média móvel).

Casos especiais: ARIMA(1,0,0) = AR(1); ARIMA(0,1,0) = passeio aleatório; ARIMA(0,1,1) = média móvel ponderada exponencialmente (EWMA).

A metodologia Box-Jenkins

O procedimento sistemático para identificar e ajustar modelos ARIMA, proposto por Box e Jenkins (1970):

Etapa 1: Identificação. Plote a série. Aplique log ou Box-Cox se a variância não for constante. Teste raízes unitárias (ADF, KPSS). Diferencie \(d\) vezes até obter estacionariedade. Examine a ACF e a PACF da série diferenciada para identificar candidatos a \(p\) e \(q\).

Etapa 2: Estimação. Ajuste o ARIMA(\(p,d,q\)) candidato por MV. Compare modelos por AIC e BIC.

Etapa 3: Diagnóstico. Verifique que os resíduos são ruído branco: ACF dos resíduos, teste de Ljung-Box. Se os resíduos mostrarem autocorrelação, revise \(p\) ou \(q\).

Etapa 4: Previsão. Use o modelo ajustado para gerar previsões pontuais e intervalos de previsão. Uma vez observados os resultados reais, compare-os com a previsão usando métricas de avaliação de regressão padrão, como MAE, RMSE ou MAPE.

Quatro painéis mostrando o fluxo de trabalho Box-Jenkins: série original, série diferenciada, ACF e PACF da série diferenciada

A série logarítmica original é não estacionária (tendência de alta). Após uma diferenciação, torna-se aproximadamente estacionária. A ACF e a PACF de \(\Delta\log(y)\) ainda mostram picos sazonais nas defasagens 12, 24, sugerindo que uma extensão sazonal (SARIMA) é necessária.

Escolhendo d

\(d\) é determinado por testes de raiz unitária:

  • Aplique ADF e KPSS à série original.
  • Se não estacionária, diferencie uma vez e teste novamente.
  • Pare quando ambos os testes concordarem que a série é estacionária.
  • Para a maioria das séries econômicas e financeiras, \(d = 1\) é suficiente. \(d = 2\) é raro e geralmente indica diferenciação excessiva.

No R: forecast::ndiffs(y) automatiza isso usando testes ADF sequenciais.

⚠️ A diferenciação excessiva piora as previsões

Aplicar \(d = 2\) quando \(d = 1\) é suficiente introduz uma raiz unitária no polinômio MA, produzindo estimativas de parâmetros instáveis e previsões que se dispersam excessivamente. Sinais de diferenciação excessiva: a ACF de \(\Delta^d y_t\) começa com um valor negativo grande na defasagem 1.

A subdiferenciação (usar \(d = 0\) para uma série que precisa de \(d = 1\)) produz resíduos não estacionários com média variável e variância crescente.

Exemplo: ARIMA(1,1,1)

Ajustamos um ARIMA(1,1,1) à taxa de desemprego mensal dos EUA (uma série econômica não estacionária clássica).

ARIMA(1,1,1) ajustado a dados de desemprego com previsão de 24 meses e intervalos de previsão

Os intervalos de previsão se ampliam com o horizonte: as previsões do ARIMA(1,1,1) revertem em direção à tendência recente, com a incerteza crescendo linearmente em variância. As faixas de 80% (mais escura) e 95% (mais clara) refletem isso.

ARIMA vs ARMA

ARMA(\(p,q\)) ARIMA(\(p,d,q\))
Exige estacionariedade Sim Não (lida com séries \(I(d)\))
Lida com tendências Não Sim (por diferenciação)
Previsão de longo prazo Reverte à média constante Segue uma tendência estocástica
Caso especial \(d = 0\) Sim (ARIMA = ARMA) -

💡 ARIMA em R

# Manual specification
arima(y, order = c(1, 1, 1))

# Automatic selection by AIC (Box-Jenkins automated)
library(forecast)
auto.arima(y)

# Diagnose residuals
checkresiduals(fit)

# Forecast 12 periods ahead
forecast(fit, h = 12)

auto.arima() aplica a metodologia Box-Jenkins automaticamente: ela testa raízes unitárias para escolher \(d\), e então busca sobre \((p, q)\) por AIC. É o ponto de partida recomendado para qualquer análise ARIMA.