Mercados sobem de escada e caem de elevador

Modelos GARCH em R

Kris Boudt

Professor of finance and econometrics

Como?

Altere o argumento distribution.model de ugarchspec() de "norm" para "sstd":

garchspec <- ugarchspec( mean.model = list(armaOrder = c(0, 0)),
                         variance.model = list(model = "sGARCH"),
                         distribution.model = "norm")

$$ \downarrow$$

garchspec <- ugarchspec( mean.model = list(armaOrder = c(0, 0)),
                         variance.model = list(model = "sGARCH"),
                         distribution.model = "sstd")                         
Modelos GARCH em R

O modelo GARCH normal

Sob as suposições do modelo

$$ R_{t} = \mu_{t} + e_{t} $$ $$ e_{t} \sim N(0, \sigma^{2}_{t}) $$

segue que

$$ \frac{R_{t} - \mu_{t}}{\sigma_{t}} \sim N(0, 1) $$

Modelos GARCH em R

Vamos testar

  • Observação: a normalidade dos retornos padronizados vem de uma suposição.
  • Vamos calcular os retornos padronizados e testar se a suposição é válida.
Modelos GARCH em R

Retornos padronizados estimados

  • Fórmula

$$ Z_{t} = \frac{R_{t} - \hat{\mu_{t}}}{ \hat{\sigma_{t}}} $$

Cálculo em R

# Obtain standardized returns
stdret <- residuals(garchfit, standardize = TRUE)
Modelos GARCH em R

Testando a suposição de normalidade

library(PerformanceAnalytics)
chart.Histogram(sp500ret, methods = c("add.normal", "add.density"),
          colorset = c("gray", "red", "blue"))
Modelos GARCH em R

Modelos GARCH em R

caudas

Modelos GARCH em R

Solução

  • Uma distribuição realista precisa acomodar a presença de:

    • caudas grossas: maior probabilidade de observar retornos grandes (positivos ou negativos) do que sob a normal
    • assimetria: distribuição de retornos não simétrica
  • No rugarch, isso é possível com a distribuição t de Student assimétrica:

garchspec <- ugarchspec(distribution.model = "sstd")
Modelos GARCH em R

Parâmetros da t de Student assimétrica

  • Em relação à normal, a t de Student assimétrica tem dois parâmetros extras:

    • Parâmetro de graus de liberdade $\nu$ (no rugarch: shape): quanto menor $\nu$, mais grossas as caudas.
    • Parâmetro de assimetria $\xi$ (no rugarch: skew): quando $\xi=1$: simetria. Quando $\xi<1$: assimetria negativa. Para $\xi>1$: assimetria positiva.
  • Casos especiais:

    • Quando $\nu=\infty$ e $\xi=1$: distribuição normal.
    • Quando $\xi=1$: distribuição t de Student.
Modelos GARCH em R

Modelos GARCH em R

Modelos GARCH em R

Modelos GARCH em R

Modelos GARCH em R

Estimando GARCH com t de Student assimétrica

Defina o argumento distribution.model como "sstd"

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "sstd")

Estime o modelo

garchfit <- ugarchfit(data = sp500ret, spec = garchspec)
coef(garchfit)
          mu        omega       alpha1        beta1         skew        shape 
5.669200e-04 6.281258e-07 7.462984e-02 9.223701e-01 9.436331e-01 6.318621e+00
Modelos GARCH em R

Vamos praticar!

Modelos GARCH em R

Preparing Video For Download...