Modely GARCH: Cesta vpřed

GARCH modely v R

Kris Boudt

Professor of finance and econometrics

Tvůrci modelů GARCH

Robert Engle

Engle

Tim Bollerslev

Bollie

GARCH modely v R

Notace (i)

  • Vstup: časová řada výnosů

Predikované volatility

GARCH modely v R

Notace (ii)

  • V čase $t-1$ předpovídáte budoucí výnos $R_t$ na základě informační množiny dostupné v čase $t-1$:

Predikované volatility

GARCH modely v R

Notace (iii)

  • Predikce průměrného výnosu: jaká je nejlepší možná predikce skutečného výnosu? Predikované volatility
GARCH modely v R

Notace (iv)

  • Poté predikujeme rozptyl: jak daleko může být výnos od svého průměru? Predikované volatility
GARCH modely v R

Od teorie k praxi: Modely průměru

  • Potřebujeme rovnici, která mapuje minulé výnosy na predikci průměru Predikované volatility

Pro AR(MA) modely průměru viz kurz Datacamp o analýze časových řad.

GARCH modely v R

Od teorie k praxi: Modely rozptylu

  • Potřebujeme rovnici, která mapuje minulé výnosy na predikce rozptylu Predikované volatility
GARCH modely v R

Model ARCH(p): Autoregresivní podmíněná heteroskedasticita

  • Potřebujeme rovnici, která mapuje minulé výnosy na predikce rozptylu Predikované volatility
GARCH modely v R

Model GARCH(1,1): Zobecněný ARCH

  • Potřebujeme rovnici, která mapuje minulé výnosy na predikce rozptylu Predikované volatility
GARCH modely v R

Omezení parametrů

Aby byl proces GARCH realistický, musí platit:

  1. $\omega$, $\alpha$ a $\beta$ jsou $>0$: zajišťuje, že $\sigma^2_t >0$ vždy.

  2. $\alpha + \beta < 1$: zajišťuje, že predikovaný rozptyl $\sigma^2_t$ se vždy vrátí k dlouhodobému rozptylu:

    • Rozptyl je tedy „mean-reverting"
    • Dlouhodobý rozptyl se rovná $ \frac{\omega}{1-\alpha-\beta}$
GARCH modely v R

Implementace v R – zadání vstupů

  • Seznámíme se s rovnicemi GARCH pomocí kódu v R:

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

# Set parameter values
alpha <- 0.1
beta <- 0.8
omega <- var(sp500ret) * (1 - alpha - beta)
# Then: var(sp500ret) = omega / (1 - alpha - beta)
# Set series of prediction error
e <- sp500ret - mean(sp500ret) # Constant mean
e2 <- e ^ 2
GARCH modely v R

Implementace v R – výpočet predikovaných rozptylů

# We predict for each observation its variance. 
nobs <- length(sp500ret)
predvar <- rep(NA, nobs)
# Initialize the process at the sample variance
predvar[1] <- var(sp500ret)
# Loop starting at 2 because of the lagged predictor
for (t in 2:nobs){
   predvar[t] <- omega + alpha * e2[t - 1] + beta * predvar[t-1]
}
GARCH modely v R

Implementace v R – graf volatility GARCH

# Volatility is sqrt of predicted variance
predvol <- sqrt(predvar)
predvol <- xts(predvol, order.by = time(sp500ret))
# We compare with the unconditional volatility
uncvol <- sqrt(omega / (1 - alpha-beta))
uncvol <- xts(rep(uncvol, nobs), order.by = time(sp500ret))
# Plot
plot(predvol)
lines(uncvol, col = "red", lwd = 2)
GARCH modely v R

Predikované volatility

GARCH modely v R

Pojďme si procvičit!

GARCH modely v R

Preparing Video For Download...