1 GIỚI THIỆU

1.1 Đặt vấn đề

Trong bối cảnh nền kinh tế Việt Nam đang chuyển mình mạnh mẽ và mở rộng hội nhập toàn cầu, các chỉ số kinh tế và tài chính ngày càng trở thành những công cụ quan trọng để đánh giá tình trạng phát triển của quốc gia. Sự tăng trưởng ổn định và hội nhập quốc tế không chỉ phản ánh sự phát triển toàn diện của nền kinh tế mà còn tạo ra những cơ hội và thách thức mới cho các nhà đầu tư và các cơ quan quản lý.

Theo Bộ Công Thương, năm 2019, xuất khẩu của doanh nghiệp FDI đạt 181,35 tỷ USD, chiếm 70,1% và tăng lên 202,89 tỷ USD, chiếm 72,3% năm 2020. Đến năm 2021, kim ngạch xuất khẩu của doanh nghiệp FDI ước đạt 247,5 tỷ USD tăng 21,1%, chiếm 73,6% tổng kim ngạch xuất khẩu. Trong khi đó, kim ngạch xuất khẩu của khu vực doanh nghiệp trong nước ước đạt khoảng 88,7 tỷ USD, tăng 13,4%, thấp hơn mức tăng trưởng xuất khẩu chung của cả nước (19%) và chỉ chiếm 26,4% kim ngạch xuất khẩu (cùng kỳ năm 2020 chiếm 27,7%). Từ những số liệu trên thể hiện sự phụ thuộc của thị trường Việt Nam đối với thị trường quốc tế.

Liên kết thương mại giữa các quốc gia và tự do hóa thương mại đã khiến mức độ phụ thuộc lẫn nhau giữa các TTCK có liên quan với lượng vốn FDI và đầu tư gián tiếp mà mỗi quốc gia nhận được, do đó một cú sốc xảy ra trên thị trường tài chính của một quốc gia sẽ dẫn đến sự biến động nhanh chóng đến thị trường tài chính của các quốc gia còn lại. Việc hiểu biết chính xác cấu trúc phụ thuộc giữa các TTCK có vai trò rất quan trọng đối với các nhà đầu tư và các nhà hoạch định chính sách trong lĩnh vực tài chính như đa dạng hóa danh mục đầu tư quốc tế, quản lý rủi ro và định giá tài sản. Tính đến năm 2022, vốn đầu tư của doanh nhân Đài Loan chiếm khoảng 8% tổng vốn đầu tư nước ngoài vào Việt Nam, với tổng vốn đầu tư lũy kế là 36,4 tỷ USD, trở thành đối tác đầu tư lớn thứ 4 tại Việt Nam. Tuy nhiên, nếu cộng thêm khoản đầu tư từ các nước thứ ba thì số vốn đầu tư thực tế của doanh nghiệp Đài Loan sẽ vượt quá 50 tỷ USD. Vì thế bài tiểu luận này sẽ nghiên cứu về chủ đề “Đánh giá sự phụ thuộc của thị trường chứng khoán Việt Nam đối với biến động của thị trường chứng khoán Đài Loan trong đại dịch Covid 19 bằng phương pháp Copula

1.2 Đối tượng nghiên cứu

Đối tượng nghiên cứu của bài là chuỗi tỷ suất lợi nhuận của chỉ số thị trường chứng khoán Việt Nam (VNI) và thị trường chứng khoán Đài Loan (TWII)

1.3 Phạm vi nghiên cứu

Chia làm 2 giai đoạn:

  • Về không gian: Nghiên cứu mức độ phụ thuộc của thị trường chứng khoán Việt Nam khi thị trường chứng khoán Đài Loan biến động.

  • Về thời gian: Phạm vi thời gian được sử dụng để phân tích sự phụ thuộc là từ ngày 1 tháng 1 năm 2020 đến ngày 30 tháng 12 năm 2022.

1.4 Mục tiêu nghiên cứu

Nghiên cứu mức độ phản ứng của thị trường chứng khoán Việt Nam đối với biến động của thị trường chứng khoán Singapore trong giai đoạn 2020 - 2022 nhằm đề xuất những kiến nghị để giúp nhà đầu tư hay các tổ chức có thể quản lý rủi ro hay nắm bắt cơ hội đầu tư khi các thị trường có những cú sốc tương tự trong tương lai.

2 LÝ THUYẾT VÀ TỔNG QUAN NGHIÊN CỨU

2.1 Lý thuyết về thị trường chứng khoán

  • Thị trường chứng khoán là một phần của hệ thống tài chính trong đó các công ty cổ phần, tổ chức tài chính và cá nhân có thể mua và bán các chứng khoán như cổ phiếu, trái phiếu và các công cụ tài chính khác. Nó cung cấp cho các doanh nghiệp một nguồn tài trợ trọng yếu để mở rộng hoạt động kinh doanh, đầu tư vào công nghệ và nghiên cứu phát triển. Đây cũng là một kênh quan trọng để các nhà đầu tư có thể đầu tư và kiếm lợi nhuận từ các hoạt động giao dịch trên thị trường chứng khoán.

  • Dựa trên thời hạn luân chuyển vốn, thị trường chứng khoán được chia làm 2 loại đó là thị trường sơ cấp và thị trường thứ cấp.Thị trường sơ cấp là nơi chứng khoán được tạo ra. Tại thị trường này, các công ty bán (phát hành) cổ phiếu và trái phiếu mới cho công chúng lần đầu tiên, IPO (Initial Public Offering) là một ví dụ về thị trường sơ cấp. Các giao dịch này tạo cơ hội cho các nhà đầu tư mua chứng khoán từ ngân hàng đã thực hiện bảo lãnh phát hành ban đầu cho một cổ phiếu cụ thể. IPO xảy ra khi một công ty tư nhân phát hành cổ phiếu ra công chúng lần đầu tiên. Sau khi chứng khoán được phát hành và niêm yết cổ phiếu được tạo, các cổ phiếu và trái phiếu mới có thể được giao dịch trên thị trường thứ cấp thông qua các nhà môi giới hay nền tảng giao dịch điện tử.

2.2 Tổng quan thị trường chứng khoán Việt Nam trong đại dịch

  • Dịch bệnh ảnh hưởng tới TTCK trong nước từ cuối tháng 01/2020 khiến cho VN-index giảm từ 1.000 điểm cuối năm 2019 xuống còn 645 điểm cuối tháng 3/2020. Sau đó nhờ các biện pháp phòng chống dịch tích cực của Chính phủ, thị trường đã có sự phục hồi ngoạn mục khi chỉ số VN-Index đạt 1.103,87 điểm vào ngày 31/12/2020. Năm 2021 ghi nhận chỉ số VN-Index tăng 35,7% so với cuối năm 2020. Đặc biệt vào ngày 25/11/2021, VN-index đạt 1.500,81 điểm, cao nhất trong 21 năm hoạt động của thị trường. Thanh khoản thị trường đạt gần 22.000 tỷ đồng, tăng gấp 3,4 lần so với năm 2020. Xu hướng tăng điểm tiếp tục kéo dài tới đầu năm 2022, khi dịch bệnh đã được kiểm soát gần như hoàn toàn. Năm 2022 là một năm đầy biến động đối với thị trường chứng khoán Việt Nam. Sau một khởi đầu đầy hứa hẹn, thị trường đã trải qua một giai đoạn điều chỉnh sâu sắc, ảnh hưởng đến tâm lý nhà đầu tư do những nguyên nhân như lạm phát, sai phạm về trái phiếu doanh nghiệp, căng thẳng địa chính trị,…

2.3 Tổng quan thị trường chứng khoán Đài Loan trong đại dịch

  • Từ năm 2020 đến 2022, thị trường chứng khoán Đài Loan đã trải qua những biến động đáng kể. Vào cuối năm 2020, chỉ số TWII đạt khoảng 14.000 điểm, phản ánh sự phục hồi mạnh mẽ sau cú sốc đại dịch COVID-19 với mức tăng hơn 20% so với đầu năm. Năm 2021, chỉ số này tiếp tục tăng mạnh, đạt mức cao nhất khoảng 17.000 điểm vào tháng 9, với mức tăng khoảng 22% trong cả năm nhờ vào nhu cầu cao đối với cổ phiếu công nghệ và bán dẫn. Tuy nhiên, năm 2022 chứng kiến sự điều chỉnh đáng kể, khi chỉ số TWSE giảm xuống còn khoảng 14.000 điểm vào cuối năm do tác động của lạm phát toàn cầu, chính sách tiền tệ thắt chặt, và bất ổn địa chính trị. Những con số này cho thấy thị trường chứng khoán Đài Loan đã hồi phục nhanh chóng từ đại dịch nhưng cũng đối mặt với sự biến động lớn trong bối cảnh toàn cầu.

3 THIẾT KẾ NGHIÊN CỨU

3.1 Phương pháp nghiên cứu

  • Phương pháp nghiên cứu của bài luận được trình bày theo thứ tự với bốn bước cụ thể là: (1) Kiểm định phân phối chuẩn, (2) Kiểm định tính phù hợp của mô hình, (3) Ước lượng tham số mô hình copula, (4) Lựa chọn mô hình copula phù hợp.

3.1.1 Xác định mô hình phân phối

  • Kiểm tra sự tồn tại của hiệu ứng ARCH: Để xác định liệu dữ liệu chuỗi lợi suất có hiện tượng biến động không đều (ARCH effect) hay không, chúng tôi sử dụng kiểm định Lagrange Multiplier (LM). Kiểm định này giúp phát hiện sự biến động không đồng nhất trong dữ liệu bằng cách kiểm tra sự phụ thuộc của phương sai của phần dư vào các giá trị trước đó. Nếu kết quả kiểm định cho thấy có sự tồn tại của hiệu ứng ARCH, điều này cho thấy rằng các biến động trong chuỗi lợi suất có xu hướng thay đổi theo thời gian và cần được mô hình hóa bằng các mô hình biến động như GARCH

  • Xác định bậc p và q cho mô hình ARMA: Để xác định bậc p (số lượng trễ trong phần tự hồi quy) và q (số lượng trễ trong phần trung bình chuyển động) cho mô hình ARMA, chúng tôi dựa vào các tiêu chuẩn thông tin như AIC (Akaike Information Criterion) và BIC (Bayesian Information Criterion). Quá trình này bao gồm việc ước lượng mô hình ARMA cho các giá trị khác nhau của p và q, và sau đó so sánh các giá trị của AIC và BIC cho từng mô hình. AIC và BIC giúp đánh giá sự cân bằng giữa độ phù hợp của mô hình với dữ liệu và độ phức tạp của mô hình. Mô hình với các giá trị p và q tạo ra AIC và BIC thấp nhất được coi là mô hình tối ưu, vì nó cung cấp sự mô tả tốt nhất về chuỗi lợi suất với số lượng tham số tối ưu. Điều này đảm bảo rằng mô hình không bị quá khớp và có khả năng dự đoán chính xác các giá trị trong tương lai.

  • Xây dựng mô hình ARMA (p,q) – GJR – GARCH (r,m): Sau khi xác định bậc p và q cho mô hình ARMA, chúng tôi mở rộng mô hình bằng cách thêm phần GJR – GARCH (r,m). Mô hình ARMA (p,q) mô tả phần tự hồi quy và trung bình chuyển động của chuỗi dữ liệu, trong khi GJR – GARCH (r,m) xử lý hiệu ứng biến động và hiệu ứng đòn bẩy. Phần GJR – GARCH (r,m) giúp nắm bắt các biến động không đối xứng trong dữ liệu, cung cấp cái nhìn toàn diện về rủi ro và sự biến động trong chuỗi lợi suất.

  • Lựa chọn mô hình biên phù hợp nhất: Để chọn ra mô hình biên ARMA – GJR – GARCH tối ưu, chúng tôi sử dụng các tiêu chuẩn thông tin như AIC (Akaike Information Criterion), BIC (Bayesian Information Criterion), SIC (Schwarz Information Criterion) và HQIC (Hannan-Quinn Information Criterion). Các tiêu chuẩn này giúp đánh giá sự cân bằng giữa độ chính xác của mô hình và độ phức tạp của nó.

3.1.2 Kiểm định tính phù hợp cho mô hình phân phối biên

Sau khi đã xác định mô hình biên tối ưu cho mỗi chuỗi lợi suất, chúng ta tiến hành tính toán phần dư chuẩn hóa từ mô hình này, ký hiệu là cặp dữ liệu z1t và z2t tại thời điểm t. Tiếp theo, sử dụng hàm phân phối biên thực nghiệm để chuyển đổi z1t và z2t thành giá trị xác suất hoặc giá trị tích phân: ut=F1(z1t|Ωt−1) và vt=F2(z2t|Ωt−1). Với các giá trị xác suất ut và vt, chúng ta xây dựng mô hình copula phi tham số C(ut,vt), mô hình này mô tả mức độ phụ thuộc giữa ut và vt mà không cần xác định các tham số cụ thể của copula. Mô hình copula phi tham số có tính linh hoạt cao hơn và phù hợp với nhiều tình huống so với mô hình copula tham số.

Cuối cùng, để đảm bảo tính phù hợp của mô hình copula và hàm phân phối biên, chúng ta sử dụng các kiểm định thống kê bao gồm:

  • Kiểm định Anderson – Darling (A-D): Kiểm tra sự khớp giữa phân phối biên dự kiến và phân phối biên thực nghiệm. Giá trị p lớn cho thấy không có bằng chứng đủ để bác bỏ tính phù hợp của hàm phân phối biên.

  • Kiểm định Cramer – von Mises (Cv-M): Đo lường sự khác biệt giữa phân phối biên dự kiến và phân phối biên thực nghiệm. Giá trị p của kiểm định này cũng phản ánh mức độ phù hợp của hàm phân phối biên.

  • Kiểm định Kolmogorov – Smirnov (K-S): Kiểm tra sự khác biệt giữa phân phối biên dự kiến và phân phối biên thực nghiệm. Tương tự như A-D và Cv-M, giá trị p của K-S cũng giúp đánh giá tính phù hợp của hàm phân phối biên.

3.1.3 Ước lượng các tham số

  • Phương pháp suy luận cận biên (IFM) là một kỹ thuật hiệu quả để ước lượng tham số cho mô hình copula, đặc biệt khi xử lý các mô hình điều kiện phức tạp. Phương pháp này phân tách việc ước lượng tham số của hàm phân phối biên và của copula. Đầu tiên, chúng ta ước lượng tham số của hàm phân phối biên cho từng biến độc lập bằng cách sử dụng các phương pháp như MLE hoặc phương pháp moments. Sau đó, với các tham số của hàm phân phối biên đã ước lượng, chúng ta xây dựng hàm IFM dựa trên hàm mật độ xác suất (PDF) hoặc hàm khối lượng xác suất (PMF). Hàm IFM cho phép tính toán các đạo hàm của hàm copula theo các tham số của hàm phân phối biên, từ đó ước lượng các tham số của copula một cách độc lập. Phương pháp này giúp quản lý các mô hình phức tạp bằng cách xử lý riêng biệt từng thành phần của copula và phân phối biên

3.1.4 Lựa chọn mô hình copula phù hợp

  • Sau khi ước lượng, sử dụng các kiểm định thống kê như Cramer-von Mises để đánh giá mức độ phù hợp của các mô hình với dữ liệu, với mô hình có giá trị p cao hơn cho thấy sự phù hợp tốt hơn. Ngoài việc thực hiện các kiểm định sự phù hợp, cần áp dụng các tiêu chuẩn thông tin như Akaike Information Criterion (AIC) và Bayesian Information Criterion (BIC) để chọn mô hình có giá trị thấp nhất, điều này giúp cân bằng giữa mức độ phù hợp và độ phức tạp của mô hình, đồng thời tránh hiện tượng overfitting; việc so sánh các mô hình dựa trên các kiểm định và tiêu chuẩn thông tin này sẽ giúp chọn mô hình copula tối ưu nhất, phù hợp với dữ liệu thực tế và không gặp phải vấn đề overfitting hoặc underfitting.

4 Kết quả nghiên cứu

library(PerformanceAnalytics)
## Warning: package 'PerformanceAnalytics' was built under R version 4.4.1
## Loading required package: xts
## Warning: package 'xts' was built under R version 4.4.1
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.4.1
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
library(xlsx)
data <- read.xlsx("D:/THUD/data mhnn.xlsx", sheetName = 2, header = T)
LGTWII <- diff(log(data$TWII), lag = 1)
LGVNI <- diff(log(data$VNI), lag = 1)
mhnn <- data.frame(VNI = LGVNI, TWII = LGTWII)

4.1 Thống kê mô tả

# Thống kê mô tả VNI
mean(mhnn$VNI)  
## [1] 0.0005956991
median(mhnn$VNI)  
## [1] 0.008835355
sd(mhnn$VNI)  
## [1] 0.2815665
var(mhnn$VNI) 
## [1] 0.07927968
min(mhnn$VNI)  
## [1] -0.7320842
max(mhnn$VNI)  
## [1] 0.7587757
# Thống kê mô tả TWII

mean(mhnn$TWII)  
## [1] 0.0005745077
median(mhnn$TWII)  
## [1] -0.003242087
sd(mhnn$TWII)  
## [1] 0.2299603
var(mhnn$TWII)  
## [1] 0.05288175
min(mhnn$TWII)  
## [1] -0.6985373
max(mhnn$TWII)  
## [1] 0.642742

4.2 Phân tích biến động chuỗi tỷ suất sinh lợi

# Biến động theo ngày của tỷ suất sinh lợi VNI
plot.ts(LGVNI)

# Biến động theo ngày của tỷ suất sinh lợi TWII
plot.ts(LGTWII)

Nhìn chung, chỉ số VNI cho thấy mức độ dao động mạnh hơn chỉ số TWII, điều này chứng tỏ rằng rủi ro ở TTCK Việt Nam là lớn hơn rất nhiều so với TTCK Đài Loan. Lý do của sự biến động mạnh này là trong khoảng thời gian nghiên cứu, có xảy ra các cú sốc kinh tế ảnh hưởng đến tâm lý nhà đầu tư do đại dịch Covid, lạm phát, sai phạm về trái phiếu doanh nghiệp, căng thẳng địa chính trị,… Ở chỉ số VNINDEX, tỷ suất sinh lợi dao động mạnh nhất nằm trong khoảng thời gian từ năm 2021 đến giữa năm 2022 khi lợi nhuận giảm tối đa ở mức 0.6, đây cũng là khoảng thời gian mà dịch Covid-19 và cuộc xung đột diễn ra. Các giai đoạn sau hai cú sốc cho thấy mức dao động dần ổn định hơn và ít các biến động cực biên. Với chỉ số TWII, mức dao động của tỷ suất sinh lợi trong khoảng thời gian nghiên cứu cũng biến động khá mạnh, chỉ tồn tại các biến động cực biên ở khoảng thời gian đầu năm 2020 do ảnh hưởng từ đại dịch

4.3 Hệ số tương quan

# Hệ số tương quan Pearson
cor(mhnn)
##            VNI      TWII
## VNI  1.0000000 0.9325515
## TWII 0.9325515 1.0000000
cor.test(mhnn$VNI, mhnn$TWII)
## 
##  Pearson's product-moment correlation
## 
## data:  mhnn$VNI and mhnn$TWII
## t = 69.884, df = 732, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9224362 0.9413878
## sample estimates:
##       cor 
## 0.9325515
tt <- cor(mhnn)
flattenCorrMatrix <- function(cormat, pmat) 
 { ut <- upper.tri(cormat)
  data.frame(
    row = rownames(cormat)[row(cormat)[ut]],
    column = rownames(cormat)[col(cormat)[ut]],
    cor  =(cormat)[ut],
    p = pmat[ut]
    )}
symnum(tt, abbr.colnames = FALSE)
##      VNI TWII
## VNI  1       
## TWII *   1   
## attr(,"legend")
## [1] 0 ' ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.4.1
## corrplot 0.92 loaded
corrplot(tt, type = "upper", order = "hclust", 
         tl.col = "green", tl.srt = 45)

chart.Correlation(mhnn, histogram=TRUE, pch=18)
## Warning in par(usr): argument 1 does not name a graphical parameter

library(ggplot2)
library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.4.1
df <- dplyr::select_if(mhnn, is.numeric)
r <- cor(df, use="complete.obs")
ggcorrplot(r)

Kết quả hệ số tương quan tuyến tính Pearson cho thấy sự tương quan giữa 2 thị trường là cực kỳ lớn với giá trị là 0.9325515.

4.4 Các kiểm định và kết quả ước lượng cấu trúc phụ thuộc dựa trên phương pháp Copula

4.4.1 Các kiểm định

# Kiểm định phân phối chuẩn cho VNI 
library(tseries)
## Warning: package 'tseries' was built under R version 4.4.1
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
pp1 <- mhnn$VNI
ppc1 <-  jarque.bera.test(pp1)
print(ppc1)
## 
##  Jarque Bera Test
## 
## data:  pp1
## X-squared = 6.3715, df = 2, p-value = 0.04135
# Kiểm định tính dừng
adf.test(pp1)
## Warning in adf.test(pp1): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  pp1
## Dickey-Fuller = -14.02, Lag order = 9, p-value = 0.01
## alternative hypothesis: stationary
print(adf.test(pp1))
## Warning in adf.test(pp1): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  pp1
## Dickey-Fuller = -14.02, Lag order = 9, p-value = 0.01
## alternative hypothesis: stationary
# Kiểm định tương quan chuỗi VNI
library(stats)
ppc2 <-  Box.test(pp1, lag = 5, type = "Ljung-Box")
print(ppc2)
## 
##  Box-Ljung test
## 
## data:  pp1
## X-squared = 487.54, df = 5, p-value < 2.2e-16
library(tseries)
# Kiểm định phân phối chuẩn TWII 
pp2 <- mhnn$TWII
ppc3 <-  jarque.bera.test(pp2)
print(ppc3)
## 
##  Jarque Bera Test
## 
## data:  pp2
## X-squared = 5.4918, df = 2, p-value = 0.06419
# Kiểm định tính dừng TWII
adf.test(pp2)
## Warning in adf.test(pp2): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  pp2
## Dickey-Fuller = -13.821, Lag order = 9, p-value = 0.01
## alternative hypothesis: stationary
print(adf.test(pp2))
## Warning in adf.test(pp2): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  pp2
## Dickey-Fuller = -13.821, Lag order = 9, p-value = 0.01
## alternative hypothesis: stationary
# Kiểm định tương quan chuỗi cho BID 
library(stats)
ppc3 <-  Box.test(pp1, lag = 5, type = "Ljung-Box")
print(ppc3)
## 
##  Box-Ljung test
## 
## data:  pp1
## X-squared = 487.54, df = 5, p-value < 2.2e-16
# Kiểm định mô hình ARIMA chi biến VNI
library(tseries) 
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.1
mhVNI <- auto.arima(mhnn$VNI)
mhVNI
## Series: mhnn$VNI 
## ARIMA(5,0,1) with zero mean 
## 
## Coefficients:
##           ar1      ar2     ar3      ar4      ar5      ma1
##       -0.3713  -0.2842  0.0456  -0.2995  -0.2803  -0.7705
## s.e.   0.0462   0.0468  0.0508   0.0405   0.0390   0.0361
## 
## sigma^2 = 0.02517:  log likelihood = 311.37
## AIC=-608.74   AICc=-608.59   BIC=-576.55
# Trích xuất phần dư
du <- residuals(mhVNI)
# Kiểm định mô hình ARIMA chi biến TWII
library(tseries)
library(forecast)
mhTWII <- auto.arima(mhnn$TWII)
mhTWII
## Series: mhnn$TWII 
## ARIMA(5,0,1) with zero mean 
## 
## Coefficients:
##           ar1      ar2     ar3      ar4      ar5      ma1
##       -0.3918  -0.2956  0.0256  -0.3311  -0.3401  -0.7217
## s.e.   0.0481   0.0479  0.0520   0.0396   0.0383   0.0423
## 
## sigma^2 = 0.0162:  log likelihood = 472.93
## AIC=-931.86   AICc=-931.7   BIC=-899.67
# Trích xuất phần dư
du1 <- residuals(mhTWII)
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.1
library(fGarch)
## Warning: package 'fGarch' was built under R version 4.4.1
## NOTE: Packages 'fBasics', 'timeDate', and 'timeSeries' are no longer
## attached to the search() path when 'fGarch' is attached.
## 
## If needed attach them yourself in your R script by e.g.,
##         require("timeSeries")
## 
## Attaching package: 'fGarch'
## The following objects are masked from 'package:PerformanceAnalytics':
## 
##     ES, VaR
library(rugarch)
## Warning: package 'rugarch' was built under R version 4.4.1
## Loading required package: parallel
## 
## Attaching package: 'rugarch'
## The following object is masked from 'package:stats':
## 
##     sigma
# Kiểm định hiệu ứng ARCH - LM  cho VNI 
arch_spec <- ugarchspec(variance.model = list(model = "sGARCH"))
arch_VNI <- ugarchfit(spec = arch_spec, data = mhnn$VNI)

resVNI <- residuals(arch_VNI)
n <- length(resVNI)
x <- 1:n
# Tạo mô hình tuyến tính
arch_lm_model <- lm(resVNI^2 ~ x)
# Kiểm định hiệu ứng ARCH-LM

aTSA::arch.test(arima(mhnn$VNI, order = c(1,0,1)))
## ARCH heteroscedasticity test for residuals 
## alternative: heteroscedastic 
## 
## Portmanteau-Q test: 
##      order   PQ p.value
## [1,]     4  265       0
## [2,]     8  450       0
## [3,]    12  708       0
## [4,]    16  855       0
## [5,]    20  943       0
## [6,]    24 1069       0
## Lagrange-Multiplier test: 
##      order     LM p.value
## [1,]     4 -15.67       1
## [2,]     8 -11.74       1
## [3,]    12  -9.01       1
## [4,]    16  -7.53       1
## [5,]    20  -6.26       1
## [6,]    24  -5.28       1

library(lmtest)
library(fGarch)
library(rugarch)
# Kiểm định hiệu ứng ARCH - LM  cho chỉ số chứng khoán 
arch_spec1 <- ugarchspec(variance.model = list(model = "sGARCH"))
arch_TWII <- ugarchfit(spec = arch_spec1, data = mhnn$TWII)

resTWWII <- residuals(arch_TWII)
n1 <- length(resTWWII)
x1 <- 1:n
# Tạo mô hình tuyến tính
arch_lm_model1 <- lm(resTWWII^2 ~ x)
# Kiểm định hiệu ứng ARCH-LM
aTSA::arch.test(arima(mhnn$TWII, order = c(1,0,1)))
## ARCH heteroscedasticity test for residuals 
## alternative: heteroscedastic 
## 
## Portmanteau-Q test: 
##      order   PQ p.value
## [1,]     4  376       0
## [2,]     8  657       0
## [3,]    12 1001       0
## [4,]    16 1270       0
## [5,]    20 1450       0
## [6,]    24 1684       0
## Lagrange-Multiplier test: 
##      order      LM p.value
## [1,]     4 12.9847 0.00467
## [2,]     8  1.9448 0.96283
## [3,]    12  0.0396 1.00000
## [4,]    16 -2.0107 1.00000
## [5,]    20 -2.4527 1.00000
## [6,]    24 -2.0777 1.00000

Kết quả cho thấy cả hai chuỗi tỷ suất đều là chuỗi dừng và không có phân phối chuẩn dựa trên kiểm định Augmented – Dickey – Fuller (ADF) và Jarque – Bera. Kiểm định Ljung-Box chứng tỏ phần dư của chuỗi VNI không có hiện tượng tương quan chuỗi ở cả chuỗi gốc và bình phương. Với phần dư chuỗi TWII, kiểm định Ljung-Box cho chuỗi gốc (Q(2)) cho thấy không có hiện tượng tương quan chuỗi và kiểm định cho chuỗi bình phương (Q(2)^2) cho thấy hiện tượng tương quan chuỗi. Hiệu ứng ARCH được phát hiện ở phần dư của chuỗi TWII, chuỗi VNI không tồn tại hiệu ứng ARCH.

4.4.2 Kết quả ước lượng cấu trúc phụ thuộc dựa trên phương pháp Copula

library(rugarch)
VNIts<- ts(mhnn$VNI)
head(VNIts)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]  0.10913903  0.02489592  0.01943739  0.17412474 -0.12759760 -0.25481028
library(lmtest)
VNIspec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1,1)), mean.model = list(armaOrder = c(1,1), include.mean =TRUE), distribution.model = 'norm')
print(VNIspec)
## 
## *---------------------------------*
## *       GARCH Model Spec          *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## ------------------------------------
## GARCH Model      : gjrGARCH(1,1)
## Variance Targeting   : FALSE 
## 
## Conditional Mean Dynamics
## ------------------------------------
## Mean Model       : ARFIMA(1,0,1)
## Include Mean     : TRUE 
## GARCH-in-Mean        : FALSE 
## 
## Conditional Distribution
## ------------------------------------
## Distribution :  norm 
## Includes Skew    :  FALSE 
## Includes Shape   :  FALSE 
## Includes Lambda  :  FALSE
VNIfit <- ugarchfit(spec = VNIspec, VNIts)
print(VNIfit)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : norm 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error   t value Pr(>|t|)
## mu      0.000314    0.000448   0.70000 0.483928
## ar1    -0.191989    0.043226  -4.44150 0.000009
## ma1    -0.908198    0.014224 -63.85035 0.000000
## omega   0.000365    0.000270   1.35330 0.175959
## alpha1  0.079424    0.037861   2.09775 0.035927
## beta1   0.899682    0.026690  33.70800 0.000000
## gamma1  0.019507    0.038407   0.50791 0.611519
## 
## Robust Standard Errors:
##         Estimate  Std. Error   t value Pr(>|t|)
## mu      0.000314    0.000337   0.93159 0.351546
## ar1    -0.191989    0.062174  -3.08793 0.002016
## ma1    -0.908198    0.020603 -44.08194 0.000000
## omega   0.000365    0.000197   1.85321 0.063852
## alpha1  0.079424    0.057361   1.38463 0.166166
## beta1   0.899682    0.028741  31.30308 0.000000
## gamma1  0.019507    0.055530   0.35129 0.725372
## 
## LogLikelihood : 255.454 
## 
## Information Criteria
## ------------------------------------
##                      
## Akaike       -0.67699
## Bayes        -0.63313
## Shibata      -0.67717
## Hannan-Quinn -0.66007
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      1.067  0.3017
## Lag[2*(p+q)+(p+q)-1][5]    81.497  0.0000
## Lag[4*(p+q)+(p+q)-1][9]   156.297  0.0000
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                      1.869 1.716e-01
## Lag[2*(p+q)+(p+q)-1][5]    41.260 2.017e-11
## Lag[4*(p+q)+(p+q)-1][9]    98.015 0.000e+00
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     30.23 0.500 2.000 3.838e-08
## ARCH Lag[5]     73.97 1.440 1.667 0.000e+00
## ARCH Lag[7]    111.00 2.315 1.543 0.000e+00
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  13.8047
## Individual Statistics:               
## mu      0.17826
## ar1    12.22120
## ma1     4.08871
## omega   0.12581
## alpha1  0.06746
## beta1   0.20003
## gamma1  0.08598
## 
## 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.3666 0.714014    
## Negative Sign Bias  2.5552 0.010814  **
## Positive Sign Bias  0.7591 0.448056    
## Joint Effect       14.1533 0.002704 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     158.0    6.234e-24
## 2    30     199.4    2.462e-27
## 3    40     235.9    5.351e-30
## 4    50     243.5    1.322e-27
## 
## 
## Elapsed time : 0.290189
VNIst.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")

VNIst1<- ugarchfit(VNIst.spec,VNIts) 
print(VNIst1)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##          Estimate  Std. Error   t value Pr(>|t|)
## mu       0.000340    0.000450   0.75557 0.449905
## ar1     -0.191749    0.043318  -4.42656 0.000010
## ma1     -0.908372    0.014212 -63.91361 0.000000
## omega    0.000357    0.000270   1.31999 0.186839
## alpha1   0.079011    0.038494   2.05258 0.040113
## beta1    0.900743    0.026810  33.59724 0.000000
## gamma1   0.020839    0.038815   0.53687 0.591357
## shape   99.999889   51.322529   1.94846 0.051360
## 
## Robust Standard Errors:
##          Estimate  Std. Error   t value Pr(>|t|)
## mu       0.000340    0.000341   0.99768 0.318437
## ar1     -0.191749    0.062694  -3.05847 0.002225
## ma1     -0.908372    0.020692 -43.90049 0.000000
## omega    0.000357    0.000195   1.82821 0.067517
## alpha1   0.079011    0.058681   1.34646 0.178155
## beta1    0.900743    0.029243  30.80217 0.000000
## gamma1   0.020839    0.056339   0.36988 0.711470
## shape   99.999889    3.634590  27.51339 0.000000
## 
## LogLikelihood : 253.5692 
## 
## Information Criteria
## ------------------------------------
##                      
## Akaike       -0.66913
## Bayes        -0.61901
## Shibata      -0.66936
## Hannan-Quinn -0.64979
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      1.018   0.313
## Lag[2*(p+q)+(p+q)-1][5]    81.234   0.000
## Lag[4*(p+q)+(p+q)-1][9]   155.924   0.000
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                      1.739 1.872e-01
## Lag[2*(p+q)+(p+q)-1][5]    40.755 2.812e-11
## Lag[4*(p+q)+(p+q)-1][9]    97.082 0.000e+00
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     29.87 0.500 2.000 4.617e-08
## ARCH Lag[5]     73.37 1.440 1.667 0.000e+00
## ARCH Lag[7]    110.08 2.315 1.543 0.000e+00
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  93.0765
## Individual Statistics:               
## mu      0.17719
## ar1    12.24459
## ma1     4.09833
## omega   0.13202
## alpha1  0.07143
## beta1   0.21088
## gamma1  0.08840
## shape  19.39931
## 
## 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.3286 0.742554    
## Negative Sign Bias  2.5743 0.010240  **
## Positive Sign Bias  0.7214 0.470911    
## Joint Effect       14.1928 0.002654 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     166.6    1.313e-25
## 2    30     202.5    6.403e-28
## 3    40     236.7    3.877e-30
## 4    50     239.3    7.273e-27
## 
## 
## Elapsed time : 0.981276
# Phân phối Student đối xứng (sstd)
VNIst1.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sstd")

VNIst2<- ugarchfit(VNIst1.spec,VNIts) 
print(VNIst2)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : sstd 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu      0.000985    0.000349   2.8220 0.004773
## ar1    -0.104990    0.030550  -3.4367 0.000589
## ma1    -0.936079    0.010822 -86.4985 0.000000
## omega   0.001525    0.000641   2.3786 0.017377
## alpha1  0.261379    0.031856   8.2050 0.000000
## beta1   0.832258    0.026006  32.0023 0.000000
## gamma1 -0.219204    0.034767  -6.3050 0.000000
## skew    0.414102    0.038126  10.8613 0.000000
## shape  59.999983   28.393322   2.1132 0.034586
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu      0.000985    0.000339   2.9049 0.003674
## ar1    -0.104990    0.029539  -3.5543 0.000379
## ma1    -0.936079    0.013563 -69.0194 0.000000
## omega   0.001525    0.001177   1.2953 0.195206
## alpha1  0.261379    0.027707   9.4338 0.000000
## beta1   0.832258    0.035609  23.3722 0.000000
## gamma1 -0.219204    0.034694  -6.3181 0.000000
## skew    0.414102    0.062063   6.6723 0.000000
## shape  59.999983    5.367606  11.1782 0.000000
## 
## LogLikelihood : 292.9881 
## 
## Information Criteria
## ------------------------------------
##                      
## Akaike       -0.77381
## Bayes        -0.71742
## Shibata      -0.77411
## Hannan-Quinn -0.75206
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic  p-value
## Lag[1]                      8.323 0.003915
## Lag[2*(p+q)+(p+q)-1][5]    91.164 0.000000
## Lag[4*(p+q)+(p+q)-1][9]   166.495 0.000000
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                       2.42 1.198e-01
## Lag[2*(p+q)+(p+q)-1][5]     50.60 4.252e-14
## Lag[4*(p+q)+(p+q)-1][9]    118.75 0.000e+00
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale  P-Value
## ARCH Lag[3]     61.55 0.500 2.000 4.33e-15
## ARCH Lag[5]     82.40 1.440 1.667 0.00e+00
## ARCH Lag[7]    134.82 2.315 1.543 0.00e+00
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  30.1844
## Individual Statistics:             
## mu     0.4138
## ar1    8.6718
## ma1    2.0086
## omega  0.3194
## alpha1 0.3427
## beta1  0.5344
## gamma1 0.4922
## skew   1.9434
## shape  1.6700
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.1 2.32 2.82
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value     prob sig
## Sign Bias           2.7820 0.005542 ***
## Negative Sign Bias  0.6228 0.533623    
## Positive Sign Bias  3.2341 0.001275 ***
## Joint Effect       16.0585 0.001103 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     116.6    4.835e-16
## 2    30     125.6    5.432e-14
## 3    40     150.6    5.003e-15
## 4    50     166.7    9.696e-15
## 
## 
## Elapsed time : 1.402041
# Phân phối Generalized Error Distribution(ged)
VNIged.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "ged")

VNIged1 <- ugarchfit(VNIged.spec,VNIts) 
print(VNIged1)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : ged 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.001508    0.000392  -3.8423 0.000122
## ar1    -0.108808    0.040514  -2.6857 0.007239
## ma1    -0.904564    0.013791 -65.5899 0.000000
## omega   0.001450    0.000413   3.5113 0.000446
## alpha1  0.114300    0.019600   5.8317 0.000000
## beta1   0.850071    0.024616  34.5335 0.000000
## gamma1 -0.039248    0.020898  -1.8780 0.060376
## shape   8.738136    1.306141   6.6900 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.001508    0.000457  -3.2957 0.000982
## ar1    -0.108808    0.052383  -2.0772 0.037787
## ma1    -0.904564    0.018476 -48.9602 0.000000
## omega   0.001450    0.000567   2.5588 0.010504
## alpha1  0.114300    0.026722   4.2773 0.000019
## beta1   0.850071    0.026127  32.5359 0.000000
## gamma1 -0.039248    0.030134  -1.3024 0.192766
## shape   8.738136    1.665742   5.2458 0.000000
## 
## LogLikelihood : 319.0483 
## 
## Information Criteria
## ------------------------------------
##                      
## Akaike       -0.84754
## Bayes        -0.79742
## Shibata      -0.84778
## Hannan-Quinn -0.82821
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                      12.17 0.0004858
## Lag[2*(p+q)+(p+q)-1][5]    104.85 0.0000000
## Lag[4*(p+q)+(p+q)-1][9]    186.14 0.0000000
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      5.849 0.01559
## Lag[2*(p+q)+(p+q)-1][5]    71.040 0.00000
## Lag[4*(p+q)+(p+q)-1][9]   158.484 0.00000
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]      76.1 0.500 2.000       0
## ARCH Lag[5]     114.6 1.440 1.667       0
## ARCH Lag[7]     176.8 2.315 1.543       0
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  8.6788
## Individual Statistics:             
## mu     0.7351
## ar1    3.0086
## ma1    0.5281
## omega  0.2175
## alpha1 0.2827
## beta1  0.1579
## gamma1 0.1321
## shape  1.1305
## 
## 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.9294 0.3530    
## Negative Sign Bias  1.1293 0.2592    
## Positive Sign Bias  1.3133 0.1895    
## Joint Effect        5.3684 0.1467    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     57.83    8.499e-06
## 2    30     69.62    3.413e-05
## 3    40     80.28    1.108e-04
## 4    50     89.02    4.114e-04
## 
## 
## Elapsed time : 0.7663209
# Phân phối Generalized Error Distribution đối xứng ("sged")
VNIged.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sged")

VNIged2 <- ugarchfit(VNIged.spec,VNIts) 
print(VNIged2)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : sged 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.001127    0.000464  -2.4288 0.015150
## ar1    -0.123839    0.040594  -3.0506 0.002283
## ma1    -0.898498    0.014497 -61.9776 0.000000
## omega   0.001482    0.000439   3.3764 0.000734
## alpha1  0.128742    0.023727   5.4260 0.000000
## beta1   0.844767    0.025961  32.5401 0.000000
## gamma1 -0.062631    0.026929  -2.3258 0.020031
## skew    0.790159    0.112927   6.9971 0.000000
## shape   7.810511    1.319078   5.9212 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.001127    0.000626  -1.8013 0.071653
## ar1    -0.123839    0.052417  -2.3626 0.018147
## ma1    -0.898498    0.019924 -45.0964 0.000000
## omega   0.001482    0.000617   2.3994 0.016422
## alpha1  0.128742    0.029794   4.3210 0.000016
## beta1   0.844767    0.027975  30.1973 0.000000
## gamma1 -0.062631    0.033878  -1.8487 0.064499
## skew    0.790159    0.128891   6.1304 0.000000
## shape   7.810511    1.929333   4.0483 0.000052
## 
## LogLikelihood : 320.4365 
## 
## Information Criteria
## ------------------------------------
##                      
## Akaike       -0.84860
## Bayes        -0.79222
## Shibata      -0.84890
## Hannan-Quinn -0.82685
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                       11.3 0.0007737
## Lag[2*(p+q)+(p+q)-1][5]     103.6 0.0000000
## Lag[4*(p+q)+(p+q)-1][9]     184.1 0.0000000
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      5.796 0.01607
## Lag[2*(p+q)+(p+q)-1][5]    67.252 0.00000
## Lag[4*(p+q)+(p+q)-1][9]   149.917 0.00000
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]     72.74 0.500 2.000       0
## ARCH Lag[5]    107.95 1.440 1.667       0
## ARCH Lag[7]    167.13 2.315 1.543       0
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  9.7843
## Individual Statistics:             
## mu     0.7220
## ar1    4.4928
## ma1    1.2356
## omega  0.2015
## alpha1 0.3002
## beta1  0.1506
## gamma1 0.1721
## skew   0.3623
## shape  1.3040
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.1 2.32 2.82
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value    prob sig
## Sign Bias           1.3883 0.16547    
## Negative Sign Bias  0.9913 0.32187    
## Positive Sign Bias  1.6501 0.09936   *
## Joint Effect        7.1413 0.06753   *
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     42.46    0.0015367
## 2    30     63.66    0.0002121
## 3    40     61.53    0.0121785
## 4    50     80.71    0.0029033
## 
## 
## Elapsed time : 1.145421
#Tạo danh sách mô hình lựa chọn
VNI.model.list <- list(
  garch11n = VNIfit,
  garch11t = VNIst1,
  garch11st = VNIst2,
  garch11g = VNIged1,
  garch11sg = VNIged2
)
#Tính toán lựa chọn mô hình
VNI.info.mat <- sapply(VNI.model.list, infocriteria)
rownames(VNI.info.mat) <- rownames(infocriteria(VNIfit))
VNI.info.mat
##                garch11n   garch11t  garch11st   garch11g  garch11sg
## Akaike       -0.6769865 -0.6691259 -0.7738095 -0.8475432 -0.8486008
## Bayes        -0.6331315 -0.6190059 -0.7174245 -0.7974232 -0.7922158
## Shibata      -0.6771661 -0.6693601 -0.7741053 -0.8477773 -0.8488967
## Hannan-Quinn -0.6600712 -0.6497941 -0.7520613 -0.8282114 -0.8268526

Dựa trên giá trị thông tin tiêu chuẩn, mô hình garch11sg có giá trị Akaike thấp nhất (-0.8486008) . Điều này cho thấy mô hình GARCH(1,1) với phân phối ged này có khả năng phù hợp tốt với chuỗi dữ liệu VNI.

# Trích xuất chuỗi phần dư v của chuỗi lợi suất AGR
VNI.res <- residuals(VNIst2)/sigma(VNIst2)
fitdist(distribution = "sstd", VNI.res, control = list())
## $pars
##           mu        sigma         skew        shape 
##  -0.01876825   1.01166584   0.41081063 163.64223187 
## 
## $convergence
## [1] 0
## 
## $values
## [1] 1200.6965  972.6265  972.6265
## 
## $lagrange
## [1] 0
## 
## $hessian
##              [,1]         [,2]          [,3]          [,4]
## [1,] 1.948680e+03 1.880288e+03  2.816245e+02  0.0417327472
## [2,] 1.880288e+03 3.179527e+03  8.573210e+02  0.0692186647
## [3,] 2.816245e+02 8.573210e+02  1.600335e+03 -0.0043888673
## [4,] 4.173275e-02 6.921866e-02 -4.388867e-03  0.0004599681
## 
## $ineqx0
## NULL
## 
## $nfuneval
## [1] 261
## 
## $outer.iter
## [1] 2
## 
## $elapsed
## Time difference of 0.154664 secs
## 
## $vscale
## [1] 1 1 1 1 1
VNI.res
##            m.c.seq.row..seq.n...seq.col..drop...FALSE.
## 0001-01-01                                   0.5929760
## 0002-01-01                                   0.7599104
## 0003-01-01                                   0.8157067
## 0004-01-01                                   1.6805190
## 0005-01-01                                   0.7735927
## 0006-01-01                                  -0.4060132
## 0007-01-01                                   0.2715814
## 0008-01-01                                   0.3744295
## 0009-01-01                                   0.5293598
## 0010-01-01                                   0.8842771
##        ...                                            
## 0725-01-01                                  -0.1996227
## 0726-01-01                                   1.3430418
## 0727-01-01                                  -0.7992594
## 0728-01-01                                  -0.1836438
## 0729-01-01                                   1.2645509
## 0730-01-01                                  -0.8493921
## 0731-01-01                                  -0.2349589
## 0732-01-01                                   1.2497621
## 0733-01-01                                  -0.8709113
## 0734-01-01                                  -0.2460686
s = pdist("sstd",VNI.res, mu =-0.002561478       
, sigma =  1.004907594, skew = 0.824890563, shape = 4.185212611 )
head(s,10)
##  [1] 0.7569321 0.8223259 0.8408504 0.9725262 0.8270235 0.2806094 0.5981784
##  [8] 0.6519389 0.7283003 0.8613587
# Chạy mô hình Garch cho biến TWII
library(rugarch)
TWIIts<- ts(mhnn$TWII)
head(TWIIts,10)
## Time Series:
## Start = 1 
## End = 10 
## Frequency = 1 
##  [1]  0.136683876  0.054827877  0.081979121  0.088997145 -0.137612252
##  [6] -0.079972327 -0.003814630  0.059076866  0.073027593 -0.008555729
library(lmtest)
TWIIspec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1,1)), mean.model = list(armaOrder = c(1,3), include.mean =TRUE), distribution.model = 'norm')
print(TWIIspec)
## 
## *---------------------------------*
## *       GARCH Model Spec          *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## ------------------------------------
## GARCH Model      : gjrGARCH(1,1)
## Variance Targeting   : FALSE 
## 
## Conditional Mean Dynamics
## ------------------------------------
## Mean Model       : ARFIMA(1,0,3)
## Include Mean     : TRUE 
## GARCH-in-Mean        : FALSE 
## 
## Conditional Distribution
## ------------------------------------
## Distribution :  norm 
## Includes Skew    :  FALSE 
## Includes Shape   :  FALSE 
## Includes Lambda  :  FALSE
TWIIfit <- ugarchfit(spec = TWIIspec, TWIIts)
print(TWIIfit)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,3)
## Distribution : norm 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error   t value Pr(>|t|)
## mu      0.000040    0.000464  0.086412 0.931139
## ar1    -0.458315    0.081071 -5.653257 0.000000
## ma1    -0.572201    0.084090 -6.804620 0.000000
## ma2    -0.609271    0.064898 -9.388122 0.000000
## ma3     0.351327    0.043930  7.997477 0.000000
## omega   0.000158    0.000107  1.478409 0.139298
## alpha1  0.055841    0.029012  1.924753 0.054260
## beta1   0.891796    0.028057 31.785113 0.000000
## gamma1  0.087991    0.033566  2.621409 0.008757
## 
## Robust Standard Errors:
##         Estimate  Std. Error   t value Pr(>|t|)
## mu      0.000040    0.000386   0.10369 0.917412
## ar1    -0.458315    0.060279  -7.60325 0.000000
## ma1    -0.572201    0.116145  -4.92662 0.000001
## ma2    -0.609271    0.049584 -12.28772 0.000000
## ma3     0.351327    0.089693   3.91698 0.000090
## omega   0.000158    0.000119   1.31914 0.187122
## alpha1  0.055841    0.057926   0.96400 0.335045
## beta1   0.891796    0.038112  23.39950 0.000000
## gamma1  0.087991    0.047200   1.86420 0.062293
## 
## LogLikelihood : 476.7463 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -1.2745
## Bayes        -1.2181
## Shibata      -1.2748
## Hannan-Quinn -1.2528
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                     0.04494  0.8321
## Lag[2*(p+q)+(p+q)-1][11] 149.83787  0.0000
## Lag[4*(p+q)+(p+q)-1][19] 250.25764  0.0000
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                      11.80 5.920e-04
## Lag[2*(p+q)+(p+q)-1][5]     27.08 2.094e-07
## Lag[4*(p+q)+(p+q)-1][9]     36.77 5.843e-09
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     20.55 0.500 2.000 5.808e-06
## ARCH Lag[5]     26.31 1.440 1.667 5.428e-07
## ARCH Lag[7]     31.45 2.315 1.543 6.688e-08
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  17.713
## Individual Statistics:              
## mu     0.10606
## ar1    6.45193
## ma1    2.92650
## ma2    0.53548
## ma3    1.40230
## omega  0.07037
## alpha1 0.06803
## beta1  0.05659
## gamma1 0.06642
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.1 2.32 2.82
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value     prob sig
## Sign Bias            3.166 0.001607 ***
## Negative Sign Bias   1.955 0.050951   *
## Positive Sign Bias   3.151 0.001695 ***
## Joint Effect        13.887 0.003063 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     83.11    5.377e-10
## 2    30     94.15    8.265e-09
## 3    40    103.38    9.809e-08
## 4    50    119.81    7.282e-08
## 
## 
## Elapsed time : 0.3608971
TWIIst.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 3), include.mean = TRUE), distribution.model = "std")

TWIIst1<- ugarchfit(TWIIst.spec,TWIIts) 
print(TWIIst1)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,3)
## Distribution : std 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu      0.000054    0.000464  0.11704 0.906830
## ar1    -0.455781    0.081029 -5.62489 0.000000
## ma1    -0.577337    0.084027 -6.87086 0.000000
## ma2    -0.608920    0.064869 -9.38697 0.000000
## ma3     0.355210    0.044159  8.04389 0.000000
## omega   0.000153    0.000107  1.42840 0.153177
## alpha1  0.054796    0.029286  1.87110 0.061332
## beta1   0.892867    0.028241 31.61579 0.000000
## gamma1  0.090050    0.033911  2.65545 0.007920
## shape  99.996037   61.609008  1.62308 0.104573
## 
## Robust Standard Errors:
##         Estimate  Std. Error   t value Pr(>|t|)
## mu      0.000054    0.000387   0.14020 0.888505
## ar1    -0.455781    0.060953  -7.47760 0.000000
## ma1    -0.577337    0.116141  -4.97099 0.000001
## ma2    -0.608920    0.049936 -12.19406 0.000000
## ma3     0.355210    0.090516   3.92426 0.000087
## omega   0.000153    0.000118   1.30164 0.193040
## alpha1  0.054796    0.059007   0.92865 0.353070
## beta1   0.892867    0.038592  23.13590 0.000000
## gamma1  0.090050    0.047545   1.89400 0.058225
## shape  99.996037    7.494608  13.34240 0.000000
## 
## LogLikelihood : 475.4741 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -1.2683
## Bayes        -1.2057
## Shibata      -1.2687
## Hannan-Quinn -1.2442
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                     0.07929  0.7783
## Lag[2*(p+q)+(p+q)-1][11] 149.16436  0.0000
## Lag[4*(p+q)+(p+q)-1][19] 249.10754  0.0000
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                      12.97 3.158e-04
## Lag[2*(p+q)+(p+q)-1][5]     28.19 1.024e-07
## Lag[4*(p+q)+(p+q)-1][9]     37.70 3.204e-09
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     20.51 0.500 2.000 5.919e-06
## ARCH Lag[5]     26.09 1.440 1.667 6.182e-07
## ARCH Lag[7]     31.10 2.315 1.543 8.280e-08
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  30.3842
## Individual Statistics:              
## mu     0.09750
## ar1    6.53343
## ma1    2.89584
## ma2    0.52825
## ma3    1.36041
## omega  0.08143
## alpha1 0.05952
## beta1  0.06101
## gamma1 0.06065
## shape  6.58348
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.29 2.54 3.05
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value     prob sig
## Sign Bias            3.202 0.001425 ***
## Negative Sign Bias   1.944 0.052272   *
## Positive Sign Bias   3.243 0.001236 ***
## Joint Effect        14.422 0.002384 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     82.40    7.139e-10
## 2    30     94.23    8.024e-09
## 3    40    103.82    8.508e-08
## 4    50    116.54    1.982e-07
## 
## 
## Elapsed time : 0.8921981
# Phân phối Student đối xứng
TWIIst1.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 3), include.mean = TRUE), distribution.model = "sstd")

TWIIst2<- ugarchfit(TWIIst1.spec,TWIIts) 
print(TWIIst2)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,3)
## Distribution : sstd 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu      0.000526    0.000367  1.43121 0.152371
## ar1    -0.541706    0.078848 -6.87027 0.000000
## ma1    -0.492020    0.079636 -6.17838 0.000000
## ma2    -0.617422    0.067215 -9.18582 0.000000
## ma3     0.257119    0.037402  6.87457 0.000000
## omega   0.000241    0.000197  1.22460 0.220726
## alpha1  0.181204    0.053838  3.36573 0.000763
## beta1   0.840284    0.031699 26.50813 0.000000
## gamma1 -0.050007    0.058979 -0.84788 0.396507
## skew    0.632569    0.049363 12.81474 0.000000
## shape  59.999981   29.946388  2.00358 0.045115
## 
## Robust Standard Errors:
##         Estimate  Std. Error   t value Pr(>|t|)
## mu      0.000526    0.000331   1.58870 0.112127
## ar1    -0.541706    0.051741 -10.46950 0.000000
## ma1    -0.492020    0.083463  -5.89504 0.000000
## ma2    -0.617422    0.038504 -16.03546 0.000000
## ma3     0.257119    0.067128   3.83029 0.000128
## omega   0.000241    0.000344   0.70099 0.483311
## alpha1  0.181204    0.086110   2.10432 0.035350
## beta1   0.840284    0.041036  20.47695 0.000000
## gamma1 -0.050007    0.098084  -0.50984 0.610165
## skew    0.632569    0.066868   9.45998 0.000000
## shape  59.999981    5.752475  10.43029 0.000000
## 
## LogLikelihood : 487.4829 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -1.2983
## Bayes        -1.2294
## Shibata      -1.2988
## Hannan-Quinn -1.2717
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                     0.08866  0.7659
## Lag[2*(p+q)+(p+q)-1][11] 161.44130  0.0000
## Lag[4*(p+q)+(p+q)-1][19] 266.73220  0.0000
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                     0.9801 3.222e-01
## Lag[2*(p+q)+(p+q)-1][5]   15.8439 2.634e-04
## Lag[4*(p+q)+(p+q)-1][9]   27.0262 2.804e-06
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     15.47 0.500 2.000 8.372e-05
## ARCH Lag[5]     24.98 1.440 1.667 1.185e-06
## ARCH Lag[7]     30.49 2.315 1.543 1.196e-07
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  25.9116
## Individual Statistics:             
## mu     1.0314
## ar1    6.3122
## ma1    4.5427
## ma2    0.8374
## ma3    1.1091
## omega  1.0524
## alpha1 0.2274
## beta1  0.6311
## gamma1 0.2469
## skew   0.8900
## shape  1.9970
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.49 2.75 3.27
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value    prob sig
## Sign Bias           2.3685 0.01812  **
## Negative Sign Bias  2.1571 0.03132  **
## Positive Sign Bias  0.8202 0.41237    
## Joint Effect        6.8367 0.07729   *
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     91.23    2.005e-11
## 2    30     98.64    1.611e-09
## 3    40    105.13    5.542e-08
## 4    50    120.36    6.153e-08
## 
## 
## Elapsed time : 1.599212
# Phân phối Generalized Error Distribution
TWIIged.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 3), include.mean = TRUE), distribution.model = "ged")

TWIIged1 <- ugarchfit(TWIIged.spec,TWIIts) 
print(TWIIged1)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,3)
## Distribution : ged 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.000555    0.000527  -1.0535 0.292100
## ar1    -0.519566    0.076935  -6.7533 0.000000
## ma1    -0.429213    0.076612  -5.6024 0.000000
## ma2    -0.598305    0.060991  -9.8097 0.000000
## ma3     0.245257    0.036498   6.7197 0.000000
## omega   0.000273    0.000099   2.7655 0.005683
## alpha1  0.063078    0.022711   2.7774 0.005480
## beta1   0.889089    0.020701  42.9487 0.000000
## gamma1  0.056568    0.026459   2.1380 0.032517
## shape   3.790521    0.368313  10.2916 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.000555    0.000569  -0.9749 0.329608
## ar1    -0.519566    0.050682 -10.2514 0.000000
## ma1    -0.429213    0.085928  -4.9950 0.000001
## ma2    -0.598305    0.037993 -15.7477 0.000000
## ma3     0.245257    0.060905   4.0269 0.000057
## omega   0.000273    0.000174   1.5685 0.116766
## alpha1  0.063078    0.046955   1.3434 0.179154
## beta1   0.889089    0.031347  28.3627 0.000000
## gamma1  0.056568    0.043844   1.2902 0.196980
## shape   3.790521    0.446883   8.4821 0.000000
## 
## LogLikelihood : 500.1574 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -1.3356
## Bayes        -1.2729
## Shibata      -1.3359
## Hannan-Quinn -1.3114
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                       1.844  0.1745
## Lag[2*(p+q)+(p+q)-1][11]   176.360  0.0000
## Lag[4*(p+q)+(p+q)-1][19]   289.726  0.0000
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                     0.5299 4.666e-01
## Lag[2*(p+q)+(p+q)-1][5]   26.5225 2.997e-07
## Lag[4*(p+q)+(p+q)-1][9]   44.9677 2.834e-11
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     34.40 0.500 2.000 4.490e-09
## ARCH Lag[5]     42.27 1.440 1.667 4.606e-11
## ARCH Lag[7]     53.31 2.315 1.543 9.170e-14
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  19.4771
## Individual Statistics:              
## mu     1.25589
## ar1    2.67701
## ma1    2.39721
## ma2    0.54485
## ma3    1.98541
## omega  0.08784
## alpha1 0.33244
## beta1  0.15614
## gamma1 0.30120
## shape  0.91463
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.29 2.54 3.05
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value      prob sig
## Sign Bias            3.823 0.0001433 ***
## Negative Sign Bias   2.465 0.0139245  **
## Positive Sign Bias   2.725 0.0065890 ***
## Joint Effect        15.502 0.0014341 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     44.96    0.0006933
## 2    30     50.50    0.0079819
## 3    40     60.66    0.0147047
## 4    50     67.23    0.0429078
## 
## 
## Elapsed time : 0.8179519
# Phân phối Generalized Error Distribution đối xứng 
TWIIged.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 3), include.mean = TRUE), distribution.model = "sged")

TWIIged2 <- ugarchfit(TWIIged.spec,TWIIts) 
print(TWIIged2)
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,1)
## Mean Model   : ARFIMA(1,0,3)
## Distribution : sged 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu     -0.000103    0.000520 -0.19817 0.842912
## ar1    -0.525522    0.081655 -6.43585 0.000000
## ma1    -0.413467    0.079538 -5.19835 0.000000
## ma2    -0.602985    0.063659 -9.47207 0.000000
## ma3     0.231690    0.033416  6.93360 0.000000
## omega   0.000293    0.000130  2.26068 0.023779
## alpha1  0.113963    0.034794  3.27536 0.001055
## beta1   0.865706    0.023885 36.24499 0.000000
## gamma1 -0.003980    0.039355 -0.10112 0.919452
## skew    0.761599    0.072922 10.44409 0.000000
## shape   3.722290    0.401418  9.27285 0.000000
## 
## Robust Standard Errors:
##         Estimate  Std. Error    t value Pr(>|t|)
## mu     -0.000103    0.000440  -0.234096 0.814910
## ar1    -0.525522    0.057322  -9.167938 0.000000
## ma1    -0.413467    0.079817  -5.180219 0.000000
## ma2    -0.602985    0.038229 -15.773056 0.000000
## ma3     0.231690    0.049722   4.659696 0.000003
## omega   0.000293    0.000226   1.294219 0.195590
## alpha1  0.113963    0.057578   1.979274 0.047785
## beta1   0.865706    0.030476  28.406253 0.000000
## gamma1 -0.003980    0.059503  -0.066882 0.946675
## skew    0.761599    0.081096   9.391277 0.000000
## shape   3.722290    0.507562   7.333661 0.000000
## 
## LogLikelihood : 504.2137 
## 
## Information Criteria
## ------------------------------------
##                     
## Akaike       -1.3439
## Bayes        -1.2750
## Shibata      -1.3443
## Hannan-Quinn -1.3173
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                       2.982 0.08419
## Lag[2*(p+q)+(p+q)-1][11]   174.204 0.00000
## Lag[4*(p+q)+(p+q)-1][19]   285.537 0.00000
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                   0.006372 9.364e-01
## Lag[2*(p+q)+(p+q)-1][5] 21.862342 5.942e-06
## Lag[4*(p+q)+(p+q)-1][9] 37.527918 3.586e-09
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale   P-Value
## ARCH Lag[3]     27.06 0.500 2.000 1.975e-07
## ARCH Lag[5]     34.21 1.440 1.667 5.301e-09
## ARCH Lag[7]     43.69 2.315 1.543 3.636e-11
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  19.119
## Individual Statistics:              
## mu     1.24143
## ar1    3.48618
## ma1    3.65344
## ma2    0.85853
## ma3    1.56489
## omega  0.06308
## alpha1 0.24033
## beta1  0.07753
## gamma1 0.22250
## skew   0.38154
## shape  1.86713
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.49 2.75 3.27
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value     prob sig
## Sign Bias            2.944 0.003346 ***
## Negative Sign Bias   1.966 0.049711  **
## Positive Sign Bias   1.682 0.092996   *
## Joint Effect         8.980 0.029560  **
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     48.72    0.0002014
## 2    30     44.53    0.0326767
## 3    40     68.83    0.0022394
## 4    50     67.09    0.0439367
## 
## 
## Elapsed time : 1.358388
#Tạo danh sách mô hình lựa chọn
TWII.model.list <- list( 
  garchn = TWIIfit,
  garcht = TWIIst1,
  garchst = TWIIst2,
  garchg = TWIIged1,
  garchsg = TWIIged2)
#Tính toán lựa chọn mô hình
TWII.info.mat <- sapply(TWII.model.list, infocriteria)
rownames(TWII.info.mat) <- rownames(infocriteria(TWIIfit))
TWII.info.mat
##                 garchn    garcht   garchst    garchg   garchsg
## Akaike       -1.274513 -1.268322 -1.298318 -1.335579 -1.343907
## Bayes        -1.218128 -1.205672 -1.229403 -1.272929 -1.274992
## Shibata      -1.274809 -1.268686 -1.298759 -1.335943 -1.344347
## Hannan-Quinn -1.252765 -1.244157 -1.271737 -1.311414 -1.317325

Dựa trên giá trị thông tin tiêu chuẩn, mô hình garchsg có giá trị Akaike thấp nhất (-1.343907) và giá trị Hannan-Quinn thấp nhất (-1.317325). Điều này cho thấy mô hình GARCH(1,1) với phân phối ged này có khả năng phù hợp tốt với chuỗi dữ liệu VNI.

# Trích xuất chuỗi phần dư v của chuỗi lợi suất AGR
TWII.res <- residuals(TWIIst2)/sigma(TWIIst2)
fitdist(distribution = "sstd", TWII.res, control = list())
## Warning in .safefunx(tmpv, .solnp_fun, .env, ...): 
## solnp-->warning: NaN detected in function call...check your function
## $pars
##            mu         sigma          skew         shape 
##  -0.002377726   1.003680496   0.634767132 297.155751036 
## 
## $convergence
## [1] 0
## 
## $values
## [1] 1177.668 1015.522 1015.522
## 
## $lagrange
## [1] 0
## 
## $hessian
##               [,1]          [,2]          [,3]          [,4]
## [1,]  1.062329e+03  561.74084621  227.23494120 -0.0043014315
## [2,]  5.617408e+02 1411.53271525  483.77062672 -0.0052573596
## [3,]  2.272349e+02  483.77062672 1290.58151602 -0.0162657649
## [4,] -4.301431e-03   -0.00525736   -0.01626576  0.0004381079
## 
## $ineqx0
## NULL
## 
## $nfuneval
## [1] 241
## 
## $outer.iter
## [1] 2
## 
## $elapsed
## Time difference of 0.1425161 secs
## 
## $vscale
## [1] 1 1 1 1 1
TWII.res
##            m.c.seq.row..seq.n...seq.col..drop...FALSE.
## 0001-01-01                                   0.9484857
## 0002-01-01                                   1.3587453
## 0003-01-01                                   2.0264660
## 0004-01-01                                   1.9913136
## 0005-01-01                                   0.9558191
## 0006-01-01                                   0.4365092
## 0007-01-01                                   0.1969474
## 0008-01-01                                   0.4183215
## 0009-01-01                                   0.7847844
## 0010-01-01                                   0.7825480
##        ...                                            
## 0725-01-01                                  -0.5296103
## 0726-01-01                                   1.4383349
## 0727-01-01                                  -0.7339198
## 0728-01-01                                  -0.5664505
## 0729-01-01                                   1.3932591
## 0730-01-01                                  -0.7995204
## 0731-01-01                                  -0.4288069
## 0732-01-01                                   1.3419319
## 0733-01-01                                  -0.7538809
## 0734-01-01                                  -0.4393102
s1 = pdist("sstd",TWII.res, mu = -0.002377726 , sigma =  1.003680496 , skew = 0.634767132, shape = 297.155751036  )
head(s1,10)
##  [1] 0.8300310 0.9420991 0.9961653 0.9954383 0.8326534 0.6237654 0.5274793
##  [8] 0.6163243 0.7672932 0.7663919
library(VineCopula)
## Warning: package 'VineCopula' was built under R version 4.4.1
BiCopSelect(s,s1, familyset= c(1:10,13,16:20), selectioncrit="AIC",indeptest = FALSE, level = 0.05)
## Bivariate copula: Gaussian (par = 0.88, tau = 0.68)

Kiểm định cho biến VNI

# Kiểm định Anderson_Darling
library(nortest)
ad.test(s)
## 
##  Anderson-Darling normality test
## 
## data:  s
## A = 26.472, p-value < 2.2e-16
# Kiểm định Cramer-von Mises
cvm.test(s)
## Warning in cvm.test(s): p-value is smaller than 7.37e-10, cannot be computed
## more accurately
## 
##  Cramer-von Mises normality test
## 
## data:  s
## W = 3.8148, p-value = 7.37e-10
# Kiểm định Kolmogorov-Smirnov
ks.test(s, y = "punif")
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  s
## D = 0.10503, p-value = 1.856e-07
## alternative hypothesis: two-sided

Kiểm định cho biến TWII

# Kiểm định Anderson_Darling
library(nortest)
ad.test(s1)
## 
##  Anderson-Darling normality test
## 
## data:  s1
## A = 17.237, p-value < 2.2e-16
# Kiểm định Cramer-von Mises
cvm.test(s1)
## Warning in cvm.test(s1): p-value is smaller than 7.37e-10, cannot be computed
## more accurately
## 
##  Cramer-von Mises normality test
## 
## data:  s1
## W = 2.6783, p-value = 7.37e-10
# Kiểm định Kolmogorov-Smirnov
ks.test(s1, y = "punif")
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  s1
## D = 0.070143, p-value = 0.00146
## alternative hypothesis: two-sided
library("copula")
## Warning: package 'copula' was built under R version 4.4.1
## 
## Attaching package: 'copula'
## The following object is masked from 'package:VineCopula':
## 
##     pobs
library("scatterplot3d")
u <- pobs(s)
head(u,10)
##  [1] 0.6639456 0.7333333 0.7537415 0.9972789 0.7401361 0.3414966 0.5564626
##  [8] 0.5972789 0.6448980 0.7782313
k <- pobs(s1)
head(k,10)
##  [1] 0.8285714 0.9482993 0.9945578 0.9931973 0.8299320 0.5931973 0.5142857
##  [8] 0.5877551 0.7564626 0.7551020
# Tạo copula
copula_model <- normalCopula(dim = 2)

# Ước lượng copula từ dữ liệu chuẩn hóa
fit_copula <- fitCopula(copula_model, cbind(u,k), method = "ml")

# Xem kết quả ước lượng
summary(fit_copula)
## Call: fitCopula(copula_model, data = cbind(u, k), ... = pairlist(method = "ml"))
## Fit based on "maximum likelihood" and 734 2-dimensional observations.
## Normal copula, dim. d = 2 
##       Estimate Std. Error
## rho.1   0.8729      0.007
## The maximized loglikelihood is 521.9 
## Optimization converged
## Number of loglikelihood evaluations:
## function gradient 
##       10       10

Kết quả ước lượng copula họ Elip trong điều kiện thị trường bình thường cho mối quan hệ giữa hai biến VNI và TƯ, bao gồm hai loại copula: Gaussian và Student. Kết quả từ copula Gaussian cho thấy một mức độ tương quan dương giữa hai biến với giá trị là 0.8729 với sai số chuẩn là 0.007. Điều này ngụ ý rằng có một xác suất nhất định rằng hai biến sẽ cùng trải qua các biến động cực đoan theo cùng một hướng. Cụ thể, nếu TTCK Đài Loan biến động tăng (giảm) giá thì khả năng TTCK Việt Nam tăng (giảm) theo là khoảng 82.29%.

Dựa trên kết quả ước lượng các tham số Copula tiến hành mô phỏng dữ liệu dựa trên các tham số của Copula tương ứng và trực quan hóa mối quan hệ của TTCk Việt Nam và TTCK Đài Loan.

#
mycop<-normalCopula(c(-0.03),dim=2,dispstr="ex")
mymvd<-mvdc(copula=mycop,margins =c("norm","norm"),paramMargins=list(list(mean=0,sd=1),list(mean=1,2)))
#
r<-rMvdc(1456,mymvd)
#
dens<-dMvdc(r,mymvd)
dist<-pMvdc(r,mymvd)
#
x<-r[,1]
y<-r[,2]
scatterplot3d(x,y,dens,highlight.3d = T)

scatterplot3d(x,y,dist,highlight.3d = T)

2.2 See the copula itself

The copula function can also be visualized,it will be this look.

u<-rCopula(1456,mycop)
a<-u[,1]
b<-u[,2]
copdens<-dCopula(u,mycop)
copdist<-pCopula(u,mycop)
scatterplot3d(a,b,copdens,highlight.3d = T)

scatterplot3d(a,b,copdist,highlight.3d = T)

5 KẾT LUẬN VÀ KHUYẾN NGHỊ

5.1 Kết luận

Bài luận đã nghiên cứu mức độ phản ứng của TTCK Việt Nam khi TTCK Đài Loan biến động trong đại dịch dựa trên chuỗi tỷ suất sinh lợi của hai chỉ số đại diện là VNINDEX và TWII, kết quả cho thấy có sự tương quan mạnh giữa hai thị trường. Có thể khẳng định rằng, khi xảy ra các cú sốc kinh tế, mối tương quan của hai TTCK sẽ gia tăng và khả năng hai TTCK cùng giảm giá cực biên cũng gia tăng đáng kể.

5.2 Khuyến nghị

Đối với nhà đầu tư, việc nắm bắt cơ hội đầu tư là cần thiết do mức độ tương quan mạnh giữa VNI và TWII, đồng thời cần phải theo dõi sát sao các sự kiện kinh tế và chính trị để điều chỉnh chiến lược đầu tư kịp thời. Ngoài ra nhà đầu tư cần kết hợp phân tích kỹ thuật và cơ bản, cùng với việc sử dụng các công cụ phái sinh để bảo vệ danh mục đầu tư khỏi các sự kiện bất ngờ.

Đối với nhà hoạch định chính sách, việc giám sát chặt chẽ các yếu tố kinh tế và chính trị ảnh hưởng đến cả hai thị trường là cần thiết, đồng thời duy trì các chính sách kinh tế ổn định để tạo môi trường đầu tư an toàn và giảm thiểu các biến động cực đoan. Đồng thời, cần thiết để xây dựng các biện pháp hỗ trợ kinh tế trong thời kỳ khủng hoảng để tăng cường ổn định kinh tế. Các chính sách quản lý rủi ro tài chính chặt chẽ hơn cũng cần được thực hiện để ngăn chặn sự lan truyền rủi ro hệ thống.Hơn nữa, hợp tác quốc tế giữa các cơ quan quản lý tài chính có thể giúp đồng bộ hóa các biện pháp phòng ngừa rủi ro và đảm bảo sự ổn định của thị trường. Các nhà hoạch định cần đảm bảo tính minh bạch và cung cấp thông tin kịp thời giúp các nhà đầu tư đưa ra quyết định chính xác hơn, từ đó ổn định thị trường. Ngoài ra, việc khuyến khích các khoản đầu tư bền vững và dài hạn sẽ giúp giảm thiểu rủi ro và hỗ trợ sự phát triển bền vững của nền kinh tế trong dài hạn.