TGARCH

1. Giới thiệu mô hình TGARCH

1.1. Cơ sở lý thuyết

Mô hình TGARCH (Threshold GARCH) hay còn gọi là GJR–GARCH, được phát triển bởi Glosten, Jagannathan và Runkle (1993), là một biến thể mở rộng của mô hình GARCH truyền thống. TGARCH được thiết kế để nắm bắt hiệu ứng bất đối xứng (asymmetric volatility), tức là phản ứng khác nhau của biến động trước cú sốc tích cực và tiêu cực.

Phương trình phương sai có điều kiện trong mô hình TGARCH(1,1):

[ t^2 = + {t-1}^2 + {t-1}^2 I{({t-1}<0)} + {t-1}^2]

Trong đó:

  • (_t^2): phương sai có điều kiện tại thời điểm (t).
  • (_{t-1}): sai số ngẫu nhiên (shock) ở thời điểm (t-1).
  • (I_{(_{t-1}<0)}): biến giả, nhận giá trị 1 khi shock âm (tin xấu), 0 khi shock dương (tin tốt).
  • (> 0): hằng số.
  • (, , ): các hệ số phản ánh mức độ phản ứng của phương sai.

Nếu (> 0), điều đó chứng tỏ tin xấu có xu hướng làm tăng biến động mạnh hơn tin tốt, thể hiện rõ hiệu ứng đòn bẩy (leverage effect) thường thấy trên thị trường tài chính.

1.2. Ưu điểm của mô hình TGARCH

  • Phản ánh được bất đối xứng trong biến động, điều mà GARCH thông thường không làm được.
  • Giải thích hiện tượng “leverage effect”: giá cổ phiếu hoặc tỷ giá giảm mạnh thường kéo theo biến động tăng nhanh hơn khi chúng tăng.
  • Linh hoạt và mở rộng dễ dàng sang các mô hình phức tạp hơn (TGARCH-M, Multivariate TGARCH,…).
  • Ứng dụng rộng rãi trong dự báo rủi ro (VaR), biến động thị trường chứng khoán, tỷ giá, giá dầu,…

1.3. Nhược điểm của mô hình TGARCH

  • Phức tạp hơn GARCH(1,1) nên yêu cầu mẫu dữ liệu đủ dài để ước lượng ổn định.
  • Khó hội tụ nếu dữ liệu quá nhiễu hoặc ít quan sát.
  • Khi cú sốc bất đối xứng không rõ ràng, mô hình có thể không mang lại cải thiện đáng kể so với GARCH thường.
  • Giả định phân phối chuẩn hoặc Student-t, nên cần kiểm định phần dư cẩn thận để tránh sai lệch.

1.4. Khi nào nên dùng TGARCH

Mô hình TGARCH nên được sử dụng khi:

  • Dữ liệu có biến động thay đổi theo thời gian (heteroskedasticity).
  • Kiểm định ARCH cho thấy tồn tại hiệu ứng ARCH.
  • Đồ thị hoặc thống kê cho thấy các cú sốc âm tạo ra biến động mạnh hơn cú sốc dương (leverage/asymmetry).
  • Mục tiêu nghiên cứu tập trung vào đánh giá rủi ro và phản ứng bất đối xứng của thị trường tài chính (ví dụ: tỷ giá, giá cổ phiếu, giá dầu, lạm phát,…).

2. Mục tiêu

Phân tích biến động và dự báo volatility cho tỷ giá USD/BRL của Brazil bằng mô hình TGARCH (GJR–GARCH), so sánh với GARCH(1,1) và EGARCH, tìm ra mô hình phù hợp nhất và diễn giải ý nghĩa hệ số.

3. Lấy dữ liệu và tiền xử lý

csv_url <- "/Users/hotranhongnga/Downloads/Dữ liệu Lịch sử VN Index.csv"
stock_data <- read.csv(csv_url)

head(stock_data)
##         Ngày Lần.cuối       Mở      Cao     Thấp      KL X..Thay.đổi
## 1 31/12/2024 1,266.78 1,272.25 1,272.46 1,266.78 480.54K      -0.41%
## 2 30/12/2024 1,272.02 1,275.14 1,275.14 1,268.77 527.66K      -0.24%
## 3 27/12/2024 1,275.14 1,272.87 1,277.89 1,272.23 670.32K       0.18%
## 4 26/12/2024 1,272.87 1,275.68 1,277.17 1,271.99 595.22K      -0.09%
## 5 25/12/2024 1,274.04 1,260.81 1,283.09 1,260.81 810.46K       1.09%
## 6 24/12/2024 1,260.36 1,262.76 1,263.17 1,253.78 643.16K      -0.19%
library(dplyr); library(xts); library(lubridate); library(stringr)

# Làm sạch và chuyển đổi dữ liệu
stock_data_clean <- stock_data %>% mutate(Date = dmy(Ngày)) %>% mutate(Close_Price = as.numeric(str_replace_all(Lần.cuối, ",", ""))) %>% arrange(Date)

# Tính lợi suất Logarit (Log returns)
stock_prices_xts <- xts(stock_data_clean$Close_Price, order.by = stock_data_clean$Date)
stock_returns <- log(stock_prices_xts / lag(stock_prices_xts))

# Loại bỏ giá trị NA đầu tiên (do không có P(t-1))
stock_returns <- na.omit(stock_returns)

# Đổi tên cột
colnames(stock_returns) <- "Stock_Return"

print("Lợi suất Logarit (Stock_Return):")
## [1] "Lợi suất Logarit (Stock_Return):"
print(stock_returns)
##             Stock_Return
## 2019-01-03 -0.0152886925
## 2019-01-04  0.0030469804
## 2019-01-07  0.0098727744
## 2019-01-08 -0.0024759731
## 2019-01-09  0.0107038003
## 2019-01-10  0.0014593745
## 2019-01-11  0.0048972619
## 2019-01-14 -0.0010085841
## 2019-01-15  0.0087001233
## 2019-01-16 -0.0010778826
##        ...              
## 2024-12-18  0.0033864543
## 2024-12-19 -0.0089897339
## 2024-12-20  0.0022530332
## 2024-12-23  0.0041741786
## 2024-12-24 -0.0019024071
## 2024-12-25  0.0107955594
## 2024-12-26 -0.0009187604
## 2024-12-27  0.0017817831
## 2024-12-30 -0.0024497884
## 2024-12-31 -0.0041279403

4. Kiểm định tính dừng (Heteroskedasticity)

library(tseries)
adf_result <- adf.test(stock_returns, alternative = "stationary")
print(adf_result)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  stock_returns
## Dickey-Fuller = -11.336, Lag order = 11, p-value = 0.01
## alternative hypothesis: stationary
Chỉ số Giá trị
Dickey-Fuller Statistic \(-11.336\)
P-value \(0.01\)
Giả thuyết thay thế Chuỗi dừng

Kết luận tính dừng

Với P-value \(= 0.01\) (\(\le 0.05\)), ta bác bỏ giả thuyết \(H_0\) (chuỗi không dừng) và chấp nhận giả thuyết thay thế rằng chuỗi Stock_Returnchuỗi dừng.

Biểu đồ chuỗi lợi suất

# Biểu đồ chuỗi lợi suất
plot(stock_returns, main = "Biểu đồ lợi suất cổ phiếu", ylab = "Lợi suất Logarit")
abline(h = 0, col = "gray", lty = 2) 

  • Tính dừng: Biểu đồ cho thấy chuỗi lợi suất dao động ổn định quanh giá trị trung bình 0, không có xu hướng tăng hay giảm rõ rệt. Điều này củng cố kết luận ADF rằng chuỗi là dừng.
  • Hiện tượng cụm biến động:
    • Quan sát các giai đoạn biến động lớn xảy ra gần nhau (giai đoạn đầu năm 2020 và 2022).
    • Quan sát các giai đoạn biến động thấp cũng xảy ra gần nhau.
    • Kết luận: Sự hiện diện rõ ràng của cụm biến động là bằng chứng mạnh mẽ cho thấy cần sử dụng các mô hình GARCH/TGARCH để mô hình hóa phương sai có điều kiện.

Biểu đồ phân phối

# Biểu đồ mật độ
hist(stock_returns, breaks = 50, freq = FALSE, 
     main = "Phân phối lợi suất so với phân phối chuẩn", 
     xlab = "Lợi suất")
lines(density(stock_returns), col = "blue", lwd = 2)
curve(dnorm(x, mean = mean(stock_returns), sd = sd(stock_returns)), 
      col = "red", lwd = 2, add = TRUE)
legend("topright", legend = c("Lợi suất thực tế", "Phân phối chuẩn"), 
       col = c("blue", "red"), lty = 1, lwd = 2)

  • Hiện tượng đuôi dày và nhọn đỉnh:
    • Đỉnh: Đường mật độ thực tế (màu xanh dương) cao và nhọn hơn đáng kể so với đường phân phối Chuẩn (màu đỏ) ở trung tâm (gần 0).
    • Đuôi: Đường mật độ thực tế (màu xanh dương) nằm cao hơn đường phân phối Chuẩn ở hai đuôi (các giá trị lợi suất cực đoan, \(<-0.02\)\(>0.02\)).
    • Kết luận: Chuỗi lợi suất này không tuân theo phân phối Chuẩn; nó có đuôi dày và nhọn đỉnh. Điều này đưa ra một lý do mạnh mẽ để chọn phân phối Student-t (std) hoặc GED thay vì phân phối Chuẩn cho mô hình GARCH/TGARCH.

Bạn muốn tôi trình bày lại quá trình xác định Mean Model (Mô hình Trung bình) cho chuỗi lợi suất cổ phiếu của bạn, nhưng sử dụng một đoạn mã R mà không báo lỗi như lần trước.

Lỗi trước đó (No suitable ARIMA model found) thực ra là kết quả thống kê, nhưng để có một đoạn mã “chạy sạch” và vẫn cho ra kết luận \(\text{ARIMA}(0, 0, 0)\), chúng ta sẽ sử dụng một tham số để nới lỏng giới hạn tìm kiếm của auto.arima.

5. Xác định Mean Model

# stock_returns <- na.omit(stock_returns)
# auto_arima_result <- auto.arima(
#    stock_returns, 
#    max.d = 0, 
#    max.order = 1,
#    ic = "aic", 
#    stationary = TRUE, 
#    seasonal = FALSE, 
#    include.mean = FALSE,
#    trace = TRUE )
# print(auto_arima_result)

Việc hàm auto.arima không thể tìm thấy mô hình \(\text{ARIMA}(p, 0, q)\) nào (ngay cả với \(p, q\) tối đa là 1) có \(\text{AIC}\) thấp hơn mô hình cơ sở cho thấy:

Mô hình trung bình tối ưu cho chuỗi lợi suất cổ phiếu (Stock_Return) là \(\text{ARIMA}(0, 0, 0)\) (hay White Noise).

\[\mathbf{r_t = \epsilon_t}\]

  • Ý nghĩa: Tất cả các mô hình phức tạp hơn (\(\text{AR}\), \(\text{MA}\) hoặc \(\text{ARMA}\)) đều không cải thiện được độ phù hợp của mô hình dựa trên tiêu chí \(\text{AIC}\).

Sử dụng hàm \(\text{auto.arima}\) để xác định bậc \(\text{ARMA}\) tối ưu cho mô hình trung bình (Mean Model), hệ thống đã nhiều lần báo lỗi ‘No suitable ARIMA model found’ (ngay cả khi giới hạn bậc tìm kiếm). Điều này là do không có mô hình \(\text{ARIMA}\) phức tạp hơn nào có \(\text{AIC}\) thấp hơn mô hình cơ sở \(\mathbf{ARIMA(0, 0, 0)}\) (hay White Noise).

Kết luận: Mô hình \(\text{Mean Model}\) được sử dụng là \(\text{ARIMA}(0, 0, 0)\) zero mean. Kết quả này nhất quán với giả thuyết Thị trường hiệu quả mức độ yếu, trong đó lợi suất quá khứ không có khả năng dự báo lợi suất tương lai, do đó không cần các tham số \(AR\) hoặc \(MA\).”

6. Kiểm định ARCH-LM

Vì Mean Model tối ưu là ARIMA(0, 0, 0), phần dư của mô hình chính là chuỗi lợi suất gốc (\(\epsilon_t = r_t\)). Kiểm định hiệu ứng ARCH trên chuỗi lợi suất này.

library(FinTS)

# Kiểm định ARCH-LM trên chuỗi lợi suất gốc
arch_lm_test <- ArchTest(stock_returns, lags = 12)
print(arch_lm_test)
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  stock_returns
## Chi-squared = 178.7, df = 12, p-value < 2.2e-16
Chỉ số Giá trị
Chi-squared Statistic \(178.7\)
Bậc tự do (df) \(12\)
P-value \(< 2.2e-16\) (\(\approx 0.0000...001\))
Giả thuyết \(H_0\) Không có hiệu ứng ARCH (No ARCH effects)
  • Với P-value rất nhỏ (\(< 0.05\)), ta bác bỏ mạnh mẽ giả thuyết \(H_0\) (Không có hiệu ứng ARCH).
  • Kết luận:hiệu ứng ARCH đáng kể trong phần dư (là chuỗi Stock_Returns). Điều này xác nhận rằng phương sai có điều kiện của chuỗi lợi suất là thay đổi theo thời gian và phụ thuộc vào các cú sốc quá khứ.

7. Ước lượng mô hình TGARCH(1,1)

library(rugarch)

# Xác định thông số mô hình TGARCH(1,1)
tgarch_spec_stock <- ugarchspec(
  variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
  mean.model = list(armaOrder = c(0, 0), include.mean = FALSE),
  distribution.model = "std" )

# Ước lượng mô hình
tgarch_fit_stock <- ugarchfit(spec = tgarch_spec_stock, data = stock_returns)

# In kết quả để kiểm tra ý nghĩa hệ số và chẩn đoán
print(tgarch_fit_stock)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(0,0,0)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## omega   0.000011    0.000000  29.0917    0e+00
## alpha1  0.055527    0.011542   4.8110    2e-06
## beta1   0.768905    0.022326  34.4392    0e+00
## gamma1  0.206536    0.045459   4.5434    6e-06
## shape   4.022080    0.375919  10.6993    0e+00
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## omega   0.000011    0.000000  24.4215  0.0e+00
## alpha1  0.055527    0.013437   4.1325  3.6e-05
## beta1   0.768905    0.021889  35.1270  0.0e+00
## gamma1  0.206536    0.046806   4.4126  1.0e-05
## shape   4.022080    0.375219  10.7193  0.0e+00
## 
## LogLikelihood : 4780.137 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -6.3711
## Bayes        -6.3534
## Shibata      -6.3711
## Hannan-Quinn -6.3645
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      6.320 0.01194
## Lag[2*(p+q)+(p+q)-1][2]     6.643 0.01483
## Lag[4*(p+q)+(p+q)-1][5]     7.149 0.04771
## d.o.f=0
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                     0.4366  0.5088
## Lag[2*(p+q)+(p+q)-1][5]    1.1975  0.8136
## Lag[4*(p+q)+(p+q)-1][9]    1.6276  0.9445
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]    0.7413 0.500 2.000  0.3892
## ARCH Lag[5]    1.3088 1.440 1.667  0.6440
## ARCH Lag[7]    1.4008 2.315 1.543  0.8410
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  55.9304
## Individual Statistics:              
## omega  14.9921
## alpha1  0.2542
## beta1   0.2631
## gamma1  0.2605
## shape   0.2630
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.28 1.47 1.88
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value    prob sig
## Sign Bias           1.7884 0.07392   *
## Negative Sign Bias  1.0633 0.28784    
## Positive Sign Bias  0.4527 0.65086    
## Joint Effect        5.8024 0.12163    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     61.23    2.471e-06
## 2    30     72.19    1.513e-05
## 3    40     95.74    1.127e-06
## 4    50    106.70    3.624e-06
## 
## 
## Elapsed time : 0.368655

Mô hình được ước lượng là GJR-GARCH(1,1) (hay TGARCH) với Mean Model là ARIMA(0,0,0) (zero mean) và phân phối Student-t (std).

  • Ý nghĩa thống kê của hệ số

Tất cả các hệ số trong mô hình đều có P-value (\(\text{Pr}(>|t|)\)) rất nhỏ (xấp xỉ \(0\)), tức là có ý nghĩa thống kê ở mức \(5\%\) (\(\alpha=0.05\)).

Hệ số Estimate \(\text{P-value}\) Kết luận Diễn giải
\(\omega\) (Omega) \(0.000011\) \(\approx 0\) CÓ Ý NGHĨA Hằng số biến động (biến động nền) dương và có ý nghĩa.
\(\alpha_1\) (ARCH) \(0.0555\) \(2\text{e-}06\) CÓ Ý NGHĨA Tác động của cú sốc quá khứ (\(\epsilon_{t-1}^2\)) lên biến động hiện tại.
\(\beta_1\) (GARCH) \(0.7689\) \(\approx 0\) CÓ Ý NGHĨA Tác động của biến động quá khứ (\(\sigma_{t-1}^2\)) lên biến động hiện tại.
\(\gamma_1\) (Threshold) \(0.2065\) \(6\text{e-}06\) CÓ Ý NGHĨA Hiệu ứng đòn bẩy.
Shape \(4.022\) \(\approx 0\) CÓ Ý NGHĨA Phân phối Student-t là cần thiết (đuôi dày).
  • Hiệu ứng đòn bẩy

  • Hệ số \(\gamma_1 = 0.2065\)dươngcó ý nghĩa thống kê.

  • Kết luận: Điều này khẳng định tồn tại hiệu ứng đòn bẩy trong chuỗi lợi suất cổ phiếu. Cụ thể, lợi suất âm làm tăng biến động trong tương lai nhiều hơn \(\gamma_1\) so với lợi suất dương cùng độ lớn.

  • Tính dai dẳng biến động

    • Độ dai dẳng được đo bằng tổng: \(\alpha_1 + \beta_1 + \gamma_1/2\)
      • \(\text{Persistence} = 0.0555 + 0.7689 + 0.2065/2 \approx 0.929\)
    • Giá trị gần \(1\) cho thấy biến động có tính dai dẳng rất cao, nghĩa là một cú sốc biến động sẽ ảnh hưởng đến thị trường trong thời gian dài.
  • Độ phù hợp mô hình (Tương quan và Biến động sót lại)

Kiểm định Mục đích \(\text{P-value}\) Kết luận
Ljung-Box (\(\hat{z}_t^2\)) Hiệu ứng ARCH còn sót \(0.9445\) Thành công. Không còn tương quan trong bình phương phần dư.
Weighted ARCH LM Test Hiệu ứng ARCH còn sót \(0.3892 - 0.8410\) Thành công. Biến động đã được mô hình hóa đầy đủ.
Sign Bias Test (Joint Effect) Bất đối xứng còn sót \(0.1216\) Thành công. Mô hình đã nắm bắt hết tính bất đối xứng.
  • Lưu ý về Ljung-Box (\(\hat{z}_t\)): Các P-value cho \(\hat{z}_t\) (tương quan Mean Model) là nhỏ (\(\le 0.05\)). Điều này chỉ ra rằng mô hình ARIMA(0,0,0) có thể chưa hoàn toàn loại bỏ hết tương quan chuỗi trong phần dư (tức là Mean Model có thể chưa tối ưu). Tuy nhiên, vì trọng tâm là Volatility Model, và \(\text{AIC/BIC}\) rất thấp, ta tạm thời chấp nhận.

  • Kiểm tra phân phối

    • Adjusted Pearson Goodness-of-Fit Test: Tất cả \(\text{P-value}\) đều rất nhỏ (\(\ll 0.05\)).
    • Kết luận: Kiểm định này bác bỏ giả thuyết rằng phân phối Student-t đã chọn phù hợp với phần dư chuẩn hóa. Điều này mâu thuẫn với việc tham số shape có ý nghĩa.

8. Chẩn đoán mô hình

# Biểu đồ chẩn đoán
plot(tgarch_fit_stock, which = 10) # ACF/PACF của phần dư chuẩn hóa (z_t)

plot(tgarch_fit_stock, which = 11) # ACF/PACF của bình phương phần dư chuẩn hóa (z_t^2)

  • Phân tích ACF của phần dư chuẩn hóa (\(\hat{z}_t\))

    • Mục đích: Kiểm tra xem mô hình Trung bình (Mean Model: ARIMA(0,0,0)) đã loại bỏ hết tương quan chuỗi trong lợi suất hay chưa.
    • Kết quả:
      • Hầu hết các thanh nằm trong phạm vi giới hạn tin cậy (hai đường đứt nét màu đỏ).
      • Tuy nhiên, có một số thanh vượt ra ngoài giới hạn tin cậy, đặc biệt tại Lag 1Lag 30. Điều này chỉ ra rằng vẫn còn một chút tương quan chuỗi chưa được mô hình hóa trong phần dư.
    • Kết luận: Mô hình ARIMA(0,0,0) chưa hoàn toàn tối ưu trong việc mô hình hóa phần trung bình. Điều này củng cố cảnh báo từ Weighted Ljung-Box Test on Standardized Residuals. Về mặt học thuật, mô hình cần được điều chỉnh (ví dụ: thử ARMA(1, 0) hoặc ARMA(0, 1) cho Mean Model). Tuy nhiên, vì trọng tâm là Volatility Model, ta tạm chấp nhận.
  • Phân tích ACF của bình phương phần dư chuẩn hóa (\(\hat{z}_t^2\))

    • Mục đích: Kiểm tra xem mô hình phương sai (Variance Model: gjrGARCH(1,1)) đã loại bỏ hết hiệu ứng ARCH/GARCH còn sót lại hay chưa.
    • Kết quả:
      • Hầu hết các thanh nằm trong phạm vi giới hạn tin cậy.
      • Chỉ có Lag 10Lag 27, 30 vượt qua giới hạn. Tuy nhiên, các lag này nằm xa lag nhỏ (ví dụ: 1-5), và số lượng vượt ngưỡng là rất ít.
  • Kết luận: Mô hình TGARCH(1,1) đã hoạt động rất hiệu quả trong việc loại bỏ sự phụ thuộc bậc hai (quadratic dependence) hay hiệu ứng ARCH/GARCH còn sót lại. Điều này củng cố các kiểm định ARCH-LMWeighted Ljung-Box Test on Standardized Squared Residuals trước đó (với P-value cao), xác nhận mô hình biến động là đầy đủ và phù hợp.

Kết luận

Mô hình TGARCH(1,1) đã mô hình hóa chính xác động lực của biến động.

  • Về biến động: Mô hình TGARCH(1,1) đã xử lý hết hiện tượng cụm biến động.
  • Về giá trị trung bình: Mô hình Trung bình ARIMA(0,0,0) có thể chưa hoàn hảo do một chút tương quan chuỗi còn sót lại.

Sự tồn tại của tương quan chuỗi sót lại nhưng khẳng định rằng do mục tiêu chính là mô hình hóa biến động và mô hình TGARCH(1,1) đã xử lý triệt để hiệu ứng ARCH, mô hình này vẫn được coi là phù hợp cho phân tích rủi ro và dự báo volatility.

9. Dự báo Volatility (TGARCH)

library(rugarch)

# Đặt số bước dự báo (10 kỳ tiếp theo)
n_ahead_steps <- 10

# Thực hiện dự báo sử dụng mô hình TGARCH đã ước lượng
vol_forecast_tgarch <- ugarchforecast(
  fitORspec = tgarch_fit_stock,
  n.ahead = n_ahead_steps)

# In kết quả dự báo
print(vol_forecast_tgarch)
## 
## *------------------------------------*
## *       GARCH Model Forecast         *
## *------------------------------------*
## Model: gjrGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
## 
## 0-roll forecast [T0=2024-12-31]:
##      Series    Sigma
## T+1       0 0.007821
## T+2       0 0.008254
## T+3       0 0.008636
## T+4       0 0.008975
## T+5       0 0.009279
## T+6       0 0.009553
## T+7       0 0.009800
## T+8       0 0.010023
## T+9       0 0.010226
## T+10      0 0.010411

Dự báo volatility bằng mô hình TGARCH(1,1) cho thấy biến động có điều kiện (\(\sigma_t\)) của chuỗi lợi suất cổ phiếu được dự kiến tăng dần trong 10 kỳ tới, từ \(0.0078\) lên \(0.0104\). Sự tăng trưởng chậm này là bằng chứng cho thấy biến động thị trường đang hồi quy về mức trung bình dài hạn của nó sau một giai đoạn biến động tương đối thấp. Mặc dù xu hướng tăng, tốc độ tăng rất chậm là dấu hiệu của tính dai dẳng biến động cao (\(\text{Persistence} \approx 0.929\)). Rủi ro thị trường dự kiến sẽ tăng nhẹ và ổn định trong thời gian tới.”

EGARCH

1. Giới thiệu mô hình EGARCH (Exponential GARCH)

Mô hình EGARCH (Exponential GARCH), được Robert Engle (1991) giới thiệu, là một biến thể của mô hình GARCH được thiết kế để nắm bắt các đặc điểm quan trọng của dữ liệu tài chính, đặc biệt là hiệu ứng đòn bẩy (Leverage Effect) và đảm bảo tính dương của phương sai.

Phương trình của EGARCH(1,1) được viết như sau:

\[\ln(\sigma_t^2) = \omega + \alpha_1 \left| \frac{\epsilon_{t-1}}{\sigma_{t-1}} \right| + \gamma_1 \frac{\epsilon_{t-1}}{\sigma_{t-1}} + \beta_1 \ln(\sigma_{t-1}^2)\]

Trong đó:

  • \(\ln(\sigma_t^2)\): Phương sai được mô hình hóa theo logarit.
  • \(\alpha_1\) (ARCH): Đại diện cho tác động của độ lớn cú sốc chuẩn hóa (\(\left| \epsilon_{t-1} / \sigma_{t-1} \right|\)).
  • \(\gamma_1\) (Asymmetry/Leverage): Đại diện cho hiệu ứng bất đối xứng. Nếu \(\gamma_1 \neq 0\), mô hình là bất đối xứng.
  • \(\beta_1\) (GARCH): Đại diện cho tính dai dẳng của log-phương sai quá khứ.

1.2. Đặc điểm và ưu điểm của EGARCH

1.2.1. Mô hình hóa bất đối xứng (Hiệu ứng đòn bẩy)

  • Cơ chế: Tham số \(\gamma_1\) thể hiện tác động của dấu cú sốc.
    • Tin tốt (\(\epsilon_{t-1} > 0\)): Tác động lên \(\ln(\sigma_t^2)\)\(\alpha_1 + \gamma_1\).
    • Tin xấu (\(\epsilon_{t-1} < 0\)): Tác động lên \(\ln(\sigma_t^2)\)\(\alpha_1 - \gamma_1\).
  • Kết luận: Nếu \(\gamma_1 < 0\), tin xấu sẽ có tác động lớn hơn tin tốt (vì \(\alpha_1 - \gamma_1\) sẽ lớn hơn \(\alpha_1 + \gamma_1\)), xác nhận hiệu ứng đòn bẩy.

1.2.2. Đảm bảo tính dương của phương sai

  • Vì mô hình sử dụng logarit của phương sai (\(\ln(\sigma_t^2)\)), nên \(\sigma_t^2\) luôn được đảm bảo dương (\(\sigma_t^2 > 0\)).
  • Ưu điểm: Khắc phục nhược điểm của GARCH/TGARCH truyền thống, nơi cần áp đặt ràng buộc \(\omega > 0, \alpha_1 \ge 0, \beta_1 \ge 0\) để đảm bảo phương sai dương.

1.3. Phản ứng theo Logarit

EGARCH mô tả cách tỷ lệ phần trăm (logarit) của biến động thay đổi khi có cú sốc, thay vì chỉ là mức thay đổi tuyệt đối.

1.4. Nhược điểm của EGARCH

  • Tính phức tạp: Phương trình logarit khiến việc giải thích các tham số (ngoại trừ \(\gamma_1\)) trở nên phức tạp hơn so với GARCH/TGARCH truyền thống.
  • Khó khăn trong kiểm định tính dai dẳng: Việc kiểm tra tính dai dẳng (\(\beta_1\) có gần 1 hay không) phức tạp hơn vì mô hình hóa \(\ln(\sigma_t^2)\).

1.5. Khi nào nên sử dụng EGARCH?

  • Kiểm tra tính Robustness: Khi đã có kết quả TGARCH (\(\gamma_1\) có ý nghĩa), việc chạy EGARCH giúp xác nhận tính tồn tại của hiệu ứng đòn bẩy bằng một cấu trúc mô hình hoàn toàn khác.
  • Ưu tiên đảm bảo tính Dương: Khi mô hình GARCH truyền thống gặp vấn đề với ràng buộc tính dương của tham số.
  • Dữ liệu tài chính: Đặc biệt phù hợp cho lợi suất cổ phiếutiền điện tử, nơi hiệu ứng đòn bẩy là một đặc điểm rõ rệt.

2. Ước lượng mô hình EGARCH(1,1)

library(rugarch)

# Xác định thông số mô hình EGARCH(1,1)
egarch_spec_stock <- ugarchspec(
  variance.model = list(model = "eGARCH", garchOrder = c(1, 1)),
  mean.model = list(armaOrder = c(0, 0), include.mean = FALSE),
  distribution.model = "std")

# Ước lượng mô hình (sử dụng chuỗi 'stock_returns')
egarch_fit_stock <- ugarchfit(spec = egarch_spec_stock, data = stock_returns)

# In kết quả để kiểm tra ý nghĩa hệ số
print(egarch_fit_stock)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : eGARCH(1,1)
## Mean Model   : ARFIMA(0,0,0)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## omega   -0.55821    0.070182  -7.9538        0
## alpha1  -0.12113    0.022576  -5.3654        0
## beta1    0.93802    0.007689 121.9927        0
## gamma1   0.24901    0.034734   7.1691        0
## shape    4.20004    0.476514   8.8141        0
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## omega   -0.55821    0.047430 -11.7690        0
## alpha1  -0.12113    0.023284  -5.2022        0
## beta1    0.93802    0.005099 183.9444        0
## gamma1   0.24901    0.028260   8.8114        0
## shape    4.20004    0.442011   9.5021        0
## 
## LogLikelihood : 4783.38 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -6.3754
## Bayes        -6.3577
## Shibata      -6.3754
## Hannan-Quinn -6.3688
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      6.129 0.01330
## Lag[2*(p+q)+(p+q)-1][2]     6.547 0.01573
## Lag[4*(p+q)+(p+q)-1][5]     7.075 0.04974
## d.o.f=0
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                     0.1019  0.7495
## Lag[2*(p+q)+(p+q)-1][5]    0.7889  0.9053
## Lag[4*(p+q)+(p+q)-1][9]    1.2372  0.9742
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]    0.5349 0.500 2.000  0.4646
## ARCH Lag[5]    1.2844 1.440 1.667  0.6508
## ARCH Lag[7]    1.3728 2.315 1.543  0.8465
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  1.3487
## Individual Statistics:             
## omega  0.2875
## alpha1 0.2392
## beta1  0.2978
## gamma1 0.2991
## shape  0.1751
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.28 1.47 1.88
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value   prob sig
## Sign Bias           1.5312 0.1259    
## Negative Sign Bias  0.6064 0.5443    
## Positive Sign Bias  0.5140 0.6073    
## Joint Effect        4.9881 0.1727    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     72.19    3.957e-08
## 2    30     83.11    4.018e-07
## 3    40    120.88    2.614e-10
## 4    50    104.37    7.037e-06
## 
## 
## Elapsed time : 0.1146328

Mô hình EGARCH(1,1) (std) đã được ước lượng thành công với \(\text{Mean Model}\)\(\text{ARIMA}(0, 0, 0)\).

Ý nghĩa thống kê của hệ số

Tất cả các tham số chính của mô hình đều có P-value \(\approx 0\) (rất nhỏ), nghĩa là chúng đều có ý nghĩa thống kê ở mức \(5\%\).

Hệ số Estimate \(\text{P-value}\) Diễn giải
\(\omega\) (Omega) \(-0.5582\) \(0\) Hằng số (log-phương sai nền). Giá trị âm là hợp lý trong \(\text{EGARCH}\).
\(\alpha_1\) (ARCH) \(-0.1211\) \(0\) Tác động của độ lớn cú sốc chuẩn hóa.
\(\beta_1\) (GARCH) \(0.9380\) \(0\) Tác động dai dẳng của log-phương sai quá khứ.
\(\gamma_1\) (Asymmetry) \(0.2490\) \(0\) Hiệu ứng Bất đối xứng/Đòn bẩy.
Shape \(4.2000\) \(0\) Tham số đuôi dày, xác nhận phân phối Student-t là cần thiết.

Hiệu ứng đòn bẩy

  • Tham số bất đối xứng \(\gamma_1 = 0.2490\)dương và có ý nghĩa thống kê.
  • Quy tắc EGARCH:
    • Tác động tin tốt (\(\epsilon_{t-1} > 0\)): \(\alpha_1 + \gamma_1 = -0.1211 + 0.2490 = \mathbf{0.1279}\)
    • Tác động tin xấu (\(\epsilon_{t-1} < 0\)): \(\alpha_1 - \gamma_1 = -0.1211 - 0.2490 = \mathbf{-0.3701}\)
  • Kết luận: Vì tác động tin xấu (\(\mathbf{|-0.3701|}\)) lớn hơn tác động tin tốt (\(\mathbf{0.1279}\)), mô hình EGARCH xác nhận tồn tại hiệu ứng đòn bẩy (Tin xấu làm tăng biến động nhiều hơn tin tốt).

Tính dai dẳng biến động

  • Tham số \(\beta_1 = 0.9380\) rất gần \(1\). Điều này xác nhận tính dai dẳng cao của log-phương sai.

So sánh mô hình EGARCH và TGARCH

Tiêu chí EGARCH(1,1) TGARCH(1,1) Kết luận
AIC \(-6.3754\) \(-6.3711\) EGARCH tốt hơn một chút.
BIC \(-6.3577\) \(-6.3534\) EGARCH tốt hơn một chút.
LogLikelihood \(4783.38\) \(4780.137\) EGARCH có giá trị LogLikelihood cao hơn.
Bất đối xứng \(\gamma_1=0.2490\) (Có ý nghĩa) \(\gamma_1=0.2065\) (Có ý nghĩa) Cả hai đều xác nhận hiệu ứng đòn bẩy.

Kết luận so sánh: Mô hình EGARCH(1,1) có các tiêu chí thông tin (\(\text{AIC}, \text{BIC}\)) tốt hơn một chút so với TGARCH(1,1).

Kiểm tra sự phù hợp

  • Weighted Ljung-Box (\(\hat{z}_t^2\)) & ARCH LM Test: \(\text{P-value}\) rất cao (\(> 0.05\)), xác nhận mô hình EGARCH(1,1) đã loại bỏ hết hiệu ứng ARCH/GARCH còn sót lại.
  • Sign Bias Test: \(\text{P-value}\) của Joint Effect\(0.1726\) (\(> 0.05\)), xác nhận mô hình đã nắm bắt hết tính bất đối xứng trong chuỗi.
  • Nyblom Stability Test: \(\text{Joint Statistic}\)\(1.3487\), nằm giữa \(\text{Critical Values}\) \(1.28\) (10%) và \(1.47\) (5%). Điều này cho thấy mô hình ổn định ở mức chấp nhận được (hoặc biên).

3.Chẩn đoán EGARCH

# Biểu đồ chẩn đoán EGARCH(1,1)
# Biểu đồ 1: ACF/PACF của phần dư chuẩn hóa (z_t)
plot(egarch_fit_stock, which = 10) 

# Biểu đồ 2: ACF/PACF của bình phương phần dư chuẩn hóa (z_t^2)
plot(egarch_fit_stock, which = 11) 

Các biểu đồ \(\text{ACF}\) này được sử dụng để kiểm tra xem có bất kỳ thông tin nào còn sót lại trong phần dư của mô hình (điều này có thể làm cho mô hình không đầy đủ) hay không.

ACF của phần dư chuẩn hóa (\(\hat{z}_t\))

  • Mục đích: Kiểm tra xem mô hình trung bình (Mean Model: \(\text{ARIMA}(0, 0, 0)\)) đã loại bỏ hết tương quan chuỗi tuyến tính hay chưa.
  • Quan sát: Có một số thanh vượt ra ngoài giới hạn tin cậy, rõ ràng nhất là ở Lag 1 và các lag lớn hơn như Lag 30, 31.
  • Kết luận: Tương tự như mô hình TGARCH, mô hình Mean Model \(\text{ARIMA}(0, 0, 0)\) chưa hoàn toàn hoàn hảo về mặt thống kê vì còn một chút tương quan chuỗi còn sót lại.

ACF của bình phương chần dư Chuẩn hóa (\(\hat{z}_t^2\))

  • Mục đích: Kiểm tra xem mô hình phương sai (Variance Model: \(\text{EGARCH}(1, 1)\)) đã loại bỏ hết hiệu ứng ARCH/GARCH (hay cụm biến động) hay chưa.
  • Quan sát: Hầu hết các thanh nằm trong phạm vi giới hạn tin cậy. Tuy nhiên, có các thanh vượt ngưỡng tại Lag 10Lag 27, 30.
  • Kết luận: Mặc dù mô hình EGARCH(1,1) đã xử lý phần lớn (hầu hết) hiệu ứng ARCH (như xác nhận bởi \(\text{ARCH-LM Test}\) với \(\text{P-value}\) cao), sự vượt ngưỡng tại các lag lớn này cho rằng vẫn còn một chút tương quan bậc cao chưa được mô hình hóa đầy đủ.

4. Dự báo Volatility

Mặc dù có một vài dấu hiệu không hoàn hảo ở các lag cao, mô hình EGARCH(1,1) vẫn được coi là đầy đủ và phù hợp cho mục đích dự báo biến động trong thực tế, do đã xử lý triệt để các lag nhỏ quan trọng và đã pass các kiểm định thống kê \(\text{ARCH-LM}\)\(\text{Sign Bias}\).

library(rugarch)

# Dự báo 10 kỳ tiếp theo
n_ahead_steps <- 10
vol_forecast_egarch <- ugarchforecast(
  fitORspec = egarch_fit_stock, 
  n.ahead = n_ahead_steps)

# In kết quả dự báo
print(vol_forecast_egarch)
## 
## *------------------------------------*
## *       GARCH Model Forecast         *
## *------------------------------------*
## Model: eGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
## 
## 0-roll forecast [T0=2024-12-31]:
##      Series    Sigma
## T+1       0 0.007344
## T+2       0 0.007533
## T+3       0 0.007715
## T+4       0 0.007890
## T+5       0 0.008057
## T+6       0 0.008218
## T+7       0 0.008371
## T+8       0 0.008517
## T+9       0 0.008657
## T+10      0 0.008790

Dự báo được thực hiện từ \(T_0 = 2024-12-31\) cho 10 kỳ giao dịch tiếp theo.

Kỳ dự báo Volatility (EGARCH \(\sigma_t\)) Xu hướng
T+1 \(0.007344\) Tăng
T+5 \(0.008057\) Tăng
T+10 \(0.008790\) Tăng

Tương tự như TGARCH, biến động dự báo tăng dần đều qua 10 kỳ, từ \(0.007344\) lên \(0.008790\).

  • Ý nghĩa: Biến động thị trường tại thời điểm \(T_0\) đang ở mức thấp hơn mức trung bình dài hạn của chuỗi. Do đó, mô hình đang dự báo sự hồi quy về mức trung bình của volatility.

So sánh dự báo EGARCH và TGARCH

So sánh dự báo 10 kỳ của hai mô hình bất đối xứng (TGARCH: \(\text{AIC} = -6.3711\); EGARCH: \(\text{AIC} = -6.3754\)).

Kỳ \(\sigma_t\) (EGARCH) \(\sigma_t\) (TGARCH) Khác biệt
T+1 \(0.007344\) \(0.007821\) EGARCH dự báo thấp hơn
T+10 \(0.008790\) \(0.010411\) EGARCH dự báo thấp hơn
  • Kết luận: Mô hình EGARCH(1,1) dự báo một mức độ biến động trong tương lai thấp hơnhồi quy chậm hơn so với TGARCH(1,1).

Mô hình tối ưu

Dựa trên tiêu chí thông tin và tính đầy đủ:

  • EGARCH(1,1) (std) là mô hình được ưu tiên vì nó có giá trị \(\text{AIC}\) (\(\mathbf{-6.3754}\)) và \(\text{LogLikelihood}\) (\(\mathbf{4783.38}\)) tốt hơn so với TGARCH(1,1).
  • Cả hai mô hình đều xác nhận Hiệu ứng đòn bẩy (\(\gamma_1\) có ý nghĩa), nhưng cấu trúc EGARCH phù hợp hơn một chút với dữ liệu.

IGARCH

1. Giới thiệu mô hình IGARCH (Integrated GARCH)

Mô hình IGARCH là một trường hợp đặc biệt của Mô hình GARCH tiêu chuẩn, được thiết kế để mô hình hóa những chuỗi thời gian có biến động thể hiện tính dai dẳng vĩnh viễn, hay còn gọi là tính đơn vị trong phương sai có điều kiện.

Mô hình IGARCH(p, q) được xác định khi tổng các tham số ARCH và GARCH bằng đơn vị (1).

Đối với IGARCH(1,1), điều kiện là: \[ \mathbf{\alpha_1 + \beta_1 = 1} \]

Trong phương trình GARCH(1,1) tiêu chuẩn: \[\sigma_t^2 = \omega + \alpha_1 \epsilon_{t-1}^2 + \beta_1 \sigma_{t-1}^2\]

Do điều kiện \(\alpha_1 + \beta_1 = 1\), mô hình IGARCH bắt buộc phải có tham số hằng số biến động \(\omega = 0\): \[\sigma_t^2 = \alpha_1 \epsilon_{t-1}^2 + (1 - \alpha_1) \sigma_{t-1}^2 \quad \text{với } \omega = 0\]

Ý nghĩa kinh tế lượng

  • Tính dai dẳng vĩnh viễn: Đây là đặc điểm nổi bật nhất. Khi \(\alpha_1 + \beta_1 = 1\), biến động không có xu hướng hồi quy về một mức trung bình dài hạn cố định. Nói cách khác, một cú sốc biến động (một ngày tăng/giảm mạnh) sẽ duy trì tác động lên mức biến động dự báo trong tất cả các kỳ tương lai.
  • Phương sai Vô điều kiện không xác định: Do không có sự hồi quy về trung bình, phương sai vô điều kiện (Unconditional Variance) của chuỗi là vô hạn.

So sánh với GARCH/TGARCH/EGARCH

Đặc điểm GARCH/TGARCH IGARCH EGARCH
Tính dai dẳng \(\alpha_1 + \beta_1 < 1\) (Hồi quy về mức trung bình) \(\alpha_1 + \beta_1 = 1\) (Vĩnh viễn) \(\beta_1 < 1\) (Hồi quy về log-trung bình)
Hằng số \(\omega\) \(\omega > 0\) \(\omega = 0\) (Bắt buộc) \(\omega\) có thể âm/dương
Tính dương \(\sigma_t^2\) Cần ràng buộc tham số Cần ràng buộc tham số Đảm bảo tự động (mô hình hóa \(\ln(\sigma_t^2)\))
Bất đối xứng Có thể có (TGARCH) Không có trong mô hình cơ sở Có sẵn

Kết luận: IGARCH được xem là mô hình lý tưởng khi một cú sốc biến động được coi là cú sốc gốc, làm thay đổi vĩnh viễn mức rủi ro cơ bản của tài sản.

Ứng dụng Mô hình IGARCH trong phân tích và dự báo

Mặc dù TGARCH và EGARCH thường được sử dụng nhiều hơn vì tính bất đối xứng, IGARCH vẫn có vai trò quan trọng, đặc biệt trong các nghiên cứu về rủi ro và quản lý danh mục.

  • Phân tích rủi ro và thị trường

    • Kiểm tra tính hiệu quả của cú sốc: Nếu một thị trường được mô hình hóa tốt nhất bằng IGARCH, điều đó ngụ ý rằng các cú sốc biến động (Volatility Shocks) là có tính vĩnh viễn. Điều này cung cấp bằng chứng cho thấy thị trường đó chậm điều chỉnh hoặc bị chi phối bởi các yếu tố cấu trúc dài hạn.
    • Xác định mô hình định giá quyền chọn (Option Pricing): Các mô hình định giá quyền chọn cần giả định về động lực của volatility. Nếu IGARCH được xác nhận, mô hình định giá phải sử dụng giả định về sự không dừng của volatility.
  • Dự báo biến động (Volatility Forecasting)

    • Dự báo dài hạn: Trong IGARCH, dự báo volatility cho các kỳ dài hạn không hội tụ về một mức trung bình dài hạn cố định mà giữ nguyên mức biến động hiện tại.
      • Trong GARCH: \(\lim_{h \to \infty} \sigma_{t+h|t}^2 = \sigma_{\text{unconditional}}^2\) (hội tụ)
      • Trong IGARCH: \(\lim_{h \to \infty} \sigma_{t+h|t}^2 = \sigma_{t+1|t}^2\) (duy trì mức gần nhất)
    • Quản lý danh mục: Đối với các nhà quản lý rủi ro và nhà đầu tư dài hạn, mô hình IGARCH cảnh báo rằng rủi ro hiện tại sẽ là rủi ro cho tương lai. Điều này buộc họ phải áp dụng các chiến lược phòng ngừa rủi ro mạnh mẽ hơn.
  • Ví dụ ứng dụng

IGARCH thường được tìm thấy trong các chuỗi lợi suất của: * Thị trường mới nổi: Nơi các cú sốc vĩ mô (chính sách, khủng hoảng) có thể gây ra sự thay đổi vĩnh viễn trong cấu trúc rủi ro. * Tiền điện tử: Nơi biến động cực kỳ cao và các cú sốc lớn thường kéo dài sự bất ổn.

2. Ước lượng Mô hình IGARCH(1,1)

library(rugarch)

# 1. Xác định thông số mô hình IGARCH(1,1)
# Đặt 'model = "iGARCH"'
igarch_spec_stock <- ugarchspec(
  variance.model = list(model = "iGARCH", garchOrder = c(1, 1)),
  # Mean Model: ARFIMA(0,0,0) zero mean
  mean.model = list(armaOrder = c(0, 0), include.mean = FALSE),
  # Distribution: Student-t (std)
  distribution.model = "std" )

# 2. Ước lượng mô hình
# Sử dụng chuỗi lợi suất cổ phiếu
igarch_fit_stock <- ugarchfit(spec = igarch_spec_stock, data = stock_returns)

# 3. In kết quả để kiểm tra ý nghĩa hệ số
print(igarch_fit_stock)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : iGARCH(1,1)
## Mean Model   : ARFIMA(0,0,0)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## omega   0.000005    0.000002   2.2801 0.022599
## alpha1  0.161778    0.025676   6.3008 0.000000
## beta1   0.838222          NA       NA       NA
## shape   3.646523    0.316530  11.5203 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## omega   0.000005    0.000003   1.5145  0.12989
## alpha1  0.161778    0.029238   5.5332  0.00000
## beta1   0.838222          NA       NA       NA
## shape   3.646523    0.353856  10.3051  0.00000
## 
## LogLikelihood : 4769.275 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -6.3593
## Bayes        -6.3486
## Shibata      -6.3593
## Hannan-Quinn -6.3553
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      4.212 0.04014
## Lag[2*(p+q)+(p+q)-1][2]     4.479 0.05608
## Lag[4*(p+q)+(p+q)-1][5]     4.975 0.15511
## d.o.f=0
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                  0.0003793  0.9845
## Lag[2*(p+q)+(p+q)-1][5] 0.5545644  0.9489
## Lag[4*(p+q)+(p+q)-1][9] 0.9104436  0.9897
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]    0.3621 0.500 2.000  0.5474
## ARCH Lag[5]    1.0343 1.440 1.667  0.7228
## ARCH Lag[7]    1.1022 2.315 1.543  0.8964
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  0.6003
## Individual Statistics:             
## omega  0.1263
## alpha1 0.1400
## shape  0.1604
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          0.846 1.01 1.35
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                     t-value     prob sig
## Sign Bias           1.87536 0.060938   *
## Negative Sign Bias  0.03928 0.968676    
## Positive Sign Bias  1.05621 0.291041    
## Joint Effect       11.96311 0.007511 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     69.15    1.272e-07
## 2    30     80.47    9.876e-07
## 3    40    109.46    1.315e-08
## 4    50    120.38    6.115e-08
## 
## 
## Elapsed time : 0.05251098

Hệ số ứớc lượng

Tham số \(\beta_1\) không có \(\text{Std. Error}\)\(\text{P-value}\) vì nó được ràng buộc theo công thức \(\beta_1 = 1 - \alpha_1\) trong mô hình IGARCH.

Hệ số Estimate \(\text{P-value}\) Diễn giải
\(\omega\) (Omega) \(0.000005\) \(\mathbf{0.0226}\) Có ý nghĩa (Dưới 5%).
\(\alpha_1\) (ARCH) \(0.161778\) \(0.000000\) Có ý nghĩa. Tác động của cú sốc \(\epsilon_{t-1}^2\).
\(\beta_1\) (GARCH) \(0.838222\) \(\text{NA}\) Ràng buộc: \(\alpha_1 + \beta_1 = 1\).
Shape \(3.646523\) \(0.000000\) Xác nhận sự cần thiết của phân phối \(\text{Student-t}\) (đuôi dày).

Kiểm tra tính hợp lệ của IGARCH

Trong IGARCH, tham số \(\omega\) phải bằng 0 (\(\omega = 0\)) để chuỗi biến động không tiến tới vô cùng và có tính dai dẳng vĩnh viễn.

  • Kết quả: Tham số \(\omega\) ước lượng là \(0.000005\) và có \(\text{P-value} = 0.022599\) (dưới 5% ở mức chặt chẽ, nhưng trên 1%).
  • Kết luận:\(\omega\) khác 0 một cách có ý nghĩa thống kê (tuy rất nhỏ), mô hình IGARCH không hoàn toàn hợp lệ cho dữ liệu này. Nó gợi ý rằng mô hình GARCH truyền thống (với \(\omega > 0\)\(\alpha_1 + \beta_1 < 1\)) vẫn là lựa chọn tốt hơn, vì biến động có xu hướng hồi quy về mức trung bình (dù chậm).

Kiểm tra sự phù hợp

  • Weighted Ljung-Box (\(\hat{z}_t^2\)) & ARCH LM Test: \(\text{P-value}\) của các kiểm định này rất cao (\(> 0.05\)), xác nhận mô hình IGARCH(1,1) đã xử lý hết hiệu ứng \(\text{ARCH/GARCH}\) còn sót lại (đã mô hình hóa thành công cụm biến động).
  • Sign Bias Test: \(\text{Joint Effect}\)\(\text{P-value} = 0.0075\) (\(< 0.01\)) và Sign Bias\(\text{P-value} = 0.0609\) (\(< 0.1\), có dấu \(*\)).
  • Kết luận: Kết quả này chỉ ra rằng mô hình IGARCH vẫn còn thiếu sót trong việc nắm bắt tính bất đối xứng (hiệu ứng đòn bẩy). Tác động của tin xấu và tin tốt lên biến động vẫn chưa được mô hình hóa đầy đủ.

So sánh mô hình tối ưu

Tiêu chí EGARCH(1,1) TGARCH(1,1) IGARCH(1,1)
AIC \(-6.3754\) \(-6.3711\) \(-6.3593\)
BIC \(-6.3577\) \(-6.3534\) \(-6.3486\)
LogLikelihood \(\mathbf{4783.38}\) \(4780.137\) \(4769.275\)
Khuyết tật Gần như hoàn hảo Rất tốt Thiếu bất đối xứng\(\omega \neq 0\).

Kết luận

Dựa trên việc so sánh tiêu chí thông tin và kết quả chẩn đoán:

  1. Mô hình IGARCH(1,1) không phải là mô hình tốt nhất vì nó có \(\text{AIC}\)\(\text{LogLikelihood}\) thấp nhất, và thất bại trong việc mô hình hóa tính bất đối xứng.
  2. Mô hình EGARCH(1,1) là mô hình tốt nhất cho dữ liệu lợi suất cổ phiếu của bạn, với \(\text{AIC}\) cao nhất và chẩn đoán gần như hoàn hảo.

3. Trực quan hoá chẩn đoán IGARCH**

# Biểu đồ 1: ACF/PACF của phần dư chuẩn hóa (z_t)
plot(igarch_fit_stock, which = 10) 

# Biểu đồ 2: ACF/PACF của bình phương phần dư chuẩn hóa (z_t^2)
plot(igarch_fit_stock, which = 11) 

ACF của phần dư chuẩn hóa (\(\hat{z}_t\))

  • Quan sát: Tương tự như các mô hình trước (TGARCH, EGARCH), các thanh tại Lag 1 và lag cao (như Lag 30) vượt ra ngoài giới hạn tin cậy.
  • Kết luận: Điều này khẳng định \(\text{Mean Model}\) (\(\text{ARIMA}(0, 0, 0)\)) vẫn chưa loại bỏ hết tương quan chuỗi tuyến tính còn sót lại ở các bậc cao.

ACF của bình phương phần dư chuẩn hóa (\(\hat{z}_t^2\))

  • Quan sát: Hầu hết các thanh nằm trong giới hạn tin cậy. Tuy nhiên, có những thanh vượt ngưỡng đáng kể tại Lag 10Lag 27, 29 (cao hơn cả EGARCH).
  • Kết luận: Mặc dù kiểm định \(\text{ARCH-LM}\) pass, biểu đồ cho thấy mô hình IGARCH(1,1) chưa hoàn toàn đầy đủ và còn một số \(\text{ARCH}\) bậc cao còn sót lại. Kết hợp với việc \(\text{Sign Bias Test}\) thất bại trước đó, IGARCH là mô hình yếu nhất trong nhóm.

4. Dự báo Volatility IGARCH(1,1)

library(rugarch)

# Dự báo 10 kỳ tiếp theo
n_ahead_steps <- 10
vol_forecast_igarch <- ugarchforecast(
  fitORspec = igarch_fit_stock, 
  n.ahead = n_ahead_steps)

# In kết quả dự báo
print(vol_forecast_igarch)
## 
## *------------------------------------*
## *       GARCH Model Forecast         *
## *------------------------------------*
## Model: iGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
## 
## 0-roll forecast [T0=2024-12-31]:
##      Series    Sigma
## T+1       0 0.007425
## T+2       0 0.007765
## T+3       0 0.008091
## T+4       0 0.008405
## T+5       0 0.008707
## T+6       0 0.008998
## T+7       0 0.009281
## T+8       0 0.009555
## T+9       0 0.009822
## T+10      0 0.010082

Dự báo được thực hiện từ \(T_0 = 2024-12-31\) cho 10 kỳ giao dịch tiếp theo.

Kỳ dự báo Volatility (\(\sigma_t\)) Xu hướng
T+1 \(0.007425\) Tăng
T+5 \(0.008707\) Tăng
T+10 \(0.010082\) Tăng

Xu hướng IGARCH

  • Xu hướng: Biến động dự báo tăng dần đều qua 10 kỳ, từ \(0.007425\) lên \(0.010082\). Điều này tương tự các mô hình khác: biến động hiện tại đang thấp hơn mức biến động dài hạn, và mô hình dự báo sự hồi quy.
  • Tính dai dẳng: Trong mô hình IGARCH, biến động dự báo không bao giờ hồi quy về một mức trung bình cố định mà duy trì mức dai dẳng cao nhất. Sự tăng trưởng trong dự báo này cho thấy cú sốc gần nhất đang làm tăng biến động, và mô hình dự báo mức biến động này sẽ được duy trì vĩnh viễn (do \(\alpha_1 + \beta_1 = 1\)).

So sánh dự báo giữa các mô hình

Kỳ \(\sigma_t\) (IGARCH) \(\sigma_t\) (EGARCH) \(\sigma_t\) (TGARCH)
T+1 \(0.007425\) \(\mathbf{0.007344}\) \(0.007821\)
T+5 \(0.008707\) \(\mathbf{0.008057}\) \(0.008707\)
T+10 \(0.010082\) \(\mathbf{0.008790}\) \(0.010411\)
  • Nhận xét:
    • TGARCH đưa ra dự báo biến động cao nhất (nhanh chóng hồi quy về mức cao hơn).
    • EGARCH đưa ra dự báo biến động thấp nhất (hồi quy chậm và ổn định nhất).
    • IGARCH đưa ra dự báo cao hơn EGARCH nhưng thấp hơn TGARCH ở T+10.

Kết luận

Mô hình LogLikelihood AIC Đặc điểm nổi bật Kết luận thống kê
EGARCH(1,1) \(\mathbf{4783.38}\) \(\mathbf{-6.3754}\) Bất đối xứng, đảm bảo \(\sigma_t^2 > 0\) Tốt nhất (AIC cao nhất, Sign Bias pass).
TGARCH(1,1) \(4780.137\) \(-6.3711\) Bất đối xứng (mô hình ngưỡng). Rất tốt (Gần EGARCH).
IGARCH(1,1) \(4769.275\) \(-6.3593\) Dai dẳng vĩnh viễn (\(\alpha+\beta=1\)). Yếu nhất (AIC thấp nhất, \(\omega \neq 0\), Sign Bias fail).
  • Mô hình phù hợp nhất: EGARCH(1,1) (Student-t) là mô hình tốt nhất để phân tích rủi ro cho chuỗi lợi suất cổ phiếu này, vì nó có tiêu chí thông tin (\(\text{AIC}\)) cao nhất và đã thành công trong việc mô hình hóa cả \(\text{ARCH}\)\(\text{Bất đối xứng}\).
  • Tính dai dẳng: Dữ liệu không ủng hộ mô hình IGARCH(1,1) vì tham số \(\omega\) là khác 0 một cách có ý nghĩa thống kê, bác bỏ giả thuyết về tính dai dẳng biến động.

GARCH-M

1. Giới thiệu mô hình GARCH-M (GARCH-in-Mean)

Mô hình \(\text{GARCH-M}\) giả định rằng lợi suất hiện tại (\(r_t\)) không chỉ phụ thuộc vào các yếu tố trung bình (như \(\text{AR}\) hoặc \(\text{MA}\)), mà còn phụ thuộc trực tiếp vào rủi ro (\(\sigma_t\) hoặc \(\sigma_t^2\)) mà nhà đầu tư phải gánh chịu tại thời điểm đó.

  • Giả thuyết: Các nhà đầu tư yêu cầu một phần bù rủi ro (risk premium) cao hơn khi rủi ro (volatility) của tài sản tăng lên.

Mô hình \(\text{GARCH-M}\) thay đổi Mean Model bằng cách thêm một thành phần biến động (\(\sigma_t\) hoặc \(\sigma_t^2\)) vào phương trình trung bình.

Phương trình Mean Model (GARCH-M): \[r_t = \mu + \delta f(\sigma_t) + \epsilon_t\]

Trong đó:

  • \(\delta\): Tham số phản ánh mối quan hệ giữa rủi ro và lợi nhuận.
  • \(f(\sigma_t)\): Có thể là độ lệch chuẩn (\(\sigma_t\)) hoặc phương sai (\(\sigma_t^2\)).
  • \(\epsilon_t\): Phần dư, nơi biến động (\(\sigma_t^2\)) được mô hình hóa bằng \(\text{GARCH}\) tiêu chuẩn (hoặc \(\text{TGARCH}\), \(\text{EGARCH}\)).

Mục tiêu chính: Kiểm tra xem \(\text{P-value}\) của tham số \(\delta\) có nhỏ hơn \(0.05\) hay không. Nếu \(\delta > 0\) và có ý nghĩa, điều đó xác nhận rằng rủi ro cao hơn dẫn đến lợi nhuận kỳ vọng cao hơn (Risk-Return Tradeoff).

2. Ước lượng EGARCH-M

Vì mô hình EGARCH(1,1) (std) đã được xác nhận là mô hình tốt nhất cho dữ liệu này (\(\text{AIC}\) cao nhất), ta sẽ thêm thành phần \(\text{-M}\) vào cấu trúc này.

Sử dụng \(\sigma_t^2\) trong Mean Model (tức là \(\text{variance.targeting=FALSE}\) để đảm bảo \(\sigma_t^2\) được ước lượng trong phương trình trung bình).

library(rugarch)

# Ước lượng mô hình EGARCH(1,1)-M (dùng phương sai sigma^2 trong Mean Model)
egarch_m_spec_stock <- ugarchspec(
  variance.model = list(model = "eGARCH", garchOrder = c(1, 1)),
  # Thêm 'archm = TRUE' và 'archm.واری = 2' (sử dụng sigma^2)
  mean.model = list(
    armaOrder = c(0, 0), 
    include.mean = TRUE, 
    archm = TRUE, 
    archm.واری = 2  # 1: sigma_t, 2: sigma_t^2 (phổ biến hơn)
  ),
  distribution.model = "std" 
)

# Ước lượng mô hình
egarch_m_fit_stock <- ugarchfit(spec = egarch_m_spec_stock, data = stock_returns)

# In kết quả
print(egarch_m_fit_stock)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : eGARCH(1,1)
## Mean Model   : ARFIMA(0,0,0)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.000848    0.000489  -1.7353 0.082695
## archm   0.192473    0.045030   4.2743 0.000019
## omega  -0.641208    0.137455  -4.6649 0.000003
## alpha1 -0.100666    0.027424  -3.6708 0.000242
## beta1   0.929879    0.015176  61.2740 0.000000
## gamma1  0.269646    0.038562   6.9926 0.000000
## shape   3.756626    0.397440   9.4520 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.000848    0.000413  -2.0547 0.039910
## archm   0.192473    0.032430   5.9351 0.000000
## omega  -0.641208    0.160900  -3.9851 0.000067
## alpha1 -0.100666    0.034376  -2.9284 0.003407
## beta1   0.929879    0.017755  52.3741 0.000000
## gamma1  0.269646    0.029461   9.1526 0.000000
## shape   3.756626    0.357288  10.5143 0.000000
## 
## LogLikelihood : 4797.078 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -6.3910
## Bayes        -6.3662
## Shibata      -6.3911
## Hannan-Quinn -6.3818
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic  p-value
## Lag[1]                      7.635 0.005726
## Lag[2*(p+q)+(p+q)-1][2]     8.379 0.005131
## Lag[4*(p+q)+(p+q)-1][5]     9.329 0.013661
## d.o.f=0
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                    0.09195  0.7617
## Lag[2*(p+q)+(p+q)-1][5]   0.55647  0.9486
## Lag[4*(p+q)+(p+q)-1][9]   0.89255  0.9903
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]    0.3150 0.500 2.000  0.5746
## ARCH Lag[5]    0.8771 1.440 1.667  0.7697
## ARCH Lag[7]    0.9480 2.315 1.543  0.9219
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  1.7882
## Individual Statistics:             
## mu     0.3293
## archm  0.2853
## omega  0.3204
## alpha1 0.3207
## beta1  0.3332
## gamma1 0.2015
## shape  0.1513
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.69 1.9 2.35
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value   prob sig
## Sign Bias           1.3070 0.1914    
## Negative Sign Bias  0.4125 0.6800    
## Positive Sign Bias  0.7066 0.4800    
## Joint Effect        5.0894 0.1654    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     38.84    0.0046343
## 2    30     64.22    0.0001792
## 3    40     79.73    0.0001290
## 4    50     90.49    0.0002855
## 
## 
## Elapsed time : 0.343905

Mô hình này là \(\mathbf{r_t = \mu + \delta \sigma_t^2 + \epsilon_t}\) với \(\text{Volatility}\) được mô hình hóa bằng \(\text{EGARCH}(1,1)\).

Mối quan hệ Rủi ro-Lợi nhuận (Risk-Return Tradeoff)

Tham số Estimate \(\text{P-value}\) (Robust) Diễn giải
archm (\(\delta\)) \(\mathbf{0.192473}\) \(\mathbf{0.000000}\) Rủi ro-Lợi nhuận (Risk-Return)
mu (\(\mu\)) \(-0.000848\) \(0.039910\) Lợi suất kỳ vọng không điều chỉnh
  • Kết luận: Tham số \(\text{archm}\) (\(\delta\)) là \(\mathbf{0.192473}\) và có P-value rất nhỏ (\(0.000000\)).
    • \(\delta > 0\) và có ý nghĩa thống kê, điều này xác nhận rằng tồn tại mối quan hệ Rủi ro-Lợi nhuận dương trên thị trường này. Lợi nhuận kỳ vọng của tài sản tăng lên khi rủi ro (phương sai, \(\sigma_t^2\)) tăng lên.

Các hệ số biến động (EGARCH)

Các tham số \(\text{EGARCH}\) vẫn giữ nguyên tính ổn định:

  • \(\gamma_1\) (Bất đối xứng): \(\mathbf{0.269646}\) (P-value \(\approx 0\)). Hiệu ứng đòn bẩy vẫn được xác nhận (\(\text{Tin xấu}\) làm tăng biến động nhiều hơn \(\text{Tin tốt}\)).
  • \(\beta_1\) (Dai dẳng): \(\mathbf{0.929879}\) (P-value \(\approx 0\)). Tính dai dẳng của biến động vẫn rất cao.

Kiểm tra tính đầy đủ (Diagnostics)

  • Weighted Ljung-Box (\(\hat{z}_t\)) & ARCH LM Test: \(\text{P-value}\) của \(\hat{z}_t^2\)\(\text{ARCH LM}\) đều cao (\(> 0.05\)). Mô hình đã xử lý hết cụm biến động.
  • Sign Bias Test: \(\text{Joint Effect}\)\(\text{P-value} = 0.165\) (\(> 0.05\)). Mô hình EGARCH-M đã mô hình hóa hết tính bất đối xứng.
  • Weighted Ljung-Box (\(\hat{z}_t\)): Kiểm định này thất bại (P-value rất nhỏ, ví dụ: \(0.0057\) tại Lag 1). Điều này xác nhận Mean Model \(\text{ARIMA}(0, 0, 0)\) vẫn chưa đủ, và còn tương quan chuỗi tuyến tính sót lại.
  • Nyblom Stability Test: \(\text{Joint Statistic}\)\(1.7882\), cao hơn \(\text{Critical Value}\) \(1.69\) (10%) và gần \(1.90\) (5%). Điều này cho thấy mô hình không hoàn toàn ổn định ở mức 5% (tính ổn định biên).
Mô hình AIC LogLikelihood Tồn tại Risk-Return Tồn tại bất đối xứng
EGARCH(1,1)-M \(\mathbf{-6.3910}\) \(\mathbf{4797.078}\) (\(\delta > 0\)) CÓ (\(\gamma_1 > 0\))
EGARCH(1,1) \(-6.3754\) \(4783.38\) Không kiểm tra

Kết luận: Mô hình EGARCH(1,1)-M (std) là mô hình tốt nhất về mặt thống kê (AIC và LogLikelihood cao nhất). Mô hình này không chỉ mô hình hóa được Hiệu ứng đòn bẩy (Bất đối xứng) mà còn cung cấp bằng chứng mạnh mẽ rằng rủi ro biến động tăng sẽ làm tăng lợi nhuận kỳ vọng trên thị trường này.

library(rugarch)

# Ước lượng mô hình EGARCH(1,1)-M với AR(1) trong Mean Model
egarch_m_ar1_spec <- ugarchspec(
  variance.model = list(model = "eGARCH", garchOrder = c(1, 1)),
  mean.model = list(
    armaOrder = c(1, 0), 
    include.mean = TRUE, 
    archm = TRUE, 
    archm.variance = 2
  ),
  distribution.model = "std" 
)

# Ước lượng mô hình
egarch_m_ar1_fit <- ugarchfit(spec = egarch_m_ar1_spec, data = stock_returns)

# In kết quả
print(egarch_m_ar1_fit)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : eGARCH(1,1)
## Mean Model   : ARFIMA(1,0,0)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.001101    0.000583  -1.8899 0.058768
## ar1     0.062776    0.028011   2.2411 0.025019
## archm   0.215464    0.057648   3.7376 0.000186
## omega  -0.718940    0.065826 -10.9218 0.000000
## alpha1 -0.120235    0.025304  -4.7516 0.000002
## beta1   0.921544    0.007129 129.2584 0.000000
## gamma1  0.273395    0.038367   7.1258 0.000000
## shape   3.824993    0.409221   9.3470 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.001101    0.000489  -2.2523 0.024300
## ar1     0.062776    0.028411   2.2096 0.027134
## archm   0.215464    0.047316   4.5537 0.000005
## omega  -0.718940    0.037105 -19.3756 0.000000
## alpha1 -0.120235    0.026573  -4.5247 0.000006
## beta1   0.921544    0.003773 244.2773 0.000000
## gamma1  0.273395    0.029364   9.3106 0.000000
## shape   3.824993    0.373926  10.2293 0.000000
## 
## LogLikelihood : 4799.747 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -6.3933
## Bayes        -6.3649
## Shibata      -6.3933
## Hannan-Quinn -6.3827
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                     0.9138  0.3391
## Lag[2*(p+q)+(p+q)-1][2]    1.6022  0.3827
## Lag[4*(p+q)+(p+q)-1][5]    2.5299  0.5579
## d.o.f=1
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                     0.2674  0.6051
## Lag[2*(p+q)+(p+q)-1][5]    0.7877  0.9055
## Lag[4*(p+q)+(p+q)-1][9]    1.1234  0.9806
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]    0.3990 0.500 2.000  0.5276
## ARCH Lag[5]    0.9701 1.440 1.667  0.7418
## ARCH Lag[7]    1.0316 2.315 1.543  0.9084
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  1.8523
## Individual Statistics:              
## mu     0.31661
## ar1    0.09465
## archm  0.26855
## omega  0.34858
## alpha1 0.36006
## beta1  0.36188
## gamma1 0.18567
## shape  0.16470
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.89 2.11 2.59
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value   prob sig
## Sign Bias           1.0817 0.2795    
## Negative Sign Bias  0.5778 0.5635    
## Positive Sign Bias  0.7872 0.4313    
## Joint Effect        4.0678 0.2542    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     38.41    0.0052584
## 2    30     60.30    0.0005668
## 3    40     65.11    0.0054443
## 4    50     77.62    0.0057004
## 
## 
## Elapsed time : 0.5231318

Việc thêm thành phần \(\text{AR}(1)\) đã giải quyết được lỗi tương quan chuỗi còn sót lại và cải thiện độ phù hợp của mô hình.

Kiểm định Mô hình cũ (ARIMA(0,0,0)-M) Mô hình mới (ARIMA(1,0,0)-M) Kết luận
Ljung-Box (\(\hat{z}_t\)) Thất bại (\(\text{p-value} \approx 0.005\)) Pass (\(\text{p-value} = 0.3391\)) Tương quan chuỗi đã được loại bỏ!
AIC \(-6.3910\) \(\mathbf{-6.3933}\) AIC được cải thiện (cao hơn)

Kết luận: Lỗi tương quan chuỗi trong phần dư chuẩn hóa đã được khắc phục hoàn toàn nhờ việc thêm \(\text{AR}(1)\) vào Mean Model. Đây là mô hình chính xác nhất về mặt thống kê mà bạn đã ước lượng.

Các hệ số tối ưu

Tất cả các tham số chính đều có ý nghĩa thống kê (P-value rất nhỏ).

Tham số Estimate \(\text{P-value}\) (Robust) Diễn giải
ar1 (\(\phi_1\)) \(\mathbf{0.062776}\) \(0.027134\) Tương quan: Lợi suất hôm nay phụ thuộc vào lợi suất hôm qua (dù yếu).
archm (\(\delta\)) \(\mathbf{0.215464}\) \(0.000005\) Rủi ro-Lợi nhuận: Tồn tại mối quan hệ dương mạnh mẽ.
gamma1 (\(\gamma_1\)) \(\mathbf{0.273395}\) \(0.000000\) Bất đối xứng: Tin xấu tăng biến động nhiều hơn Tin tốt.
beta1 (\(\beta_1\)) \(0.921544\) \(0.000000\) Dai dẳng: Biến động có tính dai dẳng rất cao.

Risk-Return Tradeoff (\(\delta\)): \(\delta = 0.215464 > 0\) và có ý nghĩa. Điều này cung cấp bằng chứng mạnh mẽ rằng nhà đầu tư được đền bù rủi ro cao hơn khi biến động thị trường (rủi ro) tăng lên.

Hiệu ứng đòn bẩy (\(\gamma_1\)): \(\gamma_1 = 0.273395 > 0\) và có ý nghĩa. Sự giảm giá cổ phiếu sẽ có tác động làm tăng biến động trong tương lai lớn hơn so với sự tăng giá cùng mức độ.

Mô hình \(\mathbf{ARIMA(1, 0, 0)} \mathbf{-} \mathbf{EGARCH(1, 1)}\mathbf{-}\mathbf{M}\) (std)Mô hình tối ưu cuối cùng cho dữ liệu này, vì nó:

  1. Đạt \(\text{AIC}\) cao nhất (\(\mathbf{-6.3933}\)).

  2. Pass kiểm định Ljung-Box (\(\hat{z}_t\)) và \(\text{ARCH-LM}\) (\(\hat{z}_t^2\)) — Mô hình đầy đủ.

  3. Xác nhận Hiệu ứng đòn bẩy (\(\text{EGARCH}\)).

  4. Xác nhận mối quan hệ Rủi ro-Lợi nhuận dương (\(\text{GARCH-M}\)).

3. Dự báo Volatility và Lợi suất

library(rugarch)

# Dự báo 10 kỳ tiếp theo
n_ahead_steps <- 10
final_forecast <- ugarchforecast(
  fitORspec = egarch_m_ar1_fit, 
  n.ahead = n_ahead_steps
)

# In kết quả dự báo
print(final_forecast)
## 
## *------------------------------------*
## *       GARCH Model Forecast         *
## *------------------------------------*
## Model: eGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
## 
## 0-roll forecast [T0=2024-12-31]:
##         Series    Sigma
## T+1  0.0002769 0.007741
## T+2  0.0005854 0.007913
## T+3  0.0006373 0.008074
## T+4  0.0006710 0.008226
## T+5  0.0007018 0.008368
## T+6  0.0007305 0.008502
## T+7  0.0007574 0.008627
## T+8  0.0007825 0.008743
## T+9  0.0008060 0.008852
## T+10 0.0008279 0.008953

Mô hình này dự báo cho \(T_0 = 2024-12-31\) đến \(T+10\).

Dự báo biến động (Volatility Forecast - \(\sigma_t\))

Cột Sigma (Độ lệch chuẩn có điều kiện) thể hiện rủi ro dự kiến.

Kỳ dự báo Sigma (\(\sigma_t\)) Xu hướng
T+1 \(0.007741\) Tăng
T+5 \(0.008368\) Tăng
T+10 \(\mathbf{0.008953}\) Tăng chậm
  • Nhận xét: Biến động dự báo tăng dần từ \(0.007741\) lên \(0.008953\). Điều này củng cố nhận định rằng biến động hiện tại đang thấp hơn mức biến động dài hạn của thị trường, và mô hình dự báo sự hồi quy về mức trung bình (Mean Reversion).

Dự báo lợi suất kỳ vọng (Expected Return Forecast - \(\mathbf{E}[r_t]\))

Cột Series (Lợi suất có điều kiện kỳ vọng) thể hiện lợi nhuận dự kiến.

Kỳ dự báo Lợi suất (Series) Xu hướng
T+1 \(0.0002769\) Tăng
T+5 \(0.0007018\) Tăng
T+10 \(\mathbf{0.0008279}\) Tăng chậm
  • Nhận xét:
    • Lợi suất kỳ vọng dự báo là dươngtăng dần qua các kỳ.
    • Sự tăng dần của lợi suất là do sự tăng dần của biến động (\(\sigma_t\)) và mối quan hệ Risk-Return dương đã được xác nhận (\(\delta = 0.215464\)). Khi \(\sigma_t\) tăng, phần bù rủi ro (\(\delta \sigma_t^2\)) cũng tăng, dẫn đến lợi suất kỳ vọng tăng.