Modelo autorregressivo de média móvel (ARMA)

O modelo ARMA(\(p,q\)) combina \(p\) termos autorregressivos e \(q\) termos de média móvel em um único framework. Ele é mais parcimonioso do que usar um modelo AR ou MA puro isoladamente: muitos processos que exigiriam um AR ou MA de ordem alta podem ser representados exata ou aproximadamente por um ARMA de ordem baixa. Ele se aplica apenas a séries estacionárias.

Definição

Os termos AR dependem de valores passados da própria \(y_t\), enquanto os termos MA dependem de erros de previsão passados \(\varepsilon_{t-i}\), combinados aqui em uma única equação:

\[y_t = \phi_1 y_{t-1} + \cdots + \phi_p y_{t-p} + \varepsilon_t + \theta_1 \varepsilon_{t-1} + \cdots + \theta_q \varepsilon_{t-q}\]

Em notação com operador de defasagem:

\[\Phi(L)\,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\]

O polinômio AR \(\Phi(L)\) atua sobre \(y_t\); o polinômio MA \(\Theta(L)\) atua sobre \(\varepsilon_t\).

Estacionariedade e inversibilidade

Um ARMA(\(p,q\)) é:

  • Estacionário se todas as raízes de \(\Phi(z) = 0\) estiverem fora do círculo unitário (mesma condição do AR(\(p\)) puro).
  • Inversível se todas as raízes de \(\Theta(z) = 0\) estiverem fora do círculo unitário (mesma condição do MA(\(q\)) puro).
  • Identificável: não deve haver raízes comuns entre \(\Phi(z)\) e \(\Theta(z)\) (sem cancelamento). Se uma raiz é compartilhada, a ordem efetiva é menor e o modelo está superparametrizado.

⚠️ Cancelamento de fatores comuns: a armadilha da redundância de parâmetros

Se \(\Phi(z)\) e \(\Theta(z)\) compartilham uma raiz comum, o modelo verdadeiro é de ordem menor. Por exemplo, ARMA(2,1) com \(\phi_1 = 0{,}9\), \(\phi_2 = -0{,}2\), \(\theta_1 = 0{,}4\): se \(z = 0{,}5\) é raiz de ambos os polinômios, o modelo na verdade se reduz a ARMA(1,0). Ajustar o modelo superparametrizado produz erros padrão grandes e instabilidade.

Sintoma: se os coeficientes \(\phi\) e \(\theta\) ajustados têm magnitude semelhante com sinais opostos na mesma defasagem, suspeite de cancelamento. Verifique calculando as raízes de ambos os polinômios.

Por que o ARMA é mais parcimonioso

Pelo teorema de decomposição de Wold, qualquer processo estacionário pode ser representado como MA(\(\infty\)). Um ARMA(\(p,q\)) fornece uma aproximação racional usando apenas \(p+q\) parâmetros, em vez de infinitos.

Um exemplo clássico: a representação MA(\(\infty\)) de um AR(1) é:

\[y_t = \varepsilon_t + \phi\varepsilon_{t-1} + \phi^2\varepsilon_{t-2} + \cdots\]

que exige infinitos parâmetros MA. O ARMA(1,0) captura isso com apenas um parâmetro \(\phi\).

Reciprocamente, alguns processos que parecem ser AR ou MA de ordem alta ao examinar a ACF/PACF podem ser representados exatamente por um ARMA de ordem baixa. Essa é a principal motivação para usar ARMA em vez de AR ou MA puros.

Série simulada ARMA(1,1) com sua ACF e PACF mostrando ambas se atenuando

Tanto a ACF quanto a PACF se atenuam gradualmente, confirmando a estrutura ARMA. Nenhuma das duas se corta abruptamente, razão pela qual identificar apenas AR ou MA exigiria ordens altas.

Seleção da ordem: AIC e BIC

Para ARMA(\(p,q\)), a identificação por ACF/PACF é menos clara do que para AR ou MA puros. A abordagem padrão é ajustar vários modelos candidatos e comparar por:

\[\text{AIC} = -2\log\hat{L} + 2(p+q+1), \qquad \text{BIC} = -2\log\hat{L} + \log(T)(p+q+1)\]

Mapa de calor de valores AIC para modelos ARMA de diferentes ordens mostrando o melhor modelo

O mapa de calor mostra o AIC em uma grade de ordens AR e MA. AIC mais baixo (azul mais escuro) indica melhor ajuste, penalizado pela complexidade. A borda vermelha marca o melhor modelo. Modelos de ordem alta no canto superior direito mostram AIC pior, mesmo com mais parâmetros.

Exemplo: ARMA(1,1) para vendas mensais

Dados de vendas mensais costumam exibir tanto persistência (componente AR) quanto correção após erros de previsão (componente MA). Um ARMA(1,1) captura ambos com apenas dois parâmetros.

ARMA(1,1) ajustado a dados simulados de vendas mensais com verificação da ACF dos resíduos

A ACF dos resíduos não mostra picos significativos: o ARMA(1,1) capturou a estrutura de autocorrelação. Confirme com o teste de Ljung-Box: Box.test(residuals(fit), lag = 20, type = "Ljung-Box", fitdf = 2).

💡 Ajustando modelos ARMA em R


# Fit ARMA(1,1)
fit <- arima(y, order = c(1, 0, 1))
summary(fit)

# Automatic selection by AIC
library(forecast)
auto.arima(y, d = 0, max.p = 4, max.q = 4, stationary = TRUE)

# Check residuals
checkresiduals(fit)   # plots residuals, ACF and Ljung-Box p-value