Gói rugarch

Các mô hình GARCH trong R

Kris Boudt

Professor of finance and econometrics

Mô hình GARCH(1,1) chuẩn với trung bình không đổi

Mô hình GARCH chuẩn

$$ R_t = \mu + e_t $$ $$ e_t \sim N(0, \sigma^2_t) $$ $$ \sigma^2_t = \omega + \alpha e^2_{t-1} + \beta \sigma^2_{t-1} $$

  • Bốn tham số: $\mu, \omega, \alpha, \beta$.
  • Ước lượng bằng hợp lý cực đại: tìm bộ tham số khiến mô hình GARCH có khả năng cao nhất sinh ra chuỗi lợi nhuận đã quan sát.
Các mô hình GARCH trong R

Alexios Ghalanos

library(rugarch)
citation("rugarch")

Khi trích dẫn gói rugarch, vui lòng dùng: Alexios Ghalanos (2018). rugarch: Univariate GARCH models. R package version 1.4-0.
Các mô hình GARCH trong R

Quy trình

  • Ba bước:

    • ugarchspec(): Chỉ định mô hình GARCH muốn dùng (trung bình $\mu_t$, phương sai $\sigma^2_t$, phân phối của $e_t$)

      • ugarchfit(): Ước lượng mô hình GARCH trên chuỗi thời gian lợi nhuận $R_1,...,R_T$.

      • ugarchforecast(): Dùng mô hình đã ước lượng để dự báo biến động cho $R_{T+1}$,...

Các mô hình GARCH trong R

Quy trình trong R

ugarchspec() chỉ định mô hình GARCH bạn muốn dùng.

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                           variance.model = list(model = "sGARCH"),
                           distribution.model = "norm")

ugarchfit() ước lượng mô hình GARCH.

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

ugarchforecast() dự báo độ biến động của lợi nhuận tương lai.

garchforecast <- ugarchforecast(fitORspec = garchfit, n.ahead = 5)
Các mô hình GARCH trong R

Đối tượng ugarchfit

  • ugarchfit trả về một đối tượng chứa toàn bộ kết quả ước lượng mô hình GARCH.
  • Các phương thức coef, uncvar, fitted và sigma:
# Hệ số
garchcoef <- coef(garchfit)
# Phương sai vô điều kiện
garchuncvar <- uncvariance(garchfit)
# Trung bình dự báo
garchmean <- fitted(garchfit) 
# Độ biến động dự báo
garchvol <- sigma(garchfit)

Các mô hình GARCH trong R

Hệ số GARCH cho lợi nhuận S&P 500 hằng ngày

print(garchcoef)
          mu        omega       alpha1        beta1 
5.728020e-04 1.220515e-06 7.792031e-02 9.111455e-01 

$$ R_{t} = 5.7 \times 10^{-4} + e_{t} $$ $$ e_{t} \sim N(0, \hat{\sigma}^{2}_{t}) $$ $$ \hat{\sigma}^{2}_{t} = 1.2 \times 10^{-6} + 0.08 e^{2}_{t-1} + 0.91 \hat{\sigma}^{2}_{t-1} $$

sqrt(garchuncvar)
0.01056519
Các mô hình GARCH trong R

Độ biến động ước lượng

garchvol <- sigma(garchfit)
plot(garchvol)

Các mô hình GARCH trong R

Còn biến động tương lai thì sao?

tail(garchvol, 1)
2017-12-29 0.004862908

Còn độ biến động cho các ngày sau khi chuỗi thời gian kết thúc thì sao?

Các mô hình GARCH trong R

Dự báo biến động h ngày tới

  • Áp dụng phương thức sigma() lên đối tượng ugarchforecast sẽ cho dự báo độ biến động:
sigma(garchforecast)
      2017-12-29
T+1  0.005034754
T+2  0.005127582
T+3  0.005217770
T+4  0.005305465
T+5  0.005390797
Các mô hình GARCH trong R

Dự báo biến động h ngày tới

Áp dụng phương thức fitted() lên đối tượng ugarchforecast sẽ cho dự báo trung bình:

fitted(garchforecast)
      2017-12-29
T+1  0.000572802
T+2  0.000572802
T+3  0.000572802
T+4  0.000572802
T+5  0.000572802
Các mô hình GARCH trong R

Ứng dụng vào phân bổ tài sản theo chiến thuật

Một danh mục đầu tư tỷ trọng $w$ vào tài sản rủi ro (độ biến động $\sigma_t$) và giữ $1-w$ trong tiền gửi phi rủi ro có độ biến động bằng

$$ \sigma_p = w \sigma_t$$

Chọn $w$ thế nào? Một cách là nhắm mục tiêu biến động: đặt $w$ sao cho độ biến động năm hoá dự báo của danh mục bằng mức mục tiêu, ví dụ 5%. Khi đó:

$$ w^* = 0.05 /\sigma_t $$

Vì độ biến động GARCH thay đổi, tỷ trọng tối ưu cũng thay đổi theo.

Các mô hình GARCH trong R

Hãy khám phá rugarch!

Các mô hình GARCH trong R

Preparing Video For Download...