Bez práce nejsou koláče

GARCH modely v R

Kris Boudt

Professor of finance and econometrics

Model GARCH-in-mean

  • Kvantifikace poměru rizika a odměny.
  • Riziko: $\sigma^2_t$. Odměna: $\mu_t$.
  • Model GARCH-in-mean:

$$ \mu_{t} = \mu + \lambda \sigma^2_{t} $$

$\lambda > 0$ je parametr rizika/odměny udávající nárůst očekávaného výnosu na jednotku rozptylového rizika.

GARCH modely v R

Jak na to?

Změňte argument mean.model ve funkci ugarchspec() z list(armaOrder = c(0, 0)) na list(armaOrder = c(0, 0), archm = TRUE, archpow = 2):

garchspec <- ugarchspec(
              mean.model = list(armaOrder = c(0, 0)),
              variance.model = list(model = "gjrGARCH"),
              distribution.model = "sstd")
garchspec <- ugarchspec(
               mean.model = list(armaOrder = c(0, 0), archm = TRUE, archpow = 2),
               variance.model = list(model = "gjrGARCH"),
               distribution.model = "sstd")
GARCH modely v R

Aplikace na denní výnosy S&P 500

Odhad

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

Odhadnuté koeficienty pro střední hodnotu

round(coef(garchfit)[1:2], 4)
    mu  archm 
0.0002 1.9950

Předpovězené průměrné výnosy

$$ \hat{\mu}_{t} = 0.0002 + 1.9950 \hat{\sigma}^2_{t} $$

GARCH modely v R

Časová řada předpovězených výnosů

  • Zobrazení v R
    plot(fitted(garchfit))
    
GARCH modely v R

Dnešní výnos předpovídá zítřejší výnos

  • Model GARCH-in-mean využívá finanční teorii poměru rizika a odměny k sestavení modelu podmíněné střední hodnoty.
  • Nyní využijeme statistickou teorii k vytvoření modelu střední hodnoty, který využívá korelaci mezi dnešním a zítřejším výnosem.
  • Nejpoužívanějším modelem je AR(1):
    • AR(1) označuje autoregresní model řádu 1.
    • Předpovídá příští výnos pomocí odchylky výnosu od jeho dlouhodobé střední hodnoty $\mu$:

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$

GARCH modely v R

Kladný autoregresní koeficient

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$

  • $\rho > 0$:
    • Nadprůměrný (resp. podprůměrný) výnos je následován nadprůměrným (resp. podprůměrným) výnosem.
    • Možné vysvětlení: trhy podreagují na zprávy, a proto existuje momentum výnosů.
  • $|\rho|<1$: Návrat k průměru: Odchylky $R_t$ od $\mu$ jsou přechodné.
GARCH modely v R

Záporný autoregresní koeficient

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$

  • $\rho < 0$:
    • Nadprůměrný (resp. podprůměrný) výnos je následován podprůměrným (resp. nadprůměrným) výnosem.
    • Možné vysvětlení: trhy přereagují na zprávy, a proto dochází k reverzi výnosů.
GARCH modely v R

Aplikace na denní výnosy S&P 500

Specifikace a odhadnutí AR(1)-GJR GARCH s rozdělením sst

garchspec <- ugarchspec( 
          mean.model = list(armaOrder = c(1, 0)),
          variance.model = list(model = "gjrGARCH"),
          distribution.model = "sstd")
garchfit <- ugarchfit(data = sp500ret, spec = garchspec)

Odhady modelu AR(1)

round(coef(garchfit)[1:2], 4)
     mu     ar1     
 0.0003 -0.0292
GARCH modely v R

Modely MA(1) a ARMA(1,1)

Model klouzavého průměru řádu 1 využívá odchylku výnosu od podmíněné střední hodnoty:

$$ \mu_{t} = \mu + \theta(R_{t-1} - \mu_{t-1}) $$

ARMA(1,1) kombinuje AR(1) a MA(1):

$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) + \theta(R_{t-1} - \mu_{t-1}) $$

GARCH modely v R

Jak na to?

MA(1)

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

ARMA(1, 1)

garchspec <- ugarchspec( 
          mean.model = list(armaOrder = c(1, 1)),
          variance.model = list(model = "gjrGARCH"),
          distribution.model = "sstd")
GARCH modely v R

Váš úkol: změňte argument mean.model

GARCH modely v R

Preparing Video For Download...