GARCH-Modelle in R
Kris Boudt
Professor of finance and econometrics
Robert Engle

Tim Bollerslev






Zu AR(MA)-Modellen für das Mittel siehe den Datacamp-Kurs zur Zeitreihenanalyse.



Damit der GARCH-Prozess realistisch ist, gilt:
$\omega$, $\alpha$ und $\beta$ sind $>0$: Das stellt sicher, dass $\sigma^2_t$ immer $>0$ ist.
$\alpha + \beta < 1$: Das stellt sicher, dass die prognostizierte Varianz $\sigma^2_t$ stets zur langfristigen Varianz zurückkehrt:
$$ \sigma^{2}_{t} = \omega + \alpha e^{2}_{t-1} \beta \sigma^{2}_{t-1} $$
# Parameterwerte setzen
alpha <- 0.1
beta <- 0.8
omega <- var(sp500ret) * (1 - alpha - beta)
# Dann: var(sp500ret) = omega / (1 - alpha - beta)
# Reihe der Prognosefehler setzen
e <- sp500ret - mean(sp500ret) # Konstanter Mittelwert
e2 <- e ^ 2
# Für jede Beobachtung die Varianz prognostizieren.
nobs <- length(sp500ret)
predvar <- rep(NA, nobs)
# Prozess mit der Stichprobenvarianz initialisieren
predvar[1] <- var(sp500ret)
# Schleife ab 2 wegen verzögertem Prädiktor
for (t in 2:nobs){
predvar[t] <- omega + alpha * e2[t - 1] + beta * predvar[t-1]
}
# Volatilität ist die Wurzel der prognostizierten Varianz
predvol <- sqrt(predvar)
predvol <- xts(predvol, order.by = time(sp500ret))
# Vergleich mit der unbedingten Volatilität
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-Modelle in R