Modelo GARCH

O GARCH (Generalized Autoregressive Conditional Heteroscedasticity) modela a variância condicional de uma série temporal como função de erros ao quadrado passados e de variâncias passadas. Ele captura o fato estilizado mais universal dos retornos financeiros: o agrupamento de volatilidade, em que grandes movimentos tendem a ser seguidos por grandes movimentos, independentemente da direção.

Motivação: agrupamento de volatilidade

Séries de retornos financeiros têm autocorrelação aproximadamente nula em níveis, mas forte autocorrelação em retornos ao quadrado. Isso significa:

  • A média é difícil de prever a partir de retornos passados (consistente com a eficiência de mercado).
  • A variância é previsível: períodos de alta volatilidade se agrupam.

O ARIMA modela a média condicional, mas assume variância constante. O GARCH modela a variância condicional, que o ARIMA deixa sem explicar.

Retornos financeiros simulados mostrando agrupamento de volatilidade com períodos calmos e turbulentos

Grandes oscilações nos retornos (azul) coincidem com alta volatilidade condicional (vermelho). Períodos calmos têm baixa volatilidade condicional. O ARIMA atribuiria variância constante a todos os períodos.

ARCH: o precursor

Robert Engle (1982, Prêmio Nobel 2003) introduziu o ARCH(\(q\)) (AutoRegressive Conditional Heteroscedasticity):

\[r_t = \mu_t + \varepsilon_t, \qquad \varepsilon_t = \sigma_t z_t, \quad z_t \sim \text{i.i.d.}(0,1)\]

\[\sigma_t^2 = \omega + \alpha_1 \varepsilon_{t-1}^2 + \alpha_2 \varepsilon_{t-2}^2 + \cdots + \alpha_q \varepsilon_{t-q}^2\]

A variância condicional \(\sigma_t^2\) é uma função linear de \(q\) resíduos passados ao quadrado. Um choque grande em \(t-1\) aumenta \(\sigma_t^2\), produzindo agrupamento de volatilidade.

Limitação: capturar memória longa na volatilidade exige \(q\) grande, estimando muitos parâmetros \(\alpha_i\). Bollerslev (1986) generalizou isso para o GARCH.

GARCH(\(p,q\))

O ARCH generalizado adiciona \(p\) variâncias condicionais defasadas à equação:

\[\sigma_t^2 = \omega + \sum_{i=1}^q \alpha_i \varepsilon_{t-i}^2 + \sum_{j=1}^p \beta_j \sigma_{t-j}^2\]

A especificação mais comum é o GARCH(1,1):

\[\sigma_t^2 = \omega + \alpha_1 \varepsilon_{t-1}^2 + \beta_1 \sigma_{t-1}^2\]

  • \(\omega > 0\): piso de variância de longo prazo.
  • \(\alpha_1 \geq 0\): coeficiente de reação. O quanto um choque grande aumenta a variância do próximo período.
  • \(\beta_1 \geq 0\): coeficiente de persistência. Com que lentidão a volatilidade decai após um choque.
  • \(\alpha_1 + \beta_1\): persistência total. Deve ser \(< 1\) para estacionariedade em covariância.

A variância incondicional (de longo prazo) é:

\[\sigma^2 = \frac{\omega}{1 - \alpha_1 - \beta_1}\]

O GARCH(1,1) é suficiente para a maioria das séries financeiras. O termo \(\beta_1\) captura o decaimento lento da volatilidade sem precisar de muitas defasagens \(\alpha_i\).

Condições de estacionariedade e positividade

Para que o GARCH(1,1) esteja bem definido:

Condição Requisito
Positividade de \(\sigma_t^2\) \(\omega > 0\), \(\alpha_1 \geq 0\), \(\beta_1 \geq 0\)
Estacionariedade em covariância \(\alpha_1 + \beta_1 < 1\)
Quarto momento finito \(3\alpha_1^2 + 2\alpha_1\beta_1 + \beta_1^2 < 1\) (para \(z_t\) gaussiano)

Quando \(\alpha_1 + \beta_1 = 1\), o processo é IGARCH (GARCH integrado): choques na variância são permanentes (persistência infinita). Isso é às vezes observado em dados financeiros de altíssima frequência.

Testando efeitos ARCH

Antes de ajustar o GARCH, verifique que efeitos ARCH estão presentes usando o teste de Ljung-Box nos resíduos ao quadrado ou o teste ARCH-LM:

  1. Ajuste um modelo ARIMA à série de retornos para remover a média condicional.
  2. Extraia os resíduos \(\hat{\varepsilon}_t\).
  3. Teste se \(\hat{\varepsilon}_t^2\) é autocorrelacionado.

ACF dos resíduos ao quadrado de uma série de retornos mostrando autocorrelação significativa indicando efeitos ARCH

Os retornos (esquerda) não mostram autocorrelação significativa. Os retornos ao quadrado (direita) mostram forte autocorrelação: evidência de efeitos ARCH. O GARCH é apropriado.

Exemplo: ajustando GARCH(1,1) a retornos de ações

Estimativa de volatilidade condicional GARCH(1,1) para retornos de ações simulados com períodos calmos e turbulentos destacados

As bandas vermelhas mostram \(\pm\hat{\sigma}_t\): elas se ampliam durante períodos turbulentos e se estreitam durante os calmos. A persistência \(\alpha + \beta \approx 0{,}95\) é típica de retornos financeiros diários: choques de volatilidade levam muitos dias para se dissipar.

O fluxo de trabalho ARIMA-GARCH

O GARCH modela a variância condicional dos resíduos de um modelo de média. O fluxo de trabalho completo em duas etapas:

Etapa 1: ajuste um modelo ARIMA para remover a média condicional:

\[r_t = \mu + \phi_1 r_{t-1} + \cdots + \theta_1 \varepsilon_{t-1} + \cdots + \varepsilon_t\]

Etapa 2: ajuste o GARCH aos resíduos \(\hat{\varepsilon}_t\):

\[\hat{\sigma}_t^2 = \omega + \alpha_1 \hat{\varepsilon}_{t-1}^2 + \beta_1 \hat{\sigma}_{t-1}^2\]

Ambas as etapas podem ser estimadas conjuntamente por MV usando o fluxo de trabalho ugarchspec + ugarchfit no R.

⚠️ Não ajuste GARCH a retornos brutos sem remover a média primeiro

Se a série de retornos tem autocorrelação significativa em níveis (incomum, mas possível em dados de alta frequência ou ativos ilíquidos), ajustar GARCH a retornos brutos confunde as dinâmicas de média e variância. Sempre:

  1. Verifique a ACF dos retornos: se existir autocorrelação significativa, inclua termos ARMA no modelo de média.
  2. Ajuste ARMA-GARCH conjuntamente.
  3. Verifique a ACF dos resíduos padronizados \(\hat{\varepsilon}_t/\hat{\sigma}_t\): devem ser ruído branco.
  4. Verifique a ACF dos resíduos padronizados ao quadrado: também devem ser ruído branco se o GARCH estiver corretamente especificado.

Extensões do GARCH

Modelo Extensão-chave Caso de uso
EGARCH Resposta assimétrica da volatilidade Efeito leverage em ações
GJR-GARCH Assimetria via função indicadora Alternativa ao EGARCH
IGARCH \(\alpha+\beta=1\), persistência infinita Dados de altíssima frequência
GARCH-M Variância na equação de média Modelagem de prêmio de risco
GARCH multivariado Volatilidade conjunta de múltiplos ativos Risco de portfólio, modelos DCC

A extensão mais importante é o EGARCH, que captura o efeito leverage: choques negativos aumentam a volatilidade mais do que choques positivos do mesmo tamanho, uma assimetria bem documentada nos mercados de ações.

💡 GARCH em R

library(rugarch)

# Specify GARCH(1,1) with normal innovations
spec <- ugarchspec(
  variance.model     = list(model = "sGARCH", garchOrder = c(1,1)),
  mean.model         = list(armaOrder = c(0,0), include.mean = TRUE),
  distribution.model = "norm"   # or "std" for Student-t
)

# Fit
fit <- ugarchfit(spec, data = returns)
coef(fit)       # omega, alpha1, beta1
sigma(fit)      # conditional volatility series
infocriteria(fit)  # AIC, BIC

# Forecast volatility 10 steps ahead
ugarchforecast(fit, n.ahead = 10)

Use distribution.model = "std" (Student-t) para retornos com caudas pesadas, o que é quase sempre mais apropriado do que o gaussiano para dados financeiros diários.