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)
ARMA(2,2) – GJR GARCH (1,1) – Skew Ged
PP GED ĐỐI XỨNG
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)
usdvnd <- read_excel("D:/MHNN/usdvnddata.xlsx", sheet= 1)
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(usdvnd$returnusdvnd)
ARMA(2,1) – GJR GARCH (1,2) – Ged
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)
vni.res <- residuals(vni.garch11sg.fit)/sigma(vni.garch11sg.fit)
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)
usvn.res <- residuals(usvn.garch12g.fit)/sigma(usvn.garch12g.fit)
fitdist(distribution = "ged", usvn.res, control = list())$pars
## mu sigma shape
## -0.0001489938 1.2778369473 0.4495462625
u = pdist("ged",usvn.res, mu = -4.981423e-05 , sigma = 1.097173e+00, shape = 4.348970e-01 )
### ƯỚ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)
plot(u,v)