Các mô hình GARCH trong R
Kris Boudt
Professor of finance and econometrics
Robert Engle

Tim Bollerslev






Với các mô hình AR(MA) cho trung bình, xem khóa học Datacamp về phân tích chuỗi thời gian.



Để quá trình GARCH thực tế hơn, cần:
$\omega$, $\alpha$ và $\beta$ đều $>0$: đảm bảo $\sigma^2_t >0$ mọi thời điểm.
$\alpha + \beta < 1$: đảm bảo phương sai dự báo $\sigma^2_t$ luôn quay về phương sai dài hạn:
$$ \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
# 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]
}
# 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)

Các mô hình GARCH trong R