Giới thiệu mô hình TGARCH
Mô hình TGARCH (Threshold GARCH) là một mở rộng của mô hình GARCH nhằm phản ánh tính không cân xứng trong biến động của chuỗi thời gian tài chính. Cụ thể, TGARCH cho phép tin xấu (cú sốc âm) và tin tốt (cú sốc dương) có ảnh hưởng khác nhau đến phương sai có điều kiện (volatility).
Công thức tổng quát của mô hình TGARCH(1,1) được viết là:
σt² = κ + β₁σt₋₁² + α₁εt₋₁² + γ₁εt₋₁²It₋₁
Trong đó: - It₋₁ = 1 khi εt₋₁ < 0
- It₋₁ = 0 khi εt₋₁ ≥ 0
Do vậy: - Nếu εt₋₁ < 0: σt² = κ + β₁σt₋₁² + (α₁ + γ₁)εt₋₁²
- Nếu εt₋₁ ≥ 0: σt² = κ + β₁σt₋₁² + α₁εt₋₁²
Mô hình TGARCH sẽ không cân xứng khi α₁ khác 0. Nếu γ₁ > 0, các cú sốc âm ảnh hưởng đến biến động nhiều hơn so với cú sốc dương.
Ưu điểm
Nhược điểm
Giới thiệu mô hình EGARCH
Mô hình EGARCH (Exponential GARCH) là một mở rộng khác của mô hình GARCH, được Nelson (1991) đề xuất nhằm khắc phục một số hạn chế của GARCH truyền thống. EGARCH cho phép mô tả tính không cân xứng trong biến động, tương tự TGARCH, nhưng được thể hiện thông qua logarit của phương sai có điều kiện, giúp đảm bảo giá trị phương sai luôn dương mà không cần đặt ràng buộc dương cho các tham số.
Công thức tổng quát của mô hình EGARCH(1,1):
ln(σt²) = κ + β ln(σt₋₁²) + α (εt₋₁ / σt₋₁) + θ |εt₋₁ / σt₋₁|
Trong đó: - εt là phần dư (sai số) tại thời điểm t, với εt ~ N(0, σt²) - εt₋₁ / σt₋₁ là cú sốc được chuẩn hóa tại thời điểm t–1 - κ, α, β, θ là các hệ số của mô hình
Từ công thức trên, mô hình có thể được viết lại như sau: - Nếu εt₋₁ > 0: ln(σt²) = κ + β ln(σt₋₁²) + (α + θ)(εt₋₁ / σt₋₁) - Nếu εt₋₁ < 0: ln(σt²) = κ + β ln(σt₋₁²) + (θ – α)(εt₋₁ / σt₋₁)
Một số đặc điểm và lưu ý của mô hình EGARCH
Ưu điểm của mô hình EGARCH
Nhược điểm của mô hình EGARCH
Giới thiệu mô hình
IGARCH (Integrated Generalized Autoregressive Conditional Heteroskedasticity) là một biến thể của mô hình GARCH, được giới thiệu bởi Engle & Bollerslev (1986). Mô hình mô tả phương sai có điều kiện của chuỗi tài chính, trong đó mức độ biến động có tính ‘ghi nhớ dài hạn’ (persistence) đặc biệt mạnh.
Đặc điểm chính của IGARCH: Tổng hệ số ARCH và GARCH bằng 1: α + β = 1 Điều này có nghĩa là cú sốc đến phương sai có tác động kéo dài vô hạn và phương sai có điều kiện mang tính ‘tích phân’ giống I(1).
Công thức mô hình IGARCH
Dạng tổng quát IGARCH(p, q)
σ_t^2 = ω + Σ α_i ε_{t-i}^2 (i = 1..p) + Σ β_j σ_{t-j}^2 (j = 1..q)
Với ràng buộc: Σ α_i + Σ β_j = 1
Ý nghĩa kinh tế và đặc điểm
Tính dai dẳng của biến động (persistence): α + β = 1 → độ dai dẳng = 1, mức cao nhất. Cú sốc lên biến động không tiêu biến theo thời gian. Phương sai có điều kiện không dừng theo phương sai.
Không có phương sai vô điều kiện: Trong GARCH: Var(ε_t) = ω / (1 − (α + β))
Trong IGARCH: α + β = 1 → mẫu số = 0 → phương sai vô hạn. Mô hình không dừng theo phương sai.
Ưu điểm và hạn chế
Ưu điểm: - Mô tả tốt chuỗi có biến động dai dẳng - Phản ánh long-run persistence - Tính toán tương tự GARCH nên dễ áp dụng
Hạn chế: - Không tồn tại phương sai vô điều kiện → khó dùng cho mô hình cân bằng động - Có thể đánh giá quá cao độ dai dẳng - Nhiều trường hợp GARCH(1,1) với α + β gần 1 đã đủ
Dữ liệu phân tích trong bài là chuỗi giá đóng cửa của Ngân hàng công thương (CTG) gồm 498 quan sát lấy từ ngày 4/1/2022 đến 29/12//2023. Dữ liệu được lấy trên sàn investing.com và được ứng dụng vào các mô hình ARMA, GARCH, TGARCH, EGARCH.
data <- read_excel("C:/Users/Admin/Downloads/Book2.xlsx")
names(data)
## [1] "date" "close"
# Lấy biến close cần phân tích
y <- ts(data$close)
plot(y, main = "Biểu đồ chuỗi thời gian", col = "blue")
Nhận xét biểu đồ giá đóng cửa của CTG
Biểu đồ trên thể hiện diễn biến giá đóng cửa của cổ phiếu CTG TỪ 2022 - 2023. Có thể nhận thấy chuỗi giá có biến động mạnh, không ổn định và thể hiện rõ xu hướng giảm sau giai đoạn tăng ban đầu. Giá đạt đỉnh khoảng 35.000, sau đó giảm xuống gần 20.000 trước khi phục hồi dao động quanh vùng 25.000–30.000.
adf_test <- adf.test(y)
kpss_test <- kpss.test(y)
adf_test
##
## Augmented Dickey-Fuller Test
##
## data: y
## Dickey-Fuller = -2.3934, Lag order = 7, p-value = 0.4118
## alternative hypothesis: stationary
kpss_test
##
## KPSS Test for Level Stationarity
##
## data: y
## KPSS Level = 1.2974, Truncation lag parameter = 5, p-value = 0.01
Kiểm định ADF:
Kiểm định KPSS:
Kết luận: Cả hai kiểm định đều cho thấy chuỗi giá CTG không dừng. Cần tiếp tục thực hiện sai phân bậc 1.
# Sai phân bậc 1
dy <- diff(y)
# Kiểm tra lại tính dừng
adf.test(na.omit(dy))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(dy)
## Dickey-Fuller = -7.4557, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
kpss.test(na.omit(dy))
##
## KPSS Test for Level Stationarity
##
## data: na.omit(dy)
## KPSS Level = 0.24811, Truncation lag parameter = 5, p-value = 0.1
plot(dy, main = "Chuỗi sau khi sai phân bậc 1", col = "darkgreen")
Kiểm định ADF:
Kiểm định KPSS:
Kết luận:
Cả hai kiểm định đều cho thấy chuỗi sai phân bậc 1 (dy) đã đạt
được tính dừng, có thể sử dụng cho các mô hình ARIMA, ARCH,
GARCH, TGARCH hoặc EGARCH.
auto_model <- auto.arima(dy)
summary(auto_model)
## Series: dy
## ARIMA(0,0,0) with zero mean
##
## sigma^2 = 317714: log likelihood = -3853.44
## AIC=7708.87 AICc=7708.88 BIC=7713.08
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set -15.39235 563.6612 398.7171 100 100 0.6733843 -0.02321698
checkresiduals(auto_model)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,0,0) with zero mean
## Q* = 9.257, df = 10, p-value = 0.5079
##
## Model df: 0. Total lags used: 10
Nhận xét
Kết quả cho thấy mô hình ARIMA(0,0,0) có giá trị AIC = 7708.87 và BIC
= 7713.08.
Kiểm định Ljung–Box cho phần dư có p-value = 0.5079 (> 0.05), nên
không bác bỏ giả thuyết H₀, tức là phần dư
không có hiện tượng tự tương quan → phần dư là nhiễu
trắng.
Điều này nghĩa là mô hình ARIMA(0,0,0) phù hợp về mặt thống kê, nhưng về bản chất đây là mô hình rất đơn giản, không giải thích được cấu trúc biến động của chuỗi (chỉ là chuỗi ngẫu nhiên quanh trung bình bằng 0).
Vì chuỗi tài chính thường có hiện tượng phương sai thay đổi theo thời gian, nên bước tiếp theo cần kiểm tra hiệu ứng ARCH và xây dựng các mô hình như GARCH, TGARCH hoặc EGARCH để mô tả tốt hơn biến động của chuỗi giá đóng cửa của CTG
#2.4. Kiểm định hiệu ứng arch
library(FinTS)
ArchTest(residuals(auto_model), lags = 12)
##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: residuals(auto_model)
## Chi-squared = 24.435, df = 12, p-value = 0.01774
Nhận xét
Giả thuyết H₀: Không có hiệu ứng ARCH (phương sai không thay đổi theo thời gian).
Giả thuyết H₁: Có hiệu ứng ARCH (phương sai thay đổi theo thời gian).
Kết quả kiểm định: - Giá trị Chi-squared = 24.889
- bậc tự do (df) = 12
- p-value = 0.01536 (< 0.05)
→ Vì p-value < 0.05 nên bác bỏ giả thuyết
H₀.
⟹ Kết luận: Có tồn tại hiệu ứng ARCH trong phần dư của
mô hình.
install.packages("rugarch")
library(rugarch)
# GARCH(1,1)
spec_garch <- ugarchspec(
variance.model = list(model = "sGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(1,1))
)
fit_garch <- ugarchfit(spec = spec_garch, data = dy)
show(fit_garch)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(1,1)
## Mean Model : ARFIMA(1,0,1)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu 0.010591 21.133798 0.000501 0.999600
## ar1 0.121307 0.447313 0.271189 0.786245
## ma1 -0.192025 0.441082 -0.435349 0.663309
## omega 333.758320 782.990479 0.426261 0.669918
## alpha1 0.067785 0.016694 4.060341 0.000049
## beta1 0.931215 0.014714 63.289754 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.010591 2.3773e+01 0.000446 0.999645
## ar1 0.121307 2.7826e-01 0.435949 0.662874
## ma1 -0.192025 2.6032e-01 -0.737643 0.460732
## omega 333.758320 1.2022e+03 0.277628 0.781298
## alpha1 0.067785 2.1837e-02 3.104147 0.001908
## beta1 0.931215 2.2490e-02 41.406477 0.000000
##
## LogLikelihood : -3819.256
##
## Information Criteria
## ------------------------------------
##
## Akaike 15.393
## Bayes 15.444
## Shibata 15.393
## Hannan-Quinn 15.413
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.6469 0.4212
## Lag[2*(p+q)+(p+q)-1][5] 1.3809 0.9993
## Lag[4*(p+q)+(p+q)-1][9] 3.8111 0.7345
## d.o.f=2
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.000244 0.9875
## Lag[2*(p+q)+(p+q)-1][5] 1.679915 0.6957
## Lag[4*(p+q)+(p+q)-1][9] 2.652015 0.8147
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 2.045 0.500 2.000 0.1527
## ARCH Lag[5] 2.086 1.440 1.667 0.4525
## ARCH Lag[7] 2.170 2.315 1.543 0.6813
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 1.2669
## Individual Statistics:
## mu 0.08433
## ar1 0.32180
## ma1 0.30541
## omega 0.49098
## alpha1 0.35782
## beta1 0.34619
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.49 1.68 2.12
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.2178 0.8277
## Negative Sign Bias 0.2467 0.8052
## Positive Sign Bias 1.0513 0.2936
## Joint Effect 1.2759 0.7349
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 27.95 0.08440
## 2 30 51.39 0.00637
## 3 40 51.81 0.08219
## 4 50 67.49 0.04100
##
##
## Elapsed time : 0.1508019
Nhận xét mô hình GARCH(1,1)
Kết quả cho thấy các hệ số của mô hình GARCH(1,1) đều dương, trong đó α₁ = 0.35782 và β₁ = 0.34619.
Tổng α₁ + β₁ = 0.7039 < 1, nên mô hình ổn định và hội tụ, nghĩa là biến động trong chuỗi sẽ dần giảm theo thời gian chứ không tăng mãi.
Các kiểm định Sign Bias đều có p-value > 0.05 nên không có hiệu ứng bất cân xứng – tức là tin xấu và tin tốt ảnh hưởng gần như như nhau đến mức độ biến động của chuỗi.
Kiểm định Pearson cho thấy hầu hết các nhóm đều có p-value > 0.05, chỉ có một vài nhóm nhỏ chưa thật sự tốt, nhưng nhìn chung mô hình vẫn phù hợp để mô tả phương sai thay đổi theo thời gian.
spec_tgarch <- ugarchspec(
variance.model = list(model = "fGARCH", submodel = "TGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(1,1))
)
fit_tgarch <- ugarchfit(spec_tgarch, data = dy)
show(fit_tgarch)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : fGARCH(1,1)
## fGARCH Sub-Model : TGARCH
## Mean Model : ARFIMA(1,0,1)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu -16.81450 20.049017 -0.83867 0.401655
## ar1 0.13790 0.236121 0.58403 0.559202
## ma1 -0.18359 0.235834 -0.77846 0.436295
## omega 20.75639 8.018594 2.58853 0.009639
## alpha1 0.11866 0.024774 4.78945 0.000002
## beta1 0.87488 0.025100 34.85500 0.000000
## eta11 0.34283 0.162235 2.11319 0.034584
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu -16.81450 20.016390 -0.84004 0.400888
## ar1 0.13790 0.074179 1.85902 0.063024
## ma1 -0.18359 0.060144 -3.05249 0.002270
## omega 20.75639 13.909665 1.49223 0.135639
## alpha1 0.11866 0.034980 3.39216 0.000693
## beta1 0.87488 0.040167 21.78094 0.000000
## eta11 0.34283 0.257424 1.33178 0.182932
##
## LogLikelihood : -3814.159
##
## Information Criteria
## ------------------------------------
##
## Akaike 15.377
## Bayes 15.436
## Shibata 15.377
## Hannan-Quinn 15.400
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.09978 0.7521
## Lag[2*(p+q)+(p+q)-1][5] 0.38312 1.0000
## Lag[4*(p+q)+(p+q)-1][9] 2.03242 0.9831
## d.o.f=2
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.04202 0.8376
## Lag[2*(p+q)+(p+q)-1][5] 1.45421 0.7512
## Lag[4*(p+q)+(p+q)-1][9] 2.65258 0.8146
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 0.6134 0.500 2.000 0.4335
## ARCH Lag[5] 0.7721 1.440 1.667 0.8015
## ARCH Lag[7] 1.0387 2.315 1.543 0.9072
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 1.1581
## Individual Statistics:
## mu 0.03646
## ar1 0.30960
## ma1 0.29331
## omega 0.24537
## alpha1 0.25787
## beta1 0.23876
## eta11 0.15389
##
## 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 0.4564 0.6483
## Negative Sign Bias 0.2804 0.7793
## Positive Sign Bias 1.0806 0.2804
## Joint Effect 1.2468 0.7418
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 34.47 0.01617
## 2 30 39.32 0.09572
## 3 40 52.13 0.07772
## 4 50 56.42 0.21729
##
##
## Elapsed time : 0.6152658
Nhận xét mô hình TGARCH(1,1)
Kết quả cho thấy các hệ số của mô hình TGARCH(1,1) đều có ý nghĩa
thống kê.
Trong đó: - α₁ = 0.11866 và β₁ = 0.87488 → tổng α₁ + β₁ = 0.99354 <
1
⟹ Mô hình ổn định và hội tụ, thể hiện biến động giảm
dần về mức cân bằng theo thời gian.
Đặc biệt, hệ số η₁₁ (eta₁₁) = 0.34283 > 0 và có
p-value = 0.0346 < 0.05
⟹ Có hiệu ứng đòn bẩy (leverage effect) — tức là
các cú sốc âm (tin xấu) làm độ biến động của chuỗi tăng
mạnh hơn so với cú sốc dương (tin tốt).
Kiểm định Sign Bias: - Các giá trị p-value của Sign
Bias, Negative Sign Bias, Positive Sign Bias và Joint Effect đều >
0.05.
→ Không bác bỏ giả thuyết H₀ ⇒ mô hình đã xử lý tốt hiệu ứng bất
cân xứng, phần dư không còn sai lệch dấu.
Kiểm định Ljung–Box và ARCH: - Tất cả p-value đều
> 0.05 ⇒ Không có tự tương quan phần dư và không còn hiệu ứng
ARCH.
→ Mô hình TGARCH(1,1) phù hợp về mặt thống kê.
Kiểm định ổn định (Nyblom test): - Joint Statistic =
1.1581 < 1.69 (ngưỡng 10%)
→ Các tham số của mô hình ổn định theo thời gian.
Kiểm định Pearson Goodness-of-Fit: - Hầu hết các
nhóm có p-value > 0.05, chỉ nhóm 20 hơi thấp (0.01617)
→ Nhìn chung, mô hình phù hợp với dữ liệu.
Kết luận: Mô hình TGARCH(1,1) ổn
định, phù hợp, và thể hiện rõ hiệu ứng đòn bẩy (η₁₁ >
0) — tức là tin xấu làm biến động giá mạnh hơn tin tốt.
Mô hình này mô tả tốt sự thay đổi phương sai theo thời gian của chuỗi
lợi suất CTG.
spec_egarch <- ugarchspec(
variance.model = list(model = "eGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(1,1)),
distribution.model = "std"
)
fit_egarch <- ugarchfit(spec = spec_egarch, data = dy, solver = "hybrid")
fit_egarch
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : eGARCH(1,1)
## Mean Model : ARFIMA(1,0,1)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu 3.168881 14.227315 0.22273 0.823744
## ar1 0.624750 0.034476 18.12114 0.000000
## ma1 -0.690654 0.032854 -21.02211 0.000000
## omega 0.238142 0.007954 29.94124 0.000000
## alpha1 -0.055014 0.031297 -1.75782 0.078778
## beta1 0.980426 0.000057 17322.00374 0.000000
## gamma1 0.186146 0.017047 10.91946 0.000000
## shape 4.566342 0.892696 5.11522 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu 3.168881 12.889619 0.24585 0.805800
## ar1 0.624750 0.013140 47.54733 0.000000
## ma1 -0.690654 0.013789 -50.08907 0.000000
## omega 0.238142 0.008047 29.59473 0.000000
## alpha1 -0.055014 0.031750 -1.73272 0.083145
## beta1 0.980426 0.000047 21037.77404 0.000000
## gamma1 0.186146 0.014652 12.70439 0.000000
## shape 4.566342 0.978547 4.66645 0.000003
##
## LogLikelihood : -3782.135
##
## Information Criteria
## ------------------------------------
##
## Akaike 15.252
## Bayes 15.320
## Shibata 15.252
## Hannan-Quinn 15.279
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.2657 0.6062
## Lag[2*(p+q)+(p+q)-1][5] 1.0124 1.0000
## Lag[4*(p+q)+(p+q)-1][9] 3.2048 0.8572
## d.o.f=2
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.01783 0.8938
## Lag[2*(p+q)+(p+q)-1][5] 1.81269 0.6633
## Lag[4*(p+q)+(p+q)-1][9] 3.40254 0.6911
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 1.593 0.500 2.000 0.2069
## ARCH Lag[5] 1.697 1.440 1.667 0.5420
## ARCH Lag[7] 1.892 2.315 1.543 0.7401
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 1.0646
## Individual Statistics:
## mu 0.1028
## ar1 0.1394
## ma1 0.1363
## omega 0.2194
## alpha1 0.2140
## beta1 0.2190
## gamma1 0.0301
## shape 0.2535
##
## 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 0.4449 0.6566
## Negative Sign Bias 0.2849 0.7758
## Positive Sign Bias 1.0933 0.2748
## Joint Effect 1.2765 0.7347
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 7.748 0.9890
## 2 30 14.087 0.9909
## 3 40 28.473 0.8930
## 4 50 29.258 0.9887
##
##
## Elapsed time : 1.2548
Nhận xét mô hình EGARCH(1,1)
Kết quả ước lượng cho thấy: - Hệ số α₁ = -0.0550 và β₁ = 0.9804, tổng
(α₁ + β₁) ≈ 0.925 < 1
→ Mô hình ổn định và hội tụ, thể hiện rằng biến động
trong chuỗi sẽ giảm dần theo thời gian.
- Hệ số γ₁ (gamma₁) = 0.1862 > 0 và có p-value = 0.0000 <
0.05
→ Có hiệu ứng đòn bẩy (leverage effect), nghĩa là
các cú sốc âm (tin xấu) làm tăng biến động nhiều hơn
các cú sốc dương (tin tốt).
Điều này phản ánh đúng đặc trưng của chuỗi tài chính: thị trường thường
phản ứng mạnh hơn với tin xấu.
Kiểm định Sign Bias:
Kiểm định Ljung–Box và ARCH:
Kiểm định ổn định (Nyblom test): - Joint Statistic = 1.0646 < 1.89 ⇒ các tham số ổn định theo thời gian, mô hình không bị thay đổi cấu trúc.
Kiểm định Pearson Goodness-of-Fit: - Các nhóm có p-value rất cao (> 0.89), chứng tỏ mô hình phù hợp với dữ liệu, sai số nhỏ và phân phối tốt.
Kết luận: Mô hình EGARCH(1,1) phù
hợp và ổn định, thể hiện rõ hiệu ứng đòn bẩy (γ₁ >
0).
Điều này có nghĩa là tin xấu làm tăng biến động mạnh hơn tin
tốt, đúng với đặc điểm của chuỗi lợi suất chứng khoán.
Phần dư đạt chuẩn, không còn tự tương quan hay hiệu ứng ARCH, nên mô
hình EGARCH(1,1) mô tả rất tốt sự thay đổi phương sai theo thời
gian.
# IGARCH(1,1)
spec_igarch <- ugarchspec(
variance.model = list(model = "iGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(1,1)),
distribution.model = "std"
)
fit_igarch <- ugarchfit(spec = spec_igarch, data = dy)
fit_igarch
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : iGARCH(1,1)
## Mean Model : ARFIMA(1,0,1)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu 7.075420 14.005803 0.50518 0.613434
## ar1 0.629088 0.240915 2.61124 0.009021
## ma1 -0.698933 0.221042 -3.16199 0.001567
## omega 318.400905 867.351032 0.36710 0.713548
## alpha1 0.070107 0.018152 3.86221 0.000112
## beta1 0.929893 NA NA NA
## shape 4.809836 0.763694 6.29812 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu 7.075420 14.289434 0.49515 0.620494
## ar1 0.629088 0.232862 2.70155 0.006902
## ma1 -0.698933 0.215761 -3.23939 0.001198
## omega 318.400905 838.723223 0.37963 0.704223
## alpha1 0.070107 0.019471 3.60051 0.000318
## beta1 0.929893 NA NA NA
## shape 4.809836 0.783755 6.13691 0.000000
##
## LogLikelihood : -3783.977
##
## Information Criteria
## ------------------------------------
##
## Akaike 15.251
## Bayes 15.302
## Shibata 15.251
## Hannan-Quinn 15.271
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.7162 0.3974
## Lag[2*(p+q)+(p+q)-1][5] 2.2313 0.8973
## Lag[4*(p+q)+(p+q)-1][9] 5.2508 0.3984
## d.o.f=2
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 7.834e-06 0.9978
## Lag[2*(p+q)+(p+q)-1][5] 1.762e+00 0.6755
## Lag[4*(p+q)+(p+q)-1][9] 2.754e+00 0.7988
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 2.186 0.500 2.000 0.1393
## ARCH Lag[5] 2.228 1.440 1.667 0.4229
## ARCH Lag[7] 2.323 2.315 1.543 0.6491
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 0.9595
## Individual Statistics:
## mu 0.15233
## ar1 0.19399
## ma1 0.19732
## omega 0.32786
## alpha1 0.03046
## shape 0.19580
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.49 1.68 2.12
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.1794 0.8577
## Negative Sign Bias 0.1836 0.8544
## Positive Sign Bias 1.0095 0.3132
## Joint Effect 1.2050 0.7518
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 12.98 0.8396
## 2 30 21.09 0.8559
## 3 40 25.25 0.9565
## 4 50 43.14 0.7085
##
##
## Elapsed time : 0.09954214
Nhận xét
Phương trình được viết dưới dạng dưới đây:
\[ \sigma_t^2 = 318.400905 + 0.070107 \epsilon_{t-1}^2 + 0.929893 \sigma_{t-1}^2 \]
Kết quả ước lượng cho thấy:
Hệ số α₁ = 0.070107 và β₁ = 0.929893, trong đó tổng α₁ + β₁ = 1 → Đây là đặc trưng của mô hình IGARCH, thể hiện độ dai dẳng bằng 1, nghĩa là các cú sốc trong quá khứ ảnh hưởng rất lâu dài đến biến động hiện tại. → Điều này phù hợp với chuỗi lợi suất của mã CTG vốn có hiện tượng “volatility clustering” - giai đoạn biến động mạnh kéo dài sau các thông tin lớn trên thị trường.
→ Nhìn chung, mô hình IGARCH(1,1) cho thấy CTG có biến động ghi nhớ dài hạn, phản ứng mạnh và kéo dài trước các cú sốc của thị trường.
Kiểm định Sign Bias
Các p-value của Sign Bias, Negative Sign Bias, Positive Sign Bias và Joint Effect đều > 0.05 → Không có dấu hiệu về hiệu ứng bất cân xứng chưa được mô hình hóa. → Điều này phù hợp vì IGARCH không phải mô hình mô tả bất cân xứng, nên việc không có sai lệch dấu chứng tỏ mô hình phù hợp.
Kiểm định Ljung–Box
Các p-value đều > 0.05 → Phần dư không có tự tương quan
Kiểm định ổn định (Nyblom test)
Joint Statistic = 0.9595 < 1.49 → Các tham số của mô hình ổn định theo thời gian, không bị thay đổi cấu trúc. → Điều này nghĩa là IGARCH hoạt động tốt trên dữ liệu CTG trong giai đoạn phân tích (2022–2023).
Kiểm định Pearson Goodness-of-Fit
Các nhóm đều có p-value cao (0.70 – 0.95) → Cho thấy mô hình phù hợp với dữ liệu, phân phối phần dư được mô tả tốt.
Kết luận IGARCH(1,1) là mô hình phù hợp để mô tả volatility persistence (biến động ghi nhớ dài hạn) của mã CTG. Tuy nhiên, nếu muốn mô tả hiệu ứng tin xấu – tin tốt rõ hơn, TGARCH và EGARCH vẫn là lựa chọn tốt hơn.
# Dự báo GARCH(1,1)
forecast_garch <- ugarchforecast(fit_garch, n.ahead = 10)
forecast_garch
##
## *------------------------------------*
## * GARCH Model Forecast *
## *------------------------------------*
## Model: sGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
##
## 0-roll forecast [T0=498-01-01]:
## Series Sigma
## T+1 -3.505200 262.6
## T+2 -0.415898 263.1
## T+3 -0.041145 263.6
## T+4 0.004315 264.1
## T+5 0.009830 264.6
## T+6 0.010499 265.1
## T+7 0.010580 265.6
## T+8 0.010590 266.1
## T+9 0.010591 266.6
## T+10 0.010591 267.1
# Vẽ biểu đồ volatility
plot(forecast_garch, which = 1) # dự báo giá trị trung bình
# Dự báo TGARCH(1,1)
forecast_tgarch <- ugarchforecast(fit_tgarch, n.ahead = 10)
forecast_tgarch
##
## *------------------------------------*
## * GARCH Model Forecast *
## *------------------------------------*
## Model: fGARCH
## fGARCH Sub-Model: TGARCH
##
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
##
## 0-roll forecast [T0=498-01-01]:
## Series Sigma
## T+1 -19.92 299.2
## T+2 -17.24 310.8
## T+3 -16.87 322.1
## T+4 -16.82 333.1
## T+5 -16.82 343.7
## T+6 -16.81 354.0
## T+7 -16.81 363.9
## T+8 -16.81 373.6
## T+9 -16.81 383.0
## T+10 -16.81 392.1
plot(forecast_tgarch, which = 1)
# Dự báo mô hình EGARCH(1,1)
forecast_egarch <- ugarchforecast(fit_egarch, n.ahead = 10)
forecast_egarch
##
## *------------------------------------*
## * GARCH Model Forecast *
## *------------------------------------*
## Model: eGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
##
## 0-roll forecast [T0=498-01-01]:
## Series Sigma
## T+1 -12.7573 266.8
## T+2 -6.7810 269.4
## T+3 -3.0473 272.0
## T+4 -0.7147 274.6
## T+5 0.7426 277.1
## T+6 1.6531 279.6
## T+7 2.2219 282.1
## T+8 2.5772 284.5
## T+9 2.7993 286.9
## T+10 2.9380 289.3
plot(forecast_egarch, which = 1)
forecast_igarch <- ugarchforecast(fit_igarch, n.ahead = 10)
forecast_igarch
##
## *------------------------------------*
## * GARCH Model Forecast *
## *------------------------------------*
## Model: iGARCH
## Horizon: 10
## Roll Steps: 0
## Out of Sample: 0
##
## 0-roll forecast [T0=498-01-01]:
## Series Sigma
## T+1 -9.2467 262.3
## T+2 -3.1926 263.0
## T+3 0.6159 263.6
## T+4 3.0118 264.2
## T+5 4.5191 264.8
## T+6 5.4672 265.4
## T+7 6.0637 266.0
## T+8 6.4390 266.6
## T+9 6.6750 267.2
## T+10 6.8235 267.8
plot(forecast_igarch, which = 1)
# Tạo bảng tổng hợp kết quả dự báo 4 mô hình
comparison_forecast <- data.frame(
Step = 1:10,
GARCH_Mean = as.numeric(fitted(forecast_garch)),
TGARCH_Mean = as.numeric(fitted(forecast_tgarch)),
EGARCH_Mean = as.numeric(fitted(forecast_egarch)),
IGARCH_Mean = as.numeric(fitted(forecast_igarch)),
GARCH_Vol = as.numeric(sigma(forecast_garch)),
TGARCH_Vol = as.numeric(sigma(forecast_tgarch)),
EGARCH_Vol = as.numeric(sigma(forecast_egarch)),
IGARCH_Vol = as.numeric(sigma(forecast_igarch))
)
comparison_forecast
## Step GARCH_Mean TGARCH_Mean EGARCH_Mean IGARCH_Mean GARCH_Vol TGARCH_Vol
## 1 1 -3.505200236 -19.92354 -12.7573074 -9.2467025 262.5788 299.1676
## 2 2 -0.415897613 -17.24324 -6.7810036 -3.1926239 263.0826 310.8148
## 3 3 -0.041144701 -16.87362 -3.0473084 0.6159215 263.5849 322.1073
## 4 4 0.004315315 -16.82265 -0.7146827 3.0118299 264.0857 333.0559
## 5 5 0.009829916 -16.81562 0.7426249 4.5190660 264.5851 343.6712
## 6 6 0.010498874 -16.81465 1.6530777 5.4672495 265.0831 353.9632
## 7 7 0.010580023 -16.81452 2.2218830 6.0637399 265.5796 363.9419
## 8 8 0.010589867 -16.81450 2.5772440 6.4389846 266.0747 373.6168
## 9 9 0.010591061 -16.81450 2.7992558 6.6750463 266.5684 382.9970
## 10 10 0.010591206 -16.81450 2.9379576 6.8235499 267.0607 392.0917
## EGARCH_Vol IGARCH_Vol
## 1 266.8369 262.3487
## 2 269.4421 262.9548
## 3 272.0211 263.5595
## 4 274.5735 264.1629
## 5 277.0993 264.7648
## 6 279.5981 265.3655
## 7 282.0699 265.9647
## 8 284.5146 266.5626
## 9 286.9319 267.1592
## 10 289.3219 267.7544
Nhận xét
1. Mức kì vọng trung bình của chuỗi lợi suất
GARCH(1,1): Mean nhanh chóng ổn định quanh 0 (từ -3.50 lên 0.0106).
TGARCH(1,1): Mean giữ ở mức âm sâu và gần như không đổi, khoảng -16.81 → phản ánh mô hình nhạy với tin xấu.
EGARCH(1,1): Mean tăng dần từ -12.79 → 2.91, cho thấy xu hướng phục hồi.
IGARCH(1,1): Mean tăng ổn định từ -9.24 → 6.82, đúng tính dai dẳng của IGARCH.
2. Dự báo về mức độ biến động (rủi ro) của chuỗi lợi suất
GARCH: σₜ tăng nhẹ từ 262.58 → 267.06, biến động thấp và ổn định,tức là nếu thị trường không có biến động lớn, CTG dự kiến dao động trong vùng rủi ro quen thuộc.
TGARCH: σₜ tăng mạnh nhất (300+), thể hiện dự báo rủi ro cao ,nghĩa là Thị trường CTG có thể phản ứng tiêu cực mạnh trước các tin xấu nên nhà đầu tư đối diện nguy cơ biến động lớn hơn trong thời gian tới.
Nhà đầu tư đối diện nguy cơ biến động lớn hơn trong thời gian tới.
EGARCH: σₜ tăng vừa phải (khoảng 270 trở lên )nghĩa là chuỗi giá CTG tăng nhưng có kiểm soát
IGARCH: σₜ tăng từ từ giống GARCH (263 → 266), tức biến động của CTG duy trì lâu dài, phản ứng chậm nhưng kéo dài.
library(ggplot2)
df_vol <- data.frame(
Step = 1:10,
GARCH = as.numeric(sigma(forecast_garch)),
TGARCH = as.numeric(sigma(forecast_tgarch)),
EGARCH = as.numeric(sigma(forecast_egarch)),
IGARCH = as.numeric(sigma(forecast_igarch))
)
ggplot(df_vol, aes(x = Step)) +
geom_line(aes(y = GARCH, color = "GARCH(1,1)"), size = 1) +
geom_line(aes(y = TGARCH, color = "TGARCH(1,1)"), size = 1) +
geom_line(aes(y = EGARCH, color = "EGARCH(1,1)"), size = 1.1) +
geom_line(aes(y = IGARCH, color = "IGARCH(1,1)"), size = 1.1, linetype = "dashed") +
labs(title = "So sánh độ biến động dự báo (Volatility Forecast)",
y = "σ_t", x = "Bước dự báo") +
scale_color_manual(values = c(
"GARCH(1,1)" = "blue",
"TGARCH(1,1)" = "green",
"EGARCH(1,1)" = "red",
"IGARCH(1,1)" = "purple"
)) +
theme_minimal()
Nhận xét
Từ biểu đồ có thể thấy:
TGARCH(1,1) cho dự báo biến động cao nhất vì nhạy mạnh với tin xấu.
EGARCH(1,1) dự báo ổn định và tăng nhẹ, phản ánh đúng bất cân xứng trên thị trường CTG.
IGARCH(1,1) và GARCH(1,1) cho dự báo gần như giống nhau, thấp và ổn định.
Tóm lại: EGARCH(1,1) là mô hình phù hợp nhất để mô tả và dự báo biến động giá cổ phiếu CTG; TGARCH phù hợp khi thị trường có cú sốc mạnh; IGARCH thể hiện tính dai dẳng nhưng không dự báo tốt bằng EGARCH.