Trhy stoupají po schodech, ale klesají výtahem

GARCH modely v R

Kris Boudt

Professor of finance and econometrics

Jak na to?

Změňte argument distribution.model funkce ugarchspec() z "norm" na "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")                         
GARCH modely v R

Normální model GARCH

Za předpokladů modelu

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

platí

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

GARCH modely v R

Test předpokladu

  • Upozornění: normalita standardizovaných výnosů vychází z předpokladu
  • Vypočítáme standardizované výnosy a ověříme, zda předpoklad platí.
GARCH modely v R

Odhadnuté standardizované výnosy

  • Vzorec

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

Výpočet v R

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

Test předpokladu normality

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

GARCH modely v R

tails

GARCH modely v R

Řešení

  • Realistické rozdělení musí zohledňovat:

    • tučné chvosty: vyšší pravděpodobnost velkých (kladných i záporných) výnosů než u normálního rozdělení
    • šikmost: asymetrie rozdělení výnosů
  • V rugarch to umožňuje zešikmené Studentovo t rozdělení:

garchspec <- ugarchspec(distribution.model = "sstd")
GARCH modely v R

Parametry zešikmeného Studentova t rozdělení

  • Oproti normálnímu rozdělení má zešikmené Studentovo t dva dodatečné parametry:

    • Parametr stupňů volnosti $\nu$ (v rugarch: shape): čím nižší $\nu$, tím tučnější chvosty.
    • Parametr šikmosti $\xi$ (v rugarch: skew): $\xi=1$: symetrie. $\xi<1$: záporná šikmost. $\xi>1$: kladná šikmost.
  • Speciální případy:

    • Když $\nu=\infty$ a $\xi=1$: normální rozdělení.
    • Když $\xi=1$: Studentovo t rozdělení.
GARCH modely v R

GARCH modely v R

GARCH modely v R

GARCH modely v R

GARCH modely v R

Odhad modelu GARCH se zešikmeným Studentovým t

Nastavte argument distribution.model na "sstd"

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

Odhad modelu

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
GARCH modely v R

Pojďme si procvičit!

GARCH modely v R

Preparing Video For Download...