Efekt dźwigni

Modele GARCH w R

Kris Boudt

Professor of finance and econometrics

Ujemne zwroty zwiększają dźwignię

  • $R_t <0 $
  • $\downarrow$ wartość rynkowa
  • $\uparrow$ dźwignia = dług / wartość rynkowa
  • $\uparrow$ zmienność
Modele GARCH w R

Dwa równania

Osobne równania wariancji dla ujemnego i dodatniego nieoczekiwanego zwrotu $e_t = R_t - \mu_t$:

Przypadek gdy $ e_{t-1} \gt 0$

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

Przypadek gdy $ e_{t-1} \le 0$

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

Modele GARCH w R

W przypadku pozytywnego zaskoczenia

... stosujemy standardowe równanie GARCH(1,1):

Przypadek gdy $ e_{t-1} \gt 0$

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

Przypadek gdy $ e_{t-1} \le 0$

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

Modele GARCH w R

W przypadku negatywnego zaskoczenia

  • Prognozowana wariancja powinna być wyższa niż po pozytywnym zaskoczeniu.

  • Oznacza to wyższy współczynnik przy kwadracie błędu prognozy: $\alpha+\gamma$ zamiast $\alpha$, przy czym $\gamma \geq 0$

Przypadek gdy $ e_{t-1} \gt 0$

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

Przypadek gdy $ e_{t-1} \le 0$

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

To model GJR zaproponowany przez Glostena, Jagannathana i Runkle'a.

Modele GARCH w R

Jak to zrobić?

Należy zmienić argument variance.model funkcji ugarchspec() z model = "sGARCH" na 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")
Modele GARCH w R

Ilustracja na zwrotach MSFT

Dopasowanie modelu

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

Inspekcja współczynników GARCH

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

Modele GARCH w R

Wizualizacja reakcji zmienności za pomocą newsimpact()

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

Modele GARCH w R

Oszacujmy model GJR GARCH.

Modele GARCH w R

Preparing Video For Download...