library(rugarch)
## Warning: package 'rugarch' was built under R version 4.2.3
## Loading required package: parallel
## 
## Attaching package: 'rugarch'
## The following object is masked from 'package:stats':
## 
##     sigma
library(moments)
library(tseries)
## Warning: package 'tseries' was built under R version 4.2.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(nortest)
library(kSamples)
## Warning: package 'kSamples' was built under R version 4.2.3
## Loading required package: SuppDists
## Warning: package 'SuppDists' was built under R version 4.2.3
## 
## Attaching package: 'kSamples'
## The following object is masked from 'package:nortest':
## 
##     ad.test
library(VineCopula)
## Warning: package 'VineCopula' was built under R version 4.2.3
library(FinTS)
## Warning: package 'FinTS' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(goftest)
## 
## Attaching package: 'goftest'
## The following object is masked from 'package:kSamples':
## 
##     ad.test
## The following objects are masked from 'package:nortest':
## 
##     ad.test, cvm.test
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.3
## Warning: package 'ggplot2' was built under R version 4.2.3
## Warning: package 'tibble' was built under R version 4.2.3
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'purrr' was built under R version 4.2.3
## Warning: package 'stringr' was built under R version 4.2.3
## Warning: package 'forcats' was built under R version 4.2.3
## Warning: package 'lubridate' was built under R version 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.4
## ✔ ggplot2   3.4.2     ✔ stringr   1.5.0
## ✔ lubridate 1.9.2     ✔ tibble    3.2.1
## ✔ purrr     1.0.1     ✔ tidyr     1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ purrr::reduce() masks rugarch::reduce()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
vnindex1 <- read_excel("C:/Users/dell/Downloads/VN Index Historical Data before covid 19 - Copy (2).xlsx")
nas1 <- read_excel("C:/Users/dell/Downloads/NASDAQ Composite Historical Data before covid.xlsx", 
    col_types = c("date", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric"))

#Mô tả thống kê và kiểm định thống kê ## vni ### Chuỗi lợi suất vni

pricevni <- as.numeric(gsub(",", "", vnindex1$Price))
returnvni <- rev(diff(log(vnindex1$Price)))

0.0.1 Mô tả thống kê

vnindex1 %>% summarise(Min = min(returnvni),
            Max = max(returnvni),
            Mean = mean(returnvni),
            StDev = sd(returnvni),
            Skewness = skewness(returnvni),
            Kurtosis = kurtosis(returnvni))
## # A tibble: 1 × 6
##      Min    Max     Mean  StDev Skewness Kurtosis
##    <dbl>  <dbl>    <dbl>  <dbl>    <dbl>    <dbl>
## 1 -0.157 0.0770 0.000322 0.0291    -1.43     8.56

0.0.1.1 Kiểm định vni

adf.test(returnvni)
## Warning in adf.test(returnvni): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  returnvni
## Dickey-Fuller = -4.585, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
jarque.bera.test(returnvni)
## 
##  Jarque Bera Test
## 
## data:  returnvni
## X-squared = 252.71, df = 2, p-value < 2.2e-16
Box.test(returnvni, lag = 2, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  returnvni
## X-squared = 4.2348, df = 2, p-value = 0.1203
Box.test(returnvni, lag = 2, type = "Box-Pierce")
## 
##  Box-Pierce test
## 
## data:  returnvni
## X-squared = 4.153, df = 2, p-value = 0.1254

0.0.2 Nasdaq

0.0.2.1 Chuỗi lợi suất nas

pricenas <- as.numeric(gsub(",", "", nas1$Price))
returnnas <- rev(diff(log(nas1$Price)))

0.0.3 Mô tả thống kê

nas1 %>% summarise(Min = min(returnnas),
            Max = max(returnnas),
            Mean = mean(returnnas),
            StDev = sd(returnvni),
            Skewness = skewness(returnnas),
            Kurtosis = kurtosis(returnnas))
## # A tibble: 1 × 6
##      Min   Max    Mean  StDev Skewness Kurtosis
##    <dbl> <dbl>   <dbl>  <dbl>    <dbl>    <dbl>
## 1 -0.135 0.101 0.00370 0.0291   -0.822     6.50

0.0.3.1 Kiểm định nas

adf.test(returnnas)
## Warning in adf.test(returnnas): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  returnnas
## Dickey-Fuller = -5.5271, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
jarque.bera.test(returnnas)
## 
##  Jarque Bera Test
## 
## data:  returnnas
## X-squared = 96.384, df = 2, p-value < 2.2e-16
Box.test(returnnas, lag = 2, type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  returnnas
## X-squared = 0.78419, df = 2, p-value = 0.6756
Box.test(returnnas, lag = 2, type = "Box-Pierce")
## 
##  Box-Pierce test
## 
## data:  returnnas
## X-squared = 0.76598, df = 2, p-value = 0.6818

0.1 Hệ số tương quan

0.1.1 Hệ số pearson

cor(returnvni,returnnas, method = "pearson")
## [1] 0.501605

0.1.2 Hệ số spearman

cor(returnvni,returnnas, method = "spearman")
## [1] 0.3488511

0.1.3 Hệ số Kendall

cor(returnvni,returnnas, method = "kendall")
## [1] 0.2444072

0.1.4 Hệ số arch

b.archTest <- ArchTest(returnvni, lags = 1, demean = TRUE)
c.archTest <- ArchTest(returnnas, lags = 1, demean = TRUE)
b.archTest
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  returnvni
## Chi-squared = 2.4462, df = 1, p-value = 0.1178
c.archTest
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  returnnas
## Chi-squared = 14.77, df = 1, p-value = 0.0001215

1 Xác định mô hình biên

1.1 VNI

vni1.ts <- ts(vnindex1[,2])

1.1.1 Mô hình ARMA

autoarfima(vni1.ts,ar.max = 2, ma.max = 2, criterion = "AIC", method = "full")
## $fit
## 
## *----------------------------------*
## *          ARFIMA Model Fit        *
## *----------------------------------*
## Mean Model   : ARFIMA(2,0,2)
## Distribution : norm 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu    1052.61424    0.086322 12193.98        0
## ar1      0.00000          NA       NA       NA
## ar2      0.89746    0.000093  9643.79        0
## ma1      1.21500    0.000028 43330.51        0
## ma2      0.16715    0.000017  9663.71        0
## sigma   26.17220    0.049855   524.97        0
## 
## Robust Standard Errors:
##         Estimate  Std. Error   t value Pr(>|t|)
## mu    1052.61424    3.997158  263.3407        0
## ar1      0.00000          NA        NA       NA
## ar2      0.89746    0.001647  545.0655        0
## ma1      1.21500    0.000675 1800.9707        0
## ma2      0.16715    0.000318  524.8398        0
## sigma   26.17220    3.001580    8.7195        0
## 
## LogLikelihood : -724.0088 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       9.3463
## Bayes        9.4440
## Shibata      9.3443
## Hannan-Quinn 9.3860
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                     0.07753  0.7807
## Lag[2*(p+q)+(p+q)-1][11]   4.10340  0.9998
## Lag[4*(p+q)+(p+q)-1][19]   7.76131  0.8261
## 
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      1.069  0.3012
## Lag[2*(p+q)+(p+q)-1][2]     2.581  0.1823
## Lag[4*(p+q)+(p+q)-1][5]     3.574  0.3122
## 
## 
## ARCH LM Tests
## ------------------------------------
##              Statistic DoF P-Value
## ARCH Lag[2]      3.677   2  0.1590
## ARCH Lag[5]      3.277   5  0.6574
## ARCH Lag[10]     5.407  10  0.8623
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  8.1332
## Individual Statistics:             
## mu    0.01449
## ar2   0.01425
## ma1   0.01462
## ma2   0.01461
## sigma 0.21275
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.28 1.47 1.88
## Individual Statistic:     0.35 0.47 0.75
## 
## 
## Elapsed time : 0.05879498 
## 
## 
## $rank.matrix
##    ar1 ar2 ma1 ma2 im arf       AIC converged
## 1    0   1   1   1  1   0  9.346267         1
## 2    1   0   1   0  1   0  9.427842         1
## 3    1   1   0   0  1   0  9.431364         1
## 4    0   1   1   0  1   0  9.438511         1
## 5    1   1   1   0  1   0  9.439112         1
## 6    1   0   1   1  1   0  9.439254         1
## 7    1   1   0   1  1   0  9.439811         1
## 8    1   0   0   0  1   0  9.442138         1
## 9    1   1   1   1  1   0  9.449600         1
## 10   1   0   0   1  1   0  9.453592         1
## 11   0   1   0   0  1   0 10.250550         1
## 12   0   0   1   1  1   0 10.256259         1
## 13   0   1   0   1  1   0 10.259284         1
## 14   0   0   1   0  1   0 10.784204         1
## 15   0   0   0   1  1   0 10.941781         1
## 16   0   0   0   0  1   0 11.808644         1
## 17   1   0   0   0  0   0 11.835223         1
## 18   1   0   0   1  0   0 11.843648         1
## 19   1   0   1   0  0   0 11.846330         1
## 20   1   0   1   1  0   0 11.854876         1
## 21   1   1   0   0  0   0 12.495969         1
## 22   1   1   1   0  0   0 12.507311         1
## 23   1   1   0   1  0   0 12.508431         1
## 24   1   1   1   1  0   0 12.520131         1
## 25   0   1   1   0  0   0 12.554815         1
## 26   0   1   0   0  0   0 12.560957         1
## 27   0   1   0   1  0   0 12.565732         1
## 28   0   1   1   1  0   0 12.567459         1
## 29   0   0   1   1  0   0 14.448822         1
## 30   0   0   1   0  0   0 15.338941         1
## 31   0   0   0   1  0   0 15.378431         1

1.1.2 Các dạng mô hình garch cho chuỗi vni

1.1.2.1 GJR-GARCH(11)VNI

vnindex1.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

vnindex1.garch11n.fit <- ugarchfit(spec = vnindex1.garch11n.spec, data = vni1.ts)

vnindex1.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std")

vnindex1.garch11t.fit <- ugarchfit(spec = vnindex1.garch11t.spec, data = vni1.ts)

vnindex1.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

vnindex1.garch11st.fit <- ugarchfit(spec = vnindex1.garch11st.spec, data = vni1.ts)

vnindex1.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged")

vnindex1.garch11g.fit <- ugarchfit(spec = vnindex1.garch11g.spec, data = vni1.ts)

vnindex1.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged") 

vnindex1.garch11sg.fit <- ugarchfit(spec = vnindex1.garch11sg.spec, data = vni1.ts)

####GJR-GARCH(12)VNI

vnindex1.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

vnindex1.garch12n.fit <- ugarchfit(spec = vnindex1.garch12n.spec, data = vni1.ts)

vnindex1.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std")

vnindex1.garch12t.fit <- ugarchfit(spec = vnindex1.garch12t.spec, data = vni1.ts)

vnindex1.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

vnindex1.garch12st.fit <- ugarchfit(spec = vnindex1.garch12st.spec, data = vni1.ts)

vnindex1.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged")

vnindex1.garch12g.fit <- ugarchfit(spec = vnindex1.garch12g.spec, data = vni1.ts)

vnindex1.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged")

vnindex1.garch12sg.fit <- ugarchfit(spec = vnindex1.garch12sg.spec, data = vni1.ts)

1.1.2.2 GJR-GARCH(21)VNI

vnindex1.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

vnindex1.garch21n.fit <- ugarchfit(spec = vnindex1.garch21n.spec, data = vni1.ts)

vnindex1.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std") 

vnindex1.garch21t.fit <- ugarchfit(spec = vnindex1.garch21t.spec, data = vni1.ts)

vnindex1.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

vnindex1.garch21st.fit <- ugarchfit(spec = vnindex1.garch21st.spec, data = vni1.ts)

vnindex1.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged")

vnindex1.garch21g.fit <- ugarchfit(spec = vnindex1.garch21g.spec, data = vni1.ts)

vnindex1.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged")

vnindex1.garch21sg.fit <- ugarchfit(spec = vnindex1.garch21sg.spec, data = vni1.ts)

####GJR-GARCH(22)VNI

vnindex1.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

vnindex1.garch22n.fit <- ugarchfit(spec = vnindex1.garch22n.spec, data = vni1.ts)

vnindex1.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std") 

vnindex1.garch22t.fit <- ugarchfit(spec = vnindex1.garch22t.spec, data = vni1.ts)

vnindex1.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

vnindex1.garch22st.fit <- ugarchfit(spec = vnindex1.garch22st.spec, data = vni1.ts)

vnindex1.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged") 

vnindex1.garch22g.fit <- ugarchfit(spec = vnindex1.garch22g.spec, data = vni1.ts)

vnindex1.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged")

vnindex1.garch22sg.fit <- ugarchfit(spec = vnindex1.garch22sg.spec, data = vni1.ts)

1.2 NASDAQ

nas1.ts <- ts(nas1)

1.2.1 Mô hình ARMA

autoarfima(nas1.ts[,2],ar.max = 2, ma.max = 2, criterion = "AIC", method = "full")
## $fit
## 
## *----------------------------------*
## *          ARFIMA Model Fit        *
## *----------------------------------*
## Mean Model   : ARFIMA(1,0,0)
## Distribution : norm 
## 
## Optimal Parameters
## ------------------------------------
##        Estimate  Std. Error  t value Pr(>|t|)
## mu    7333.7874  294.821069   24.875        0
## ar1      0.9901    0.013002   76.148        0
## sigma  271.9979   16.099980   16.894        0
## 
## Robust Standard Errors:
##        Estimate  Std. Error  t value Pr(>|t|)
## mu    7333.7874  193.096545  37.9799        0
## ar1      0.9901    0.021752  45.5181        0
## sigma  271.9979   39.618529   6.8654        0
## 
## LogLikelihood : -1095.862 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       14.088
## Bayes        14.147
## Shibata      14.087
## Hannan-Quinn 14.112
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                    0.02689  0.8697
## Lag[2*(p+q)+(p+q)-1][2]   0.19934  0.9988
## Lag[4*(p+q)+(p+q)-1][5]   1.70432  0.7941
## 
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic   p-value
## Lag[1]                      7.765 5.328e-03
## Lag[2*(p+q)+(p+q)-1][2]     8.821 3.920e-03
## Lag[4*(p+q)+(p+q)-1][5]    32.261 7.278e-09
## 
## 
## ARCH LM Tests
## ------------------------------------
##              Statistic DoF   P-Value
## ARCH Lag[2]      8.186   2 1.669e-02
## ARCH Lag[5]     39.595   5 1.802e-07
## ARCH Lag[10]    43.649  10 3.806e-06
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  2.2129
## Individual Statistics:            
## mu    0.5564
## ar1   0.1888
## sigma 1.3721
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          0.846 1.01 1.35
## Individual Statistic:     0.35 0.47 0.75
## 
## 
## Elapsed time : 0.04453897 
## 
## 
## $rank.matrix
##    ar1 ar2 ma1 ma2 im arf      AIC converged
## 1    1   0   0   0  1   0 14.08797         1
## 2    0   1   1   0  1   0 14.09411         1
## 3    1   0   0   1  1   0 14.09504         1
## 4    1   1   0   0  1   0 14.09999         1
## 5    1   0   1   0  1   0 14.10053         1
## 6    0   1   1   1  1   0 14.10502         1
## 7    1   1   0   1  1   0 14.10705         1
## 8    1   1   1   0  1   0 14.10711         1
## 9    1   0   1   1  1   0 14.10785         1
## 10   1   1   1   1  1   0 14.12094         1
## 11   0   1   0   1  1   0 14.78199         1
## 12   0   1   0   0  1   0 14.78675         1
## 13   0   0   1   1  1   0 15.72436         1
## 14   1   0   0   0  0   0 15.82121         1
## 15   1   0   0   1  0   0 15.82932         1
## 16   1   0   1   0  0   0 15.83202         1
## 17   1   0   1   1  0   0 15.84035         1
## 18   1   1   0   0  0   0 16.42643         1
## 19   1   1   0   1  0   0 16.43899         1
## 20   1   1   1   0  0   0 16.43899         1
## 21   1   1   1   1  0   0 16.45174         1
## 22   0   0   1   0  1   0 16.45816         1
## 23   0   0   0   1  1   0 16.50469         1
## 24   0   1   1   0  0   0 16.52391         1
## 25   0   1   1   1  0   0 16.53628         1
## 26   0   1   0   0  0   0 16.55070         1
## 27   0   1   0   1  0   0 16.55415         1
## 28   0   0   0   0  1   0 17.52963         1
## 29   0   0   1   1  0   0 18.75679         1
## 30   0   0   1   0  0   0 19.72188         1
## 31   0   0   0   1  0   0 19.76278         1

1.2.2 Các dạng mô hình garch cho chuỗi NASDAQ

1.2.2.1 GJR-GARCH(11)NASDAQ

nas1.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

nas1.garch11n.fit <- ugarchfit(spec = nas1.garch11n.spec, data = nas1.ts[,2])

nas1.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std")

nas1.garch11t.fit <- ugarchfit(spec = nas1.garch11t.spec, data = nas1.ts[,2])

nas1.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

nas1.garch11st.fit <- ugarchfit(spec = nas1.garch11st.spec, data = nas1.ts[,2])

nas1.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged")

nas1.garch11g.fit <- ugarchfit(spec = nas1.garch11g.spec, data = nas1.ts[,2])

nas1.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged") 

nas1.garch11sg.fit <- ugarchfit(spec = nas1.garch11sg.spec, data = nas1.ts[,2])

1.2.2.2 GJR-GARCH(12)NASDAQ

nas1.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

nas1.garch12n.fit <- ugarchfit(spec = nas1.garch12n.spec, data = nas1.ts[,2])

nas1.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std")

nas1.garch12t.fit <- ugarchfit(spec = nas1.garch12t.spec, data = nas1.ts[,2])

nas1.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

nas1.garch12st.fit <- ugarchfit(spec = nas1.garch12st.spec, data = nas1.ts[,2])

nas1.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged")

nas1.garch12g.fit <- ugarchfit(spec = nas1.garch12g.spec, data = nas1.ts[,2])

nas1.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged")

nas1.garch12sg.fit <- ugarchfit(spec = nas1.garch12sg.spec, data = nas1.ts[,2])

1.2.2.3 GJR-GARCH(21)NASDAQ

nas1.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

nas1.garch21n.fit <- ugarchfit(spec = nas1.garch21n.spec, data = nas1.ts[,2])

nas1.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std") 

nas1.garch21t.fit <- ugarchfit(spec = nas1.garch21t.spec, data = nas1.ts[,2])

nas1.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

nas1.garch21st.fit <- ugarchfit(spec = nas1.garch21st.spec, data = nas1.ts[,2])

nas1.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged")

nas1.garch21g.fit <- ugarchfit(spec = nas1.garch21g.spec, data = nas1.ts[,2])

nas1.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged")

nas1.garch21sg.fit <- ugarchfit(spec = nas1.garch21sg.spec, data = nas1.ts[,2])

1.2.2.4 GJR-GARCH(22)NASDAQ

nas1.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "norm")

nas1.garch22n.fit <- ugarchfit(spec = nas1.garch22n.spec, data = nas1.ts[,2])

nas1.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "std") 

nas1.garch22t.fit <- ugarchfit(spec = nas1.garch22t.spec, data = nas1.ts[,2])

nas1.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sstd")

nas1.garch22st.fit <- ugarchfit(spec = nas1.garch22st.spec, data = nas1.ts[,2])

nas1.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "ged") 

nas1.garch22g.fit <- ugarchfit(spec = nas1.garch22g.spec, data = nas1.ts[,2])

nas1.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)), mean.model = list(armaOrder = c(2, 2), include.mean = TRUE), distribution.model = "sged")

nas1.garch22sg.fit <- ugarchfit(spec = nas1.garch22sg.spec, data = nas1.ts[,2])

1.3 LỰA CHỌN MÔ HÌNH GJR-GARCH

###VNINDEX

vni1.model.list <- list(garch11n = vnindex1.garch11n.fit, garch11t = vnindex1.garch11t.fit, garch11st = vnindex1.garch11st.fit, garch11g = vnindex1.garch11g.fit, garch11sg = vnindex1.garch11sg.fit, garch12n = vnindex1.garch12n.fit, garch12t = vnindex1.garch12t.fit, garch12st = vnindex1.garch12st.fit, garch12g = vnindex1.garch12g.fit, garch12sg = vnindex1.garch12sg.fit, garch21n = vnindex1.garch21n.fit, garch21t = vnindex1.garch21t.fit, garch21st = vnindex1.garch21st.fit, garch21g = vnindex1.garch21g.fit, garch21sg = vnindex1.garch21sg.fit, garch22n = vnindex1.garch22n.fit, garch22t = vnindex1.garch22t.fit, garch22st = vnindex1.garch22st.fit, garch22g =vnindex1.garch22g.fit, garch22sg = vnindex1.garch22sg.fit) 

vni1.info.mat <- sapply(vni1.model.list, infocriteria)

rownames(vni1.info.mat) <- rownames(infocriteria(vnindex1.garch11n.fit))
vni1.info.mat
##              garch11n garch11t garch11st garch11g garch11sg garch12n garch12t
## Akaike       9.353430 9.199591  9.149415 9.165301  9.156282 9.379804 9.203908
## Bayes        9.529383 9.395094  9.364469 9.360805  9.371336 9.575307 9.418962
## Shibata      9.347244 9.192013  9.140317 9.157724  9.147184 9.372226 9.194809
## Hannan-Quinn 9.424894 9.278996  9.236761 9.244707  9.243628 9.459209 9.291253
##              garch12st garch12g garch12sg garch21n garch21t garch21st garch21g
## Akaike        9.160452 9.294489  9.168194 9.273906 9.224143  9.162807 9.246666
## Bayes         9.395056 9.509543  9.402799 9.488960 9.458748  9.416962 9.481270
## Shibata       9.149706 9.285391  9.157449 9.264808 9.213398  9.150291 9.235921
## Hannan-Quinn  9.255738 9.381835  9.263480 9.361252 9.319429  9.266034 9.341952
##              garch21sg garch22n garch22t garch22st garch22g garch22sg
## Akaike        9.172903 9.236360 9.174219  9.133942 9.226856  9.148142
## Bayes         9.427058 9.470964 9.428374  9.407647 9.481011  9.421847
## Shibata       9.160387 9.225615 9.161703  9.119535 9.214340  9.133734
## Hannan-Quinn  9.276130 9.331646 9.277446  9.245109 9.330083  9.259309
vni1.inds <- which(vni1.info.mat == min(vni1.info.mat), arr.ind=TRUE)

model.vni1 <- colnames(vni1.info.mat)[vni1.inds[,2]]

model.vni1
## [1] "garch22st"

###Nasdaq

nas1.model.list <- list(garch11n = nas1.garch11n.fit, garch11t = nas1.garch11t.fit, garch11st = nas1.garch11st.fit, garch11g = nas1.garch11g.fit, garch11sg = nas1.garch11sg.fit, garch12n = nas1.garch12n.fit, garch12t = nas1.garch12t.fit, garch12st = nas1.garch12st.fit, garch12g = nas1.garch12g.fit, garch12sg = nas1.garch12sg.fit, garch21n = nas1.garch21n.fit, garch21t = nas1.garch21t.fit, garch21st = nas1.garch21st.fit, garch21g = nas1.garch21g.fit, garch21sg = nas1.garch21sg.fit, garch22n = nas1.garch22n.fit, garch22t = nas1.garch22t.fit, garch22st = nas1.garch22st.fit, garch22g =nas1.garch22g.fit, garch22sg = nas1.garch22sg.fit) 

nas1.info.mat <- sapply(nas1.model.list, infocriteria) 

rownames(nas1.info.mat) <- rownames(infocriteria(nas1.garch11n.fit)) 

nas1.info.mat
##              garch11n garch11t garch11st garch11g garch11sg garch12n garch12t
## Akaike       13.76652 13.76548  13.52247 14.04103  14.02723 13.74802 13.78930
## Bayes        13.94247 13.96098  13.73752 14.23653  14.24228 13.94352 14.00435
## Shibata      13.76034 13.75790  13.51337 14.03345  14.01813 13.74044 13.78020
## Hannan-Quinn 13.83799 13.84488  13.60981 14.12043  14.11457 13.82742 13.87665
##              garch12st garch12g garch12sg garch21n garch21t garch21st garch21g
## Akaike        13.49310 14.04940  14.03457 13.73554 13.74472  13.51318 13.74490
## Bayes         13.72770 14.26445  14.26917 13.95059 13.97933  13.76734 13.97950
## Shibata       13.48235 14.04030  14.02382 13.72644 13.73398  13.50067 13.73415
## Hannan-Quinn  13.58838 14.13674  14.12985 13.82289 13.84001  13.61641 13.84018
##              garch21sg garch22n garch22t garch22st garch22g garch22sg
## Akaike        14.00925 13.74416 13.76110  13.52321 14.03200  14.02206
## Bayes         14.26340 13.97876 14.01526  13.79692 14.28615  14.29576
## Shibata       13.99673 13.73341 13.74859  13.50881 14.01948  14.00765
## Hannan-Quinn  14.11247 13.83944 13.86433  13.63438 14.13523  14.13322
nas1.inds <- which(nas1.info.mat == min(nas1.info.mat), arr.ind=TRUE)

model.nas1 <- colnames(nas1.info.mat)[nas1.inds[,2]]

model.nas1
## [1] "garch12st"

#THAM SỐ ƯỚC LƯỢNG MÔ HÌNH BIÊN PHÙ HỢP NHẤT

vnindex1.garch22st.fit
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(2,2)
## Mean Model   : ARFIMA(2,0,2)
## Distribution : sstd 
## 
## Optimal Parameters
## ------------------------------------
##           Estimate  Std. Error    t value Pr(>|t|)
## mu     1029.186861    5.993765 171.709588 0.000000
## ar1       0.128745    0.037021   3.477585 0.000506
## ar2       0.816294    0.040988  19.915559 0.000000
## ma1       0.908713    0.085296  10.653648 0.000000
## ma2       0.003600    0.047611   0.075605 0.939734
## omega   122.754357   61.486616   1.996440 0.045886
## alpha1    0.000000    0.334584   0.000000 1.000000
## alpha2    0.671880    0.324912   2.067885 0.038651
## beta1     0.028007    0.298911   0.093696 0.925351
## beta2     0.267708    0.173885   1.539567 0.123666
## gamma1    0.189431    0.326126   0.580853 0.561339
## gamma2   -0.420081    0.374740  -1.120994 0.262290
## skew      0.550500    0.078706   6.994363 0.000000
## shape     7.539318    3.960613   1.903574 0.056966
## 
## Robust Standard Errors:
##           Estimate  Std. Error    t value Pr(>|t|)
## mu     1029.186861    5.485497 187.619627 0.000000
## ar1       0.128745    0.081858   1.572779 0.115770
## ar2       0.816294    0.087313   9.349000 0.000000
## ma1       0.908713    0.099971   9.089722 0.000000
## ma2       0.003600    0.072003   0.049993 0.960128
## omega   122.754357   97.581437   1.257968 0.208403
## alpha1    0.000000    0.719882   0.000000 1.000000
## alpha2    0.671880    0.389833   1.723507 0.084797
## beta1     0.028007    0.627507   0.044632 0.964401
## beta2     0.267708    0.294959   0.907611 0.364084
## gamma1    0.189431    0.746295   0.253829 0.799628
## gamma2   -0.420081    0.611648  -0.686802 0.492208
## skew      0.550500    0.110385   4.987107 0.000001
## shape     7.539318    4.285178   1.759394 0.078511
## 
## LogLikelihood : -698.4475 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       9.1339
## Bayes        9.4076
## Shibata      9.1195
## Hannan-Quinn 9.2451
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                     0.03692  0.8476
## Lag[2*(p+q)+(p+q)-1][11]   4.69054  0.9898
## Lag[4*(p+q)+(p+q)-1][19]   7.99909  0.7944
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                      0.7553 0.38481
## Lag[2*(p+q)+(p+q)-1][11]   12.1087 0.03591
## Lag[4*(p+q)+(p+q)-1][19]   16.4154 0.05723
## d.o.f=4
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale  P-Value
## ARCH Lag[5]    0.5711 0.500 2.000 0.449820
## ARCH Lag[7]   11.2776 1.473 1.746 0.004564
## ARCH Lag[9]   12.7028 2.402 1.619 0.006709
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  3.307
## Individual Statistics:               
## mu     0.005592
## ar1    0.024039
## ar2    0.127799
## ma1    0.283500
## ma2    0.118270
## omega  0.063298
## alpha1 0.208911
## alpha2 0.091608
## beta1  0.086257
## beta2  0.040365
## gamma1 0.240943
## gamma2 0.268203
## skew   0.619664
## shape  0.319168
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          3.08 3.34 3.9
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value   prob sig
## Sign Bias           0.2535 0.8002    
## Negative Sign Bias  0.7708 0.4421    
## Positive Sign Bias  1.1056 0.2706    
## Joint Effect        1.8244 0.6096    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     18.10       0.5156
## 2    30     31.31       0.3511
## 3    40     31.69       0.7907
## 4    50     51.05       0.3930
## 
## 
## Elapsed time : 1.380196
nas1.garch12st.fit
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : gjrGARCH(1,2)
## Mean Model   : ARFIMA(2,0,2)
## Distribution : sstd 
## 
## Optimal Parameters
## ------------------------------------
##           Estimate  Std. Error     t value Pr(>|t|)
## mu     7099.658893    0.949105 7480.374914  0.00000
## ar1       0.464330    0.000230 2022.800594  0.00000
## ar2       0.596498    0.000265 2251.217483  0.00000
## ma1       0.384217    0.000188 2042.920695  0.00000
## ma2      -0.165991    0.000215 -772.627225  0.00000
## omega  2533.156155    2.690003  941.692763  0.00000
## alpha1    0.000000    0.000034    0.000025  0.99998
## beta1     0.436595    0.000227 1926.591042  0.00000
## beta2     0.332708    0.000182 1831.992302  0.00000
## gamma1    0.287820    0.000189 1518.976315  0.00000
## skew      0.010325    0.001145    9.015977  0.00000
## shape     9.619021    0.009433 1019.684489  0.00000
## 
## Robust Standard Errors:
##           Estimate  Std. Error    t value Pr(>|t|)
## mu     7099.658893    1.249102 5683.81184  0.00000
## ar1       0.464330    0.000377 1231.84597  0.00000
## ar2       0.596498    0.000372 1601.76639  0.00000
## ma1       0.384217    0.000226 1702.02655  0.00000
## ma2      -0.165991    0.000254 -652.94561  0.00000
## omega  2533.156155    1.754235 1444.02355  0.00000
## alpha1    0.000000    0.000014    0.00006  0.99995
## beta1     0.436595    0.000107 4081.06725  0.00000
## beta2     0.332708    0.000102 3264.22682  0.00000
## gamma1    0.287820    0.000175 1648.63485  0.00000
## skew      0.010325    0.000775   13.32676  0.00000
## shape     9.619021    0.008264 1163.95576  0.00000
## 
## LogLikelihood : -1040.462 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       13.493
## Bayes        13.728
## Shibata      13.482
## Hannan-Quinn 13.588
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                       2.495  0.1142
## Lag[2*(p+q)+(p+q)-1][11]     4.562  0.9950
## Lag[4*(p+q)+(p+q)-1][19]     7.213  0.8884
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                     0.03268  0.8565
## Lag[2*(p+q)+(p+q)-1][8]    0.84113  0.9837
## Lag[4*(p+q)+(p+q)-1][14]   1.45864  0.9978
## d.o.f=3
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[4]    0.2704 0.500 2.000  0.6030
## ARCH Lag[6]    0.5037 1.461 1.711  0.8910
## ARCH Lag[8]    0.5332 2.368 1.583  0.9792
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  35.0192
## Individual Statistics:             
## mu     0.9820
## ar1    0.1762
## ar2    0.1185
## ma1    0.1876
## ma2    0.2117
## omega  0.6380
## alpha1 0.3231
## beta1  0.3881
## beta2  0.3849
## gamma1 0.6609
## skew   0.9760
## shape  0.7905
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.69 2.96 3.51
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value   prob sig
## Sign Bias          1.46877 0.1440    
## Negative Sign Bias 0.28027 0.7797    
## Positive Sign Bias 0.07618 0.9394    
## Joint Effect       4.13621 0.2471    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     14.77       0.7371
## 2    30     37.85       0.1258
## 3    40     40.92       0.3861
## 4    50     60.03       0.1344
## 
## 
## Elapsed time : 1.244629

#KIỂM ĐỊNH SỰ PHÙ HỢP CỦA MÔ HÌNH BIÊN

##Trích xuất chuỗi phần dư u của chuỗi NASDAQ

nas1.res <- residuals(nas1.garch21sg.fit)/sigma(nas1.garch21sg.fit)
fitdist(distribution = "sged", nas1.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.06552626  1.12758105  0.84062836  0.86373917 
## 
## $convergence
## [1] 0
## 
## $values
## [1] 243.5232 219.4774 219.4774
## 
## $lagrange
## [1] 0
## 
## $hessian
##            [,1]        [,2]       [,3]       [,4]
## [1,]  4027595.3   920437.67 -6741570.4  367775.24
## [2,]   920437.7   210461.22 -1540635.5   84092.81
## [3,] -6741570.4 -1540635.55 11284770.9 -615599.77
## [4,]   367775.2    84092.81  -615599.8   33680.90
## 
## $ineqx0
## NULL
## 
## $nfuneval
## [1] 176
## 
## $outer.iter
## [1] 2
## 
## $elapsed
## Time difference of 0.03621006 secs
## 
## $vscale
## [1] 1 1 1 1 1
u <-pdist(distribution = "sged", q = nas1.res, mu = -0.06552626 , sigma = 1.12758105 , skew=0.84062836, shape= 0.86373917)

##Trích xuất chuỗi phần dư v của chuỗi VNI

vni1.res <- residuals(vnindex1.garch11sg.fit)/sigma(vnindex1.garch11sg.fit)
fitdist(distribution = "sged", vni1.res, control = list())
## $pars
##          mu       sigma        skew       shape 
## -0.01375835  1.04473982  0.62022477  1.06838240 
## 
## $convergence
## [1] 0
## 
## $values
## [1] 228.8834 206.0694 206.0694
## 
## $lagrange
## [1] 0
## 
## $hessian
##            [,1]       [,2]       [,3]      [,4]
## [1,]  2370.9077  1382.0762 -3223.3166  409.0343
## [2,]  1382.0762   954.6693 -1809.2064  281.2144
## [3,] -3223.3166 -1809.2064  5033.1383 -534.1669
## [4,]   409.0343   281.2144  -534.1669  113.8131
## 
## $ineqx0
## NULL
## 
## $nfuneval
## [1] 112
## 
## $outer.iter
## [1] 2
## 
## $elapsed
## Time difference of 0.0303359 secs
## 
## $vscale
## [1] 1 1 1 1 1
v <-pdist("sged",vni1.res, mu = -0.01375835, sigma = 1.04473982 , skew= 0.62022477, shape = 1.06838240)

2 Các kiểm định sự phù hợp mô hình biên

2.1 Kiểm định Anderson-Darling (A-D)

ad.test(u, "punif")
## 
##  Anderson-Darling test of goodness-of-fit
##  Null hypothesis: uniform distribution
##  Parameters assumed to be fixed
## 
## data:  u
## An = 0.57981, p-value = 0.667
ad.test(v, "punif")
## 
##  Anderson-Darling test of goodness-of-fit
##  Null hypothesis: uniform distribution
##  Parameters assumed to be fixed
## 
## data:  v
## An = 0.70958, p-value = 0.5506

2.2 Kiểm định Cramer-von Mises (Cv-M)

cvm.test(u, "punif")
## 
##  Cramer-von Mises test of goodness-of-fit
##  Null hypothesis: uniform distribution
##  Parameters assumed to be fixed
## 
## data:  u
## omega2 = 0.064377, p-value = 0.7872
cvm.test(v, "punif")
## 
##  Cramer-von Mises test of goodness-of-fit
##  Null hypothesis: uniform distribution
##  Parameters assumed to be fixed
## 
## data:  v
## omega2 = 0.13246, p-value = 0.4482

2.3 Kiểm định Kolmogorov-Smornov (K-S)

ks.test(u, "punif")
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  u
## D = 0.059943, p-value = 0.6294
## alternative hypothesis: two-sided
ks.test(v, "punif")
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  v
## D = 0.061457, p-value = 0.5976
## alternative hypothesis: two-sided

2.4 ƯỚC LƯỢNG THAM SỐ COUPULA

BiCopSelect(u, v, familyset= NA, selectioncrit="AIC",indeptest = FALSE, level = 0.05)
## Bivariate copula: Clayton (par = 0.54, tau = 0.21)
Stu <- BiCopEst(u, v, family = 23, method = "mle", se = T, max.df = 10)
summary(Stu)
## Family
## ------ 
## No:    23
## Name:  Rotated Clayton 90 degrees
## 
## Parameter(s)
## ------------
## par:  0  (SE = 0.1)
## 
## Dependence measures
## -------------------
## Kendall's tau:    0 (empirical = 0.22, p value < 0.01)
## Upper TD:         0 
## Lower TD:         0 
## 
## Fit statistics
## --------------
## logLik:  -0.01 
## AIC:    2.02 
## BIC:    5.06