Các mô hình GARCH trong R
Kris Boudt
Professor of finance and econometrics
Nếu hai lợi nhuận tài sản $R_{1,t}$ và $R_{2,t}$ có tương quan $\rho$ và độ biến động thay đổi theo thời gian $\sigma_{1,t}$ và $\sigma_{2,t}$, thì hiệp phương sai của chúng là:
$$ \sigma_{12, t} = \rho \sigma_{1, t} \sigma_{2, t} $$
Bước 1: Dùng ugarchfit() để ước lượng mô hình GARCH cho mỗi chuỗi lợi nhuận.
msftgarchfit <- ugarchfit(data = msftret, spec = garchspec)
wmtgarchfit <- ugarchfit(data = wmtret, spec = garchspec)
Bước 2: Dùng residuals() để tính lợi nhuận đã chuẩn hóa.
stdmsftret <- residuals(msftgarchfit, standardize = TRUE)
stdwmtret <- residuals(wmtgarchfit, standardize = TRUE)
Bước 3: Dùng cor() để ước lượng $\rho$ là tương quan mẫu của các lợi nhuận đã chuẩn hóa.
msftwmtcor <- as.numeric(cor(stdmsftret, stdwmtret)) # equals 0.298795
Bước 4: Tính hiệp phương sai GARCH bằng cách nhân tương quan và các độ biến động ước lượng
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)

Phương sai danh mục gồm hai tài sản với tỷ trọng $w_{1,t}$ đầu tư vào tài sản 1 và $(1-w_{1,t})$ vào tài sản 2:
$$ \sigma^{2}_{p, t} = w^{2}_{1, t} \sigma^{2}_{1, t} + (1 - w_{1, t})^{2} \sigma^{2}_{2, t} + 2 w_{1, t} (1 - w_{1, t}) \sigma_{12, t} $$
Có nhiều cách xác định $w_{1,t}$ tối ưu. Một cách là chọn $w_{1,t}$ sao cho phương sai danh mục $\sigma_{t}^2$ được tối thiểu hóa.
Điều kiện bậc một để tìm danh mục phương sai tối thiểu:
$$ \frac{\partial \sigma^{2}_{p, t}}{\partial w_{1, t}} = 2 w_{1, t} (\sigma^{2}_{1, t} + \sigma^{2}_{2, t} - 2 \sigma_{12, t}) - 2 (\sigma^{2}_{2, t} - \sigma_{12, t}) = 0 $$
Nghiệm: 
Tính toán trong R:
msftvar <- sigma(msftgarchfit) ^ 2
wmtvar <- sigma(wmtgarchfit) ^ 2
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)
msftweight <- (wmtvar - msftwmtcov) / (msftvar + wmtvar - 2 * msftwmtcov)

Ước lượng beta của cổ phiếu là rủi ro hệ thống của cổ phiếu
Được định nghĩa là hiệp phương sai giữa lợi nhuận cổ phiếu và lợi nhuận thị trường, chia cho phương sai của lợi nhuận thị trường
$$ \beta_{t} = \frac{\textnormal{covariance between the stock return and the market return}}{\textnormal{variance of the market return}} $$
Cần để tính phần bù rủi ro. Beta càng cao, cổ phiếu càng rủi ro và tỷ suất sinh lời yêu cầu càng lớn.
Với cổ phiếu Mỹ, lợi nhuận thị trường là lợi nhuận của S&P 500.
Tính hiệp phương sai giữa lợi nhuận MSFT và S&P 500
msftsp500cor <- as.numeric(cor(stdmsftret, stdsp500ret))
msftsp500cov <- msftsp500cor * sigma(msftgarchfit) * sigma(sp500garchfit)
Tính phương sai lợi nhuận S&P 500
sp500var <- sigma(sp500garchfit) ^ 2
Tính beta
msftbeta <- msftsp500cov / sp500var

Các mô hình GARCH trong R