VNINDEX

CHUỖI LỢI TỨC VNI

vnindex <- read_excel("D:/MHNN/vnidata.xlsx")
vnindex$price <- as.numeric(gsub(",", "", vnindex$price))
returnvni <- rev(diff(log(vnindex$price))) #Tính dãy lợi suất
vnindex$returnvni <-c(0,returnvni) #Bổ sung lợi suất ngày đâu tiên là 0
plot.ts(vnindex$returnvni)

USD/VND

CHUỖI LỢI TỨC USDVND

usdvnd <- read_excel("D:/MHNN/usdvnddata.xlsx")
usdvnd $price <- as.numeric(gsub(",", "", usdvnd $price))
returnusdvnd <- rev(diff(log(usdvnd $price))) #Tính dãy lợi suất
usdvnd $returnusdvnd <-c(0,returnusdvnd) #Bổ sung lợi suất ngày đâu tiên là 0
plot.ts(returnusdvnd)

KIỂM ĐỊNH DỮ LIỆU

PHÂN PHỐI CHUẨN

ggqqplot(vnindex$price)

ggqqplot(usdvnd$price)

TÍNH DỪNG

adf.test(vnindex$price, alternative = c("stationary","explosive"), k = trunc((length(vnindex$price) - 1)^1/3))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  vnindex$price
## Dickey-Fuller = -1.8386, Lag order = 312, p-value = 0.6466
## alternative hypothesis: stationary
adf.test(usdvnd$price, alternative = c("stationary","explosive"), k = trunc((length(usdvnd$price) - 1)^1/3))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  usdvnd$price
## Dickey-Fuller = -1.3633, Lag order = 312, p-value = 0.8478
## alternative hypothesis: stationary

HIỆU ỨNG ARCH

b.archTest <- ArchTest(vnindex$returnvni, lags = 1, demean = TRUE)
c.archTest <- ArchTest(usdvnd$returnusdvnd, lags = 1, demean = TRUE)
b.archTest
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  vnindex$returnvni
## Chi-squared = 121.12, df = 1, p-value < 2.2e-16
c.archTest
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  usdvnd$returnusdvnd
## Chi-squared = 0.0048796, df = 1, p-value = 0.9443

TỰ TƯƠNG QUAN

Box.test(vnindex$returnvni, lag = 1, type ='Ljung')
## 
##  Box-Ljung test
## 
## data:  vnindex$returnvni
## X-squared = 7.7978, df = 1, p-value = 0.005231
Box.test(usdvnd$returnusdvnd, lag = 1, type ='Ljung')
## 
##  Box-Ljung test
## 
## data:  usdvnd$returnusdvnd
## X-squared = 0.2342, df = 1, p-value = 0.6284

LỰA CHỌN MÔ HÌNH THEO AIC

A22

vni.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")
vni.garch11n.fit <- ugarchfit(spec = vni.garch11n.spec,vnindex$returnvni)
vni.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")
vni.garch11t.fit <- ugarchfit(spec = vni.garch11t.spec,vnindex$returnvni)
vni.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")
vni.garch11st.fit <- ugarchfit(spec = vni.garch11st.spec,vnindex$returnvni)
vni.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")
vni.garch11g.fit <- ugarchfit(spec = vni.garch11g.spec,vnindex$returnvni)
vni.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")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
vni.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")
vni.garch12n.fit <- ugarchfit(spec = vni.garch12n.spec,vnindex$returnvni)
vni.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")
vni.garch12t.fit <- ugarchfit(spec = vni.garch12t.spec,vnindex$returnvni)
vni.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")
vni.garch12st.fit <- ugarchfit(spec = vni.garch12st.spec,vnindex$returnvni)
vni.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")
vni.garch12g.fit <- ugarchfit(spec = vni.garch12g.spec,vnindex$returnvni)
vni.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")
vni.garch12sg.fit <- ugarchfit(spec = vni.garch12sg.spec,vnindex$returnvni)
vni.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")
vni.garch21n.fit <- ugarchfit(spec = vni.garch21n.spec,vnindex$returnvni)
vni.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")
vni.garch21t.fit <- ugarchfit(spec = vni.garch21t.spec,vnindex$returnvni)
vni.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")
vni.garch21st.fit <- ugarchfit(spec = vni.garch21st.spec,vnindex$returnvni)
vni.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")
vni.garch21g.fit <- ugarchfit(spec = vni.garch21g.spec,vnindex$returnvni)
vni.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")
vni.garch21sg.fit <- ugarchfit(spec = vni.garch21sg.spec,vnindex$returnvni)
vni.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")
vni.garch22n.fit <- ugarchfit(spec = vni.garch22n.spec,vnindex$returnvni)
vni.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")
vni.garch22t.fit <- ugarchfit(spec = vni.garch22t.spec,vnindex$returnvni)
vni.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")
vni.garch22st.fit <- ugarchfit(spec = vni.garch22st.spec,vnindex$returnvni)
vni.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")
vni.garch22g.fit <- ugarchfit(spec = vni.garch22g.spec,vnindex$returnvni)
vni.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")
vni.garch22sg.fit <- ugarchfit(spec = vni.garch22sg.spec,vnindex$returnvni)
vni.model.list <- list(garch11n = vni.garch11n.fit, garch11t = vni.garch11t.fit, garch11st = vni.garch11st.fit, garch11g = vni.garch11g.fit, garch11sg = vni.garch11sg.fit, garch12n = vni.garch12n.fit, garch12t = vni.garch12t.fit, garch12st = vni.garch12st.fit, garch12g = vni.garch12g.fit, garch12sg = vni.garch12sg.fit, garch21n = vni.garch21n.fit, garch21t = vni.garch21t.fit, garch21st = vni.garch21st.fit, garch21g = vni.garch21g.fit, garch21sg = vni.garch21sg.fit, garch22n = vni.garch22n.fit, garch22t = vni.garch22t.fit, garch22st = vni.garch22st.fit, garch22g = vni.garch22g.fit, garch22sg = vni.garch22sg.fit)

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

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

vni.info.mat
##               garch11n  garch11t garch11st  garch11g garch11sg  garch12n
## Akaike       -4.114376 -4.218438 -4.243747 -4.216859 -4.249597 -4.112602
## Bayes        -4.067940 -4.166842 -4.186992 -4.165264 -4.192842 -4.061006
## Shibata      -4.114557 -4.218662 -4.244017 -4.217083 -4.249867 -4.112826
## Hannan-Quinn -4.096673 -4.198768 -4.222110 -4.197189 -4.227960 -4.092932
##               garch12t garch12st  garch12g garch12sg  garch21n  garch21t
## Akaike       -4.218047 -4.222051 -4.215796 -4.223808 -4.116220 -4.233714
## Bayes        -4.161292 -4.160136 -4.159041 -4.161893 -4.059465 -4.171799
## Shibata      -4.218317 -4.222372 -4.216066 -4.224129 -4.116490 -4.234035
## Hannan-Quinn -4.196410 -4.198447 -4.194159 -4.200204 -4.094584 -4.210110
##              garch21st  garch21g garch21sg  garch22n  garch22t garch22st
## Akaike       -4.218946 -4.215698 -4.245349 -4.109503 -4.213945 -4.217999
## Bayes        -4.151871 -4.153783 -4.178275 -4.047588 -4.146871 -4.145765
## Shibata      -4.219322 -4.216019 -4.245725 -4.109824 -4.214321 -4.218435
## Hannan-Quinn -4.193375 -4.192094 -4.219778 -4.085899 -4.188374 -4.190462
##               garch22g garch22sg
## Akaike       -4.235907 -4.243533
## Bayes        -4.168833 -4.171299
## Shibata      -4.236283 -4.243969
## Hannan-Quinn -4.210336 -4.215995

A21

vni.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch11n.fit <- ugarchfit(spec = vni.garch11n.spec,vnindex$returnvni)
vni.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "std")
vni.garch11t.fit <- ugarchfit(spec = vni.garch11t.spec,vnindex$returnvni)
vni.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch11st.fit <- ugarchfit(spec = vni.garch11st.spec,vnindex$returnvni)
vni.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch11g.fit <- ugarchfit(spec = vni.garch11g.spec,vnindex$returnvni)
vni.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
vni.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch12n.fit <- ugarchfit(spec = vni.garch12n.spec,vnindex$returnvni)
vni.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "std")
vni.garch12t.fit <- ugarchfit(spec = vni.garch12t.spec,vnindex$returnvni)
vni.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch12st.fit <- ugarchfit(spec = vni.garch12st.spec,vnindex$returnvni)
vni.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch12g.fit <- ugarchfit(spec = vni.garch12g.spec,vnindex$returnvni)
vni.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch12sg.fit <- ugarchfit(spec = vni.garch12sg.spec,vnindex$returnvni)
vni.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch21n.fit <- ugarchfit(spec = vni.garch21n.spec,vnindex$returnvni)
vni.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "std")
vni.garch21t.fit <- ugarchfit(spec = vni.garch21t.spec,vnindex$returnvni)
vni.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch21st.fit <- ugarchfit(spec = vni.garch21st.spec,vnindex$returnvni)
vni.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch21g.fit <- ugarchfit(spec = vni.garch21g.spec,vnindex$returnvni)
vni.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch21sg.fit <- ugarchfit(spec = vni.garch21sg.spec,vnindex$returnvni)
vni.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch22n.fit <- ugarchfit(spec = vni.garch22n.spec,vnindex$returnvni)
vni.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "std")
vni.garch22t.fit <- ugarchfit(spec = vni.garch22t.spec,vnindex$returnvni)
vni.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch22st.fit <- ugarchfit(spec = vni.garch22st.spec,vnindex$returnvni)
vni.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch22g.fit <- ugarchfit(spec = vni.garch22g.spec,vnindex$returnvni)
vni.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch22sg.fit <- ugarchfit(spec = vni.garch22sg.spec,vnindex$returnvni)
vni.model.list <- list(garch11n = vni.garch11n.fit, garch11t = vni.garch11t.fit, garch11st = vni.garch11st.fit, garch11g = vni.garch11g.fit, garch11sg = vni.garch11sg.fit, garch12n = vni.garch12n.fit, garch12t = vni.garch12t.fit, garch12st = vni.garch12st.fit, garch12g = vni.garch12g.fit, garch12sg = vni.garch12sg.fit, garch21n = vni.garch21n.fit, garch21t = vni.garch21t.fit, garch21st = vni.garch21st.fit, garch21g = vni.garch21g.fit, garch21sg = vni.garch21sg.fit, garch22n = vni.garch22n.fit, garch22t = vni.garch22t.fit, garch22st = vni.garch22st.fit, garch22g = vni.garch22g.fit, garch22sg = vni.garch22sg.fit)

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

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

vni.info.mat
##               garch11n  garch11t garch11st  garch11g garch11sg  garch12n
## Akaike       -4.116200 -4.220559 -4.241160 -4.218935 -4.227224 -4.114445
## Bayes        -4.074924 -4.174123 -4.189565 -4.172499 -4.175628 -4.068009
## Shibata      -4.116344 -4.220741 -4.241384 -4.219116 -4.227448 -4.114626
## Hannan-Quinn -4.100465 -4.202857 -4.221490 -4.201232 -4.207554 -4.096742
##               garch12t garch12st  garch12g garch12sg  garch21n  garch21t
## Akaike       -4.220170 -4.224138 -4.217873 -4.225936 -4.113556 -4.216326
## Bayes        -4.168574 -4.167383 -4.166278 -4.169181 -4.061960 -4.159571
## Shibata      -4.220393 -4.224408 -4.218097 -4.226207 -4.113779 -4.216596
## Hannan-Quinn -4.200500 -4.202501 -4.198203 -4.204300 -4.093886 -4.194689
##              garch21st  garch21g garch21sg  garch22n  garch22t garch22st
## Akaike       -4.221017 -4.214735 -4.223053 -4.111426 -4.216064 -4.220072
## Bayes        -4.159103 -4.157980 -4.161139 -4.054671 -4.154150 -4.152998
## Shibata      -4.221338 -4.215005 -4.223375 -4.111696 -4.216386 -4.220449
## Hannan-Quinn -4.197414 -4.193099 -4.199450 -4.089789 -4.192461 -4.194502
##               garch22g garch22sg
## Akaike       -4.213632 -4.221677
## Bayes        -4.151718 -4.154603
## Shibata      -4.213953 -4.222053
## Hannan-Quinn -4.190029 -4.196106

A12

vni.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "norm")
vni.garch11n.fit <- ugarchfit(spec = vni.garch11n.spec,vnindex$returnvni)
vni.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "std")
vni.garch11t.fit <- ugarchfit(spec = vni.garch11t.spec,vnindex$returnvni)
vni.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sstd")
vni.garch11st.fit <- ugarchfit(spec = vni.garch11st.spec,vnindex$returnvni)
vni.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "ged")
vni.garch11g.fit <- ugarchfit(spec = vni.garch11g.spec,vnindex$returnvni)
vni.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sged")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
vni.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "norm")
vni.garch12n.fit <- ugarchfit(spec = vni.garch12n.spec,vnindex$returnvni)
vni.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "std")
vni.garch12t.fit <- ugarchfit(spec = vni.garch12t.spec,vnindex$returnvni)
vni.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sstd")
vni.garch12st.fit <- ugarchfit(spec = vni.garch12st.spec,vnindex$returnvni)
vni.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "ged")
vni.garch12g.fit <- ugarchfit(spec = vni.garch12g.spec,vnindex$returnvni)
vni.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sged")
vni.garch12sg.fit <- ugarchfit(spec = vni.garch12sg.spec,vnindex$returnvni)
vni.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "norm")
vni.garch21n.fit <- ugarchfit(spec = vni.garch21n.spec,vnindex$returnvni)
vni.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "std")
vni.garch21t.fit <- ugarchfit(spec = vni.garch21t.spec,vnindex$returnvni)
vni.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sstd")
vni.garch21st.fit <- ugarchfit(spec = vni.garch21st.spec,vnindex$returnvni)
vni.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "ged")
vni.garch21g.fit <- ugarchfit(spec = vni.garch21g.spec,vnindex$returnvni)
vni.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sged")
vni.garch21sg.fit <- ugarchfit(spec = vni.garch21sg.spec,vnindex$returnvni)
vni.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "norm")
vni.garch22n.fit <- ugarchfit(spec = vni.garch22n.spec,vnindex$returnvni)
vni.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "std")
vni.garch22t.fit <- ugarchfit(spec = vni.garch22t.spec,vnindex$returnvni)
vni.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sstd")
vni.garch22st.fit <- ugarchfit(spec = vni.garch22st.spec,vnindex$returnvni)
vni.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "ged")
vni.garch22g.fit <- ugarchfit(spec = vni.garch22g.spec,vnindex$returnvni)
vni.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 2), include.mean = TRUE), distribution.model = "sged")
vni.garch22sg.fit <- ugarchfit(spec = vni.garch22sg.spec,vnindex$returnvni)
vni.model.list <- list(garch11n = vni.garch11n.fit, garch11t = vni.garch11t.fit, garch11st = vni.garch11st.fit, garch11g = vni.garch11g.fit, garch11sg = vni.garch11sg.fit, garch12n = vni.garch12n.fit, garch12t = vni.garch12t.fit, garch12st = vni.garch12st.fit, garch12g = vni.garch12g.fit, garch12sg = vni.garch12sg.fit, garch21n = vni.garch21n.fit, garch21t = vni.garch21t.fit, garch21st = vni.garch21st.fit, garch21g = vni.garch21g.fit, garch21sg = vni.garch21sg.fit, garch22n = vni.garch22n.fit, garch22t = vni.garch22t.fit, garch22st = vni.garch22st.fit, garch22g = vni.garch22g.fit, garch22sg = vni.garch22sg.fit)

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

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

vni.info.mat
##               garch11n  garch11t garch11st  garch11g garch11sg  garch12n
## Akaike       -4.116395 -4.220470 -4.225252 -4.218756 -4.227149 -4.114617
## Bayes        -4.075119 -4.174034 -4.173657 -4.172320 -4.175554 -4.068181
## Shibata      -4.116539 -4.220652 -4.225476 -4.218938 -4.227373 -4.114799
## Hannan-Quinn -4.100659 -4.202768 -4.205582 -4.201054 -4.207480 -4.096914
##               garch12t garch12st  garch12g garch12sg  garch21n  garch21t
## Akaike       -4.220085 -4.224155 -4.217702 -4.225845 -4.113667 -4.216237
## Bayes        -4.168490 -4.167400 -4.166107 -4.169090 -4.062072 -4.159482
## Shibata      -4.220309 -4.224425 -4.217926 -4.226115 -4.113891 -4.216507
## Hannan-Quinn -4.200416 -4.202519 -4.198033 -4.204208 -4.093998 -4.194600
##              garch21st  garch21g garch21sg  garch22n  garch22t garch22st
## Akaike       -4.221052 -4.214570 -4.222976 -4.111537 -4.215982 -4.220103
## Bayes        -4.159137 -4.157815 -4.161061 -4.054782 -4.154067 -4.153029
## Shibata      -4.221373 -4.214840 -4.223297 -4.111808 -4.216303 -4.220480
## Hannan-Quinn -4.197448 -4.192933 -4.199372 -4.089901 -4.192378 -4.194533
##               garch22g garch22sg
## Akaike       -4.213454 -4.221585
## Bayes        -4.151540 -4.154511
## Shibata      -4.213775 -4.221961
## Hannan-Quinn -4.189850 -4.196014

A11

vni.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch11n.fit <- ugarchfit(spec = vni.garch11n.spec,vnindex$returnvni)
vni.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
vni.garch11t.fit <- ugarchfit(spec = vni.garch11t.spec,vnindex$returnvni)
vni.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch11st.fit <- ugarchfit(spec = vni.garch11st.spec,vnindex$returnvni)
vni.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch11g.fit <- ugarchfit(spec = vni.garch11g.spec,vnindex$returnvni)
vni.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
vni.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch12n.fit <- ugarchfit(spec = vni.garch12n.spec,vnindex$returnvni)
vni.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
vni.garch12t.fit <- ugarchfit(spec = vni.garch12t.spec,vnindex$returnvni)
vni.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch12st.fit <- ugarchfit(spec = vni.garch12st.spec,vnindex$returnvni)
vni.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch12g.fit <- ugarchfit(spec = vni.garch12g.spec,vnindex$returnvni)
vni.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch12sg.fit <- ugarchfit(spec = vni.garch12sg.spec,vnindex$returnvni)
vni.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch21n.fit <- ugarchfit(spec = vni.garch21n.spec,vnindex$returnvni)
vni.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
vni.garch21t.fit <- ugarchfit(spec = vni.garch21t.spec,vnindex$returnvni)
vni.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch21st.fit <- ugarchfit(spec = vni.garch21st.spec,vnindex$returnvni)
vni.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch21g.fit <- ugarchfit(spec = vni.garch21g.spec,vnindex$returnvni)
vni.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch21sg.fit <- ugarchfit(spec = vni.garch21sg.spec,vnindex$returnvni)
vni.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch22n.fit <- ugarchfit(spec = vni.garch22n.spec,vnindex$returnvni)
vni.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
vni.garch22t.fit <- ugarchfit(spec = vni.garch22t.spec,vnindex$returnvni)
vni.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch22st.fit <- ugarchfit(spec = vni.garch22st.spec,vnindex$returnvni)
vni.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch22g.fit <- ugarchfit(spec = vni.garch22g.spec,vnindex$returnvni)
vni.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch22sg.fit <- ugarchfit(spec = vni.garch22sg.spec,vnindex$returnvni)
vni.model.list <- list(garch11n = vni.garch11n.fit, garch11t = vni.garch11t.fit, garch11st = vni.garch11st.fit, garch11g = vni.garch11g.fit, garch11sg = vni.garch11sg.fit, garch12n = vni.garch12n.fit, garch12t = vni.garch12t.fit, garch12st = vni.garch12st.fit, garch12g = vni.garch12g.fit, garch12sg = vni.garch12sg.fit, garch21n = vni.garch21n.fit, garch21t = vni.garch21t.fit, garch21st = vni.garch21st.fit, garch21g = vni.garch21g.fit, garch21sg = vni.garch21sg.fit, garch22n = vni.garch22n.fit, garch22t = vni.garch22t.fit, garch22st = vni.garch22st.fit, garch22g = vni.garch22g.fit, garch22sg = vni.garch22sg.fit)

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

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

vni.info.mat
##               garch11n  garch11t garch11st  garch11g garch11sg  garch12n
## Akaike       -4.116119 -4.221336 -4.225523 -4.219997 -4.227591 -4.115109
## Bayes        -4.080003 -4.180059 -4.179087 -4.178721 -4.181155 -4.073833
## Shibata      -4.116230 -4.221479 -4.225705 -4.220141 -4.227772 -4.115253
## Hannan-Quinn -4.102351 -4.205600 -4.207821 -4.204262 -4.209888 -4.099374
##               garch12t garch12st  garch12g garch12sg  garch21n  garch21t
## Akaike       -4.221891 -4.225744 -4.219588 -4.227289 -4.114433 -4.218069
## Bayes        -4.175455 -4.174149 -4.173152 -4.175694 -4.067997 -4.166474
## Shibata      -4.222073 -4.225968 -4.219769 -4.227513 -4.114614 -4.218293
## Hannan-Quinn -4.204189 -4.206074 -4.201885 -4.207619 -4.096730 -4.198400
##              garch21st  garch21g garch21sg  garch22n  garch22t garch22st
## Akaike       -4.222637 -4.216504 -4.224459 -4.112303 -4.217775 -4.221682
## Bayes        -4.165882 -4.164909 -4.167704 -4.060707 -4.161020 -4.159768
## Shibata      -4.222907 -4.216728 -4.224729 -4.112527 -4.218045 -4.222003
## Hannan-Quinn -4.201000 -4.196835 -4.202822 -4.092633 -4.196138 -4.198079
##               garch22g garch22sg
## Akaike       -4.215336 -4.223034
## Bayes        -4.158581 -4.161119
## Shibata      -4.215606 -4.223355
## Hannan-Quinn -4.193699 -4.199430

A10

vni.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "norm")
vni.garch11n.fit <- ugarchfit(spec = vni.garch11n.spec,vnindex$returnvni)
vni.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "std")
vni.garch11t.fit <- ugarchfit(spec = vni.garch11t.spec,vnindex$returnvni)
vni.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sstd")
vni.garch11st.fit <- ugarchfit(spec = vni.garch11st.spec,vnindex$returnvni)
vni.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "ged")
vni.garch11g.fit <- ugarchfit(spec = vni.garch11g.spec,vnindex$returnvni)
vni.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sged")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
vni.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "norm")
vni.garch12n.fit <- ugarchfit(spec = vni.garch12n.spec,vnindex$returnvni)
vni.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "std")
vni.garch12t.fit <- ugarchfit(spec = vni.garch12t.spec,vnindex$returnvni)
vni.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sstd")
vni.garch12st.fit <- ugarchfit(spec = vni.garch12st.spec,vnindex$returnvni)
vni.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "ged")
vni.garch12g.fit <- ugarchfit(spec = vni.garch12g.spec,vnindex$returnvni)
vni.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sged")
vni.garch12sg.fit <- ugarchfit(spec = vni.garch12sg.spec,vnindex$returnvni)
vni.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "norm")
vni.garch21n.fit <- ugarchfit(spec = vni.garch21n.spec,vnindex$returnvni)
vni.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "std")
vni.garch21t.fit <- ugarchfit(spec = vni.garch21t.spec,vnindex$returnvni)
vni.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sstd")
vni.garch21st.fit <- ugarchfit(spec = vni.garch21st.spec,vnindex$returnvni)
vni.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "ged")
vni.garch21g.fit <- ugarchfit(spec = vni.garch21g.spec,vnindex$returnvni)
vni.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sged")
vni.garch21sg.fit <- ugarchfit(spec = vni.garch21sg.spec,vnindex$returnvni)
vni.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "norm")
vni.garch22n.fit <- ugarchfit(spec = vni.garch22n.spec,vnindex$returnvni)
vni.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "std")
vni.garch22t.fit <- ugarchfit(spec = vni.garch22t.spec,vnindex$returnvni)
vni.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sstd")
vni.garch22st.fit <- ugarchfit(spec = vni.garch22st.spec,vnindex$returnvni)
vni.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "ged")
vni.garch22g.fit <- ugarchfit(spec = vni.garch22g.spec,vnindex$returnvni)
vni.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(1, 0), include.mean = TRUE), distribution.model = "sged")
vni.garch22sg.fit <- ugarchfit(spec = vni.garch22sg.spec,vnindex$returnvni)
vni.model.list <- list(garch11n = vni.garch11n.fit, garch11t = vni.garch11t.fit, garch11st = vni.garch11st.fit, garch11g = vni.garch11g.fit, garch11sg = vni.garch11sg.fit, garch12n = vni.garch12n.fit, garch12t = vni.garch12t.fit, garch12st = vni.garch12st.fit, garch12g = vni.garch12g.fit, garch12sg = vni.garch12sg.fit, garch21n = vni.garch21n.fit, garch21t = vni.garch21t.fit, garch21st = vni.garch21st.fit, garch21g = vni.garch21g.fit, garch21sg = vni.garch21sg.fit, garch22n = vni.garch22n.fit, garch22t = vni.garch22t.fit, garch22st = vni.garch22st.fit, garch22g = vni.garch22g.fit, garch22sg = vni.garch22sg.fit)

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

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

vni.info.mat
##               garch11n  garch11t garch11st  garch11g garch11sg  garch12n
## Akaike       -4.118189 -4.223235 -4.227456 -4.220123 -4.228306 -4.117125
## Bayes        -4.087232 -4.187119 -4.186180 -4.184007 -4.187030 -4.081008
## Shibata      -4.118270 -4.223346 -4.227599 -4.220233 -4.228450 -4.117235
## Hannan-Quinn -4.106387 -4.209467 -4.211720 -4.206355 -4.212571 -4.103356
##               garch12t garch12st  garch12g garch12sg  garch21n  garch21t
## Akaike       -4.223728 -4.227622 -4.219532 -4.227842 -4.116277 -4.219981
## Bayes        -4.182452 -4.181186 -4.178256 -4.181406 -4.075000 -4.173545
## Shibata      -4.223872 -4.227803 -4.219676 -4.228023 -4.116420 -4.220162
## Hannan-Quinn -4.207993 -4.209919 -4.203797 -4.210139 -4.100541 -4.202278
##              garch21st  garch21g garch21sg  garch22n  garch22t garch22st
## Akaike       -4.224601 -4.216598 -4.225109 -4.114147 -4.219650 -4.223634
## Bayes        -4.173006 -4.170162 -4.173514 -4.067711 -4.168055 -4.166879
## Shibata      -4.224825 -4.216780 -4.225333 -4.114328 -4.219874 -4.223905
## Hannan-Quinn -4.204932 -4.198896 -4.205439 -4.096444 -4.199981 -4.201998
##               garch22g garch22sg
## Akaike       -4.215304 -4.223601
## Bayes        -4.163709 -4.166846
## Shibata      -4.215528 -4.223872
## Hannan-Quinn -4.195634 -4.201965

A01

vni.garch11n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch11n.fit <- ugarchfit(spec = vni.garch11n.spec,vnindex$returnvni)
vni.garch11t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "std")
vni.garch11t.fit <- ugarchfit(spec = vni.garch11t.spec,vnindex$returnvni)
vni.garch11st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch11st.fit <- ugarchfit(spec = vni.garch11st.spec,vnindex$returnvni)
vni.garch11g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch11g.fit <- ugarchfit(spec = vni.garch11g.spec,vnindex$returnvni)
vni.garch11sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
vni.garch12n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch12n.fit <- ugarchfit(spec = vni.garch12n.spec,vnindex$returnvni)
vni.garch12t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "std")
vni.garch12t.fit <- ugarchfit(spec = vni.garch12t.spec,vnindex$returnvni)
vni.garch12st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch12st.fit <- ugarchfit(spec = vni.garch12st.spec,vnindex$returnvni)
vni.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch12g.fit <- ugarchfit(spec = vni.garch12g.spec,vnindex$returnvni)
vni.garch12sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch12sg.fit <- ugarchfit(spec = vni.garch12sg.spec,vnindex$returnvni)
vni.garch21n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch21n.fit <- ugarchfit(spec = vni.garch21n.spec,vnindex$returnvni)
vni.garch21t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "std")
vni.garch21t.fit <- ugarchfit(spec = vni.garch21t.spec,vnindex$returnvni)
vni.garch21st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch21st.fit <- ugarchfit(spec = vni.garch21st.spec,vnindex$returnvni)
vni.garch21g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch21g.fit <- ugarchfit(spec = vni.garch21g.spec,vnindex$returnvni)
vni.garch21sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 1)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch21sg.fit <- ugarchfit(spec = vni.garch21sg.spec,vnindex$returnvni)
vni.garch22n.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "norm")
vni.garch22n.fit <- ugarchfit(spec = vni.garch22n.spec,vnindex$returnvni)
vni.garch22t.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "std")
vni.garch22t.fit <- ugarchfit(spec = vni.garch22t.spec,vnindex$returnvni)
vni.garch22st.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sstd")
vni.garch22st.fit <- ugarchfit(spec = vni.garch22st.spec,vnindex$returnvni)
vni.garch22g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "ged")
vni.garch22g.fit <- ugarchfit(spec = vni.garch22g.spec,vnindex$returnvni)
vni.garch22sg.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(2, 2)),
mean.model = list(armaOrder = c(0, 1), include.mean = TRUE), distribution.model = "sged")
vni.garch22sg.fit <- ugarchfit(spec = vni.garch22sg.spec,vnindex$returnvni)
vni.model.list <- list(garch11n = vni.garch11n.fit, garch11t = vni.garch11t.fit, garch11st = vni.garch11st.fit, garch11g = vni.garch11g.fit, garch11sg = vni.garch11sg.fit, garch12n = vni.garch12n.fit, garch12t = vni.garch12t.fit, garch12st = vni.garch12st.fit, garch12g = vni.garch12g.fit, garch12sg = vni.garch12sg.fit, garch21n = vni.garch21n.fit, garch21t = vni.garch21t.fit, garch21st = vni.garch21st.fit, garch21g = vni.garch21g.fit, garch21sg = vni.garch21sg.fit, garch22n = vni.garch22n.fit, garch22t = vni.garch22t.fit, garch22st = vni.garch22st.fit, garch22g = vni.garch22g.fit, garch22sg = vni.garch22sg.fit)

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

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

vni.info.mat
##               garch11n  garch11t garch11st  garch11g garch11sg  garch12n
## Akaike       -4.117839 -4.222075 -4.226630 -4.217465 -4.226981 -4.116747
## Bayes        -4.086882 -4.185958 -4.185353 -4.181349 -4.185705 -4.080630
## Shibata      -4.117920 -4.222185 -4.226773 -4.217575 -4.227125 -4.116857
## Hannan-Quinn -4.106037 -4.208306 -4.210894 -4.203697 -4.211246 -4.102978
##               garch12t garch12st  garch12g garch12sg  garch21n  garch21t
## Akaike       -4.222523 -4.226750 -4.216867 -4.226482 -4.115921 -4.218827
## Bayes        -4.181246 -4.180314 -4.175590 -4.180046 -4.074645 -4.172391
## Shibata      -4.222666 -4.226931 -4.217010 -4.226664 -4.116065 -4.219008
## Hannan-Quinn -4.206787 -4.209047 -4.201131 -4.208780 -4.100186 -4.201124
##              garch21st  garch21g garch21sg  garch22n  garch22t garch22st
## Akaike       -4.223798 -4.213974 -4.223849 -4.113791 -4.218465 -4.222807
## Bayes        -4.172203 -4.167538 -4.172254 -4.067355 -4.166870 -4.166052
## Shibata      -4.224022 -4.214156 -4.224073 -4.113973 -4.218689 -4.223077
## Hannan-Quinn -4.204128 -4.196272 -4.204180 -4.096089 -4.198795 -4.201170
##               garch22g garch22sg
## Akaike       -4.212619 -4.222231
## Bayes        -4.161024 -4.165476
## Shibata      -4.212843 -4.222501
## Hannan-Quinn -4.192950 -4.200594
cor.test(vnindex$returnvni, usdvnd$returnusdvnd)
## 
##  Pearson's product-moment correlation
## 
## data:  vnindex$returnvni and usdvnd$returnusdvnd
## t = -2.9819, df = 937, p-value = 0.002938
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.15994073 -0.03318682
## sample estimates:
##         cor 
## -0.09695689

MÔ HÌNH BIÊN DUYÊN PHÙ HỢP NHẤT CHO CHUỖI LỢI TỨC

vni.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")
vni.garch11sg.fit <- ugarchfit(spec = vni.garch11sg.spec,vnindex$returnvni)
usvn.garch12g.spec <- ugarchspec(variance.model = list(model = "gjrGARCH", garchOrder = c(1, 2)),
mean.model = list(armaOrder = c(2, 1), include.mean = TRUE), distribution.model = "ged")
usvn.garch12g.fit <- ugarchfit(spec = usvn.garch12g.spec,usdvnd$returnusdvnd)

THAM SỐ COPULA

## Trích xuất chuỗi phần dư v của chuỗi lợi suất VNI 
vni.res <- residuals(vni.garch11sg.fit)/sigma(vni.garch11sg.fit)
## Xuất tham số đưa vào bước sau
fitdist(distribution = "sged", vni.res, control = list())$pars 
##          mu       sigma        skew       shape 
## -0.02233411  1.00959056  1.08455409  1.09009950
v = pdist("sged",vni.res, mu = -0.02227578, sigma = 1.00979656, skew = 1.08493194, shape = 1.09009978)
## Trích xuất chuỗi phần dư v của chuỗi lợi suất VNI 
usdvnd.res <- residuals(usvn.garch12g.fit)/sigma(usvn.garch12g.fit)
## Xuất tham số đưa vào bước sau
fitdist(distribution = "ged", usdvnd.res, control = list())$pars 
##            mu         sigma         shape 
## -0.0001489938  1.2778369473  0.4495462625
u = pdist("ged",usdvnd.res, mu = -4.981423e-05, sigma = 1.097173e+00, shape = 4.348970e-01)

MÔ HÌNH COPULA

## ƯỚC LƯỢNG THAM SỐ MÔ HÌNH COPULA
BiCopSelect(u, v, familyset= 1:9, selectioncrit="AIC",indeptest = FALSE, level = 0.05) 
## Bivariate copula: Rotated Clayton 270 degrees (par = -0.08, tau = -0.04)
Stu <- BiCopEst(u, v, family = 33, method = "mle", se = T, max.df = 10)
summary(Stu)
## Family
## ------ 
## No:    33
## Name:  Rotated Clayton 270 degrees
## 
## Parameter(s)
## ------------
## par:  -0.08  (SE = 0.03)
## 
## Dependence measures
## -------------------
## Kendall's tau:    -0.04 (empirical = -0.05, p value = 0.02)
## Upper TD:         0 
## Lower TD:         0 
## 
## Fit statistics
## --------------
## logLik:  4.37 
## AIC:    -6.73 
## BIC:    -1.89