Efeito alavancagem

Modelos GARCH em R

Kris Boudt

Professor of finance and econometrics

Retornos negativos elevam a alavancagem

  • $R_t <0 $
  • $\downarrow$ valor de mercado
  • $\uparrow$ alavancagem = dívida / valor de mercado
  • $\uparrow$ volatilidade
Modelos GARCH em R

Duas equações

Use equações separadas para a variância após retornos inesperados negativos e positivos $e_t = R_t - \mu_t$:

Caso $ e_{t-1} \gt 0$

$$ \sigma^2_{t} = ??? $$

Caso $ e_{t-1} \le 0$

$$ \sigma^2_{t} = ??? $$

Modelos GARCH em R

No caso de surpresa positiva

... usamos a equação GARCH(1,1) usual:

Caso $ e_{t-1} \gt 0$

$$ \sigma^2_{t} = \omega + \alpha e^{2}_{t-1} + \beta \sigma^{2}_{t-1} $$

Caso $ e_{t-1} \le 0$

$$ \sigma^2_{t} = ??? $$

Modelos GARCH em R

No caso de surpresa negativa

  • A variância prevista deve ser maior do que após uma surpresa positiva.

  • Isso implica um coeficiente maior multiplicando o erro de previsão ao quadrado, ou seja, $\alpha+\gamma$ em vez de $\alpha$, com $\gamma \geq 0$

Caso $ e_{t-1} \gt 0$

$$ \sigma^2_{t} = \omega + \alpha e^{2}_{t-1} + \beta \sigma^{2}_{t-1} $$

Caso $ e_{t-1} \le 0$

$$ \sigma^2_{t} = \omega + (\alpha + \gamma) e^{2}_{t-1} + \beta \sigma^{2}_{t-1} $$

Este é o modelo GJR proposto por Glosten, Jagannathan e Runkle.

Modelos GARCH em R

Como?

Altere o argumento variance.model de ugarchspec() de model = "sGARCH" para model = "gjrGARCH":

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

$$\downarrow$$

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

Ilustração nos retornos da MSFT

Estime o modelo

garchfit <- ugarchfit(data = msftret, spec = garchspec)

Inspecione os coeficientes do GARCH

coef(garchfit)[2:5]
       omega       alpha1        beta1       gamma1 
2.007875e-06 3.423336e-02 9.363302e-01 5.531854e-02

Modelos GARCH em R

Visualize a resposta da volatilidade com newsimpact()

out <- newsimpact(garchfit)
plot(out$zx, out$zy, xlab = "prediction error", ylab = "predicted variance")

Modelos GARCH em R

Vamos estimar um modelo GJR GARCH.

Modelos GARCH em R

Preparing Video For Download...