# Hiển thị bộ dữ liệu dùng để kiểm định
library(readxl)
sp500 <- read_excel("d:/cacmohinhngaunhien/sp500.xlsx")
sp500
## # A tibble: 1,239 × 2
## date_sp500 sp500
## <dttm> <dbl>
## 1 2022-12-01 00:00:00 4077.
## 2 2022-11-30 00:00:00 4080.
## 3 2022-11-29 00:00:00 3958.
## 4 2022-11-28 00:00:00 3964.
## 5 2022-11-25 00:00:00 4026.
## 6 2022-11-23 00:00:00 4027.
## 7 2022-11-22 00:00:00 4004.
## 8 2022-11-21 00:00:00 3950.
## 9 2022-11-18 00:00:00 3965.
## 10 2022-11-17 00:00:00 3947.
## # ℹ 1,229 more rows
vni <- read_excel("d:/cacmohinhngaunhien/vni.xlsx")
vni
## # A tibble: 1,229 × 2
## date_vni vni
## <dttm> <dbl>
## 1 2022-12-01 00:00:00 1036.
## 2 2022-11-30 00:00:00 1048.
## 3 2022-11-29 00:00:00 1032.
## 4 2022-11-28 00:00:00 1006.
## 5 2022-11-25 00:00:00 971.
## 6 2022-11-24 00:00:00 948.
## 7 2022-11-23 00:00:00 946
## 8 2022-11-22 00:00:00 952.
## 9 2022-11-21 00:00:00 961.
## 10 2022-11-18 00:00:00 969.
## # ℹ 1,219 more rows
Kiểm định phân phối chuẩn Jarque-Bera
# Sử dụng gói thư viện tương ứng
library(moments)
# Chạy kiểm định Jarque-Bera cho SP500
jarque_bera_SP500 <- jarque.test(sp500$sp500)
# Chạy kiểm định Jarque-Bera cho VNINDEX
jarque_bera_VNI <- jarque.test(vni$vni)
# Kết quả kiểm định phân phối chuẩn Jarque-Bera cho cột SP500
print("Kết quả kiểm định phân phối chuẩn Jarque-Bera cho cột SP500:")
## [1] "Kết quả kiểm định phân phối chuẩn Jarque-Bera cho cột SP500:"
print(jarque_bera_SP500)
##
## Jarque-Bera Normality Test
##
## data: sp500$sp500
## JB = 114.82, p-value < 2.2e-16
## alternative hypothesis: greater
# Kết quả kiểm định phân phối chuẩn Jarque-Bera cho cột VNI
print("Kết quả kiểm định phân phối chuẩn Jarque-Bera cho cột VNI:")
## [1] "Kết quả kiểm định phân phối chuẩn Jarque-Bera cho cột VNI:"
print(jarque_bera_VNI)
##
## Jarque-Bera Normality Test
##
## data: vni$vni
## JB = 94.892, p-value < 2.2e-16
## alternative hypothesis: greater
Kiểm định tính dừng Augmented dickey-fuller
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
# Kiểm định tính dừng Augmented Dickey-Fuller trên chuỗi dữ liệu SP500
result_sp500 <- adf.test(sp500$sp500)
# Kiểm định tính dừng Augmented Dickey-Fuller trên chuỗi dữ liệu VNI
result_vni <- adf.test(vni$vni)
# In kết quả kiểm định tính dừng Augmented Dickey-Fuller cho cột SP500
print("Kết quả kiểm định tính dừng Augmented Dickey-Fuller cho cột SP500:")
## [1] "Kết quả kiểm định tính dừng Augmented Dickey-Fuller cho cột SP500:"
print(result_sp500)
##
## Augmented Dickey-Fuller Test
##
## data: sp500$sp500
## Dickey-Fuller = -2.431, Lag order = 10, p-value = 0.3959
## alternative hypothesis: stationary
# In kết quả kiểm định tính dừng Augmented Dickey-Fuller cho cột VNI
print("Kết quả kiểm định tính dừng Augmented Dickey-Fuller cho cột VNI:")
## [1] "Kết quả kiểm định tính dừng Augmented Dickey-Fuller cho cột VNI:"
print(result_vni)
##
## Augmented Dickey-Fuller Test
##
## data: vni$vni
## Dickey-Fuller = -2.2443, Lag order = 10, p-value = 0.4749
## alternative hypothesis: stationary
Kiểm định tương quan chuỗi : Ljung-box
library(stats)
# Kiểm định tương quan chuỗi dữ liệu SP500 bằng Ljung-Box
lb_sp500 <- Box.test(sp500$sp500, lag = 10, type = "Ljung-Box")
# Kiểm định tương quan chuỗi dữ liệu VNI bằng Ljung-Box
lb_vni <- Box.test(vni$vni, lag = 10, type = "Ljung-Box")
# In kết quả kiểm định tương quan chuỗi Ljung-box cho cột SP500
print("Kết quả kiểm định tương quan chuỗi Ljung-box cho cột SP500:")
## [1] "Kết quả kiểm định tương quan chuỗi Ljung-box cho cột SP500:"
print(lb_sp500)
##
## Box-Ljung test
##
## data: sp500$sp500
## X-squared = 12103, df = 10, p-value < 2.2e-16
# In kết quả kiểm định tương quan chuỗi Ljung-box cho cột VNI
print("Kết quả kiểm định tương quan chuỗi Ljung-box cho cột VNI:")
## [1] "Kết quả kiểm định tương quan chuỗi Ljung-box cho cột VNI:"
print(lb_vni)
##
## Box-Ljung test
##
## data: vni$vni
## X-squared = 11955, df = 10, p-value < 2.2e-16
Kiểm định hiệu ứng ARCH: ARCH-LM