पहली बार यहाँ एक सवाल पूछने, मैं अपने सर्वश्रेष्ठ प्रयास करेंगे स्पष्ट होना करने के लिए - लेकिन मुझे पता है कि अगर मैं और अधिक जानकारी प्रदान करना चाहिए! दूसरा, यह एक लंबा सवाल है ... उम्मीद है कि किसी के लिए हल करना आसान होगा;)! तो, "आर" का उपयोग कर मैं कुछ कागज पर आधारित मल्टीवेरिएट GARCH मॉडल मॉडलिंग कर रहा हूँ (Manera एट अल। 2012)।आर - मॉडलिंग बहुभिन्नरूपी GARCH (rugarch और ccgarch)
मैं लगातार सशर्त सहसंबंध (CCC) और मतलब समीकरणों में बाहरी regressors साथ गतिशील सशर्त सहसंबंध (डीसीसी) मॉडल मॉडल; "आर" के साथ सीसीसी/डीसीसी मॉडल के लिए पैकेज "rugarch" बाहरी regressors साथ univariate GARCH के लिए संस्करण 1.2-2, और "ccgarch" पैकेज (संस्करण 0.2.0-2) 3.0.1 संस्करण का उपयोग कर। (मैं वर्तमान में "rmgarch" पैकेज में देख रहा हूँ - लेकिन यह डीसीसी के लिए ही हो रहा है और मैं सीसीसी मॉडल भी जरूरत है।)
मैं अपने मॉडलों के मतलब समीकरणों में समस्या है। जिस पेपर में मैंने उपरोक्त उल्लेख किया है, सीसीसी और डीसीसी मॉडल के बीच औसत समीकरण के पैरामीटर अनुमान बदलते हैं! और मुझे नहीं पता कि मैं आर में कैसे करूँगा ... (वर्तमान में, Google पर और Tsay की पुस्तक "वित्तीय समय श्रृंखला का विश्लेषण" और मेरी गलती खोजने के लिए एंगल की पुस्तक "अनुमानित सहसंबंध" में देख रहा है)
क्या मैं से "मेरा मतलब समीकरणों सीसीसी और डीसीसी मॉडलों के बीच बदल सकता हूँ नहीं", यह निम्नलिखित मतलब है: मैं पैकेज rugarch के साथ मेरी एन = 5 समय श्रृंखला के लिए univariate GARCH निर्दिष्ट करें। फिर, मैं गर्च (ARCH + GARCH शर्तों) के अनुमान पैरामीटर का उपयोग करता हूं और सीसीसी और डीसीसी कार्यों "eccc.sim()" और "dcc.sim()" दोनों के लिए उनका उपयोग करता हूं। फिर, eccc.estimation() और dcc.estimation() फ़ंक्शंस से, मैं भिन्नता समीकरणों के साथ-साथ सहसंबंध मैट्रिक्स के अनुमानों को पुनर्प्राप्त कर सकता हूं। लेकिन औसत समीकरण के लिए नहीं।
मैं यूनिवर्सेट मॉडल और सीसीसी मॉडल के लिए आर-कोड (पुनरुत्पादित और मेरा मूल एक) पोस्ट करता हूं। मेरी पोस्ट पढ़ने के लिए पहले से ही धन्यवाद !!!!!
नोट: नीचे दिए गए कोड में, "data.repl" मंद 843x22 (9 दैनिक कमोडिटी रिटर्न श्रृंखला और स्पष्टीकरण चर श्रृंखला) का "चिड़ियाघर" ऑब्जेक्ट है। बहुविकल्पीय गर्च केवल 5 श्रृंखला के लिए है।
प्रतिलिपि प्रस्तुत करने योग्य कोड:
# libraries:
library(rugarch)
library(ccgarch)
library(quantmod)
# Creating fake data:
dataRegr <- matrix(rep(rnorm(3149, 11, 1),1), ncol=1, nrow=3149)
dataFuelsLag1 <- matrix(rep(rnorm(3149, 24, 8),2), ncol=2, nrow=3149)
#S&P 500 via quantmod and Yahoo Finance
T0 <- "2000-06-23"
T1 <- "2012-12-31"
getSymbols("^GSPC", src="yahoo", from=T0, to=T1)
sp500.close <- GSPC[,"GSPC.Close"],
getSymbols("UBS", src="yahoo", from=T0, to=T1)
ubs.close <- UBS[,"UBS.Close"]
dataReplic <- merge(sp500.close, ubs.close, all=TRUE)
dataReplic[which(is.na(dataReplic[,2])),2] <- 0 #replace NA
### (G)ARCH modelling ###
#########################
# External regressors: macrovariables and all fuels+biofuel Working's T index
ext.regr.ext <- dataRegr
regre.fuels <- cbind(dataFuelsLag1, dataRegr)
### spec of GARCH(1,1) spec with AR(1) ###
garch11.fuels <- as.list(1:2)
for(i in 1:2){
garch11.fuels[[i]] <- ugarchspec(mean.model = list(armaOrder=c(1,0),
external.regressors = as.matrix(regre.fuels[,-i])))
}
### fit of GARCH(1,1) AR(1) ###
garch11.fuels.fit <- as.list(1:2)
for(i in 1:2){
garch11.fuels.fit[[i]] <- ugarchfit(garch11.fuels[[i]], dataReplic[,i])
}
##################################################################
#### CCC fuels: with external regression in the mean eqaution ####
##################################################################
nObs <- length(data.repl[-1,1])
coef.unlist <- sapply(garch11.fuels.fit, coef)
cccFuels.a <- rep(0.1, 2)
cccFuels.A <- diag(coef.unlist[6,])
cccFuels.B <- diag(coef.unlist[7, ])
cccFuels.R <- corr.test(data.repl[,fuels.ind], data.repl[,fuels.ind])$r
# model=extended (Jeantheau (1998))
ccc.fuels.sim <- eccc.sim(nobs = nObs, a=cccFuels.a, A=cccFuels.A,
B=cccFuels.B, R=cccFuels.R, model="extended")
ccc.fuels.eps <- ccc.fuels.sim$eps
ccc.fuels.est <- eccc.estimation(a=cccFuels.a, A=cccFuels.A,
B=cccFuels.B, R=cccFuels.R,
dvar=ccc.fuels.eps, model="extended")
ccc.fuels.condCorr <- round(corr.test(ccc.fuels.est$std.resid,
ccc.fuels.est$std.resid)$r,digits=3)
मेरे मूल कोड:
### (G)ARCH modelling ###
#########################
# External regressors: macrovariables and all fuels+biofuel Working's T index
ext.regr.ext <- as.matrix(data.repl[-1,c(10:13, 16, 19:22)])
regre.fuels <- cbind(fuel.lag1, ext.regr.ext) #fuel.lag1 is the pre-lagged series
### spec of GARCH(1,1) spec with AR(1) ###
garch11.fuels <- as.list(1:5)
for(i in 1:5){
garch11.fuels[[i]] <- ugarchspec(mean.model = list(armaOrder=c(1,0),
external.regressors = as.matrix(regre.fuels[,-i])))
}# regre.fuels[,-i] => "-i" because I model an AR(1) for each mean equation
### fit of GARCH(1,1) AR(1) ###
garch11.fuels.fit <- as.list(1:5)
for(i in 1:5){
j <- i
if(j==5){j <- 7} #because 5th "fuels" is actually column #7 in data.repl
garch11.fuels.fit[[i]] <- ugarchfit(garch11.fuels[[i]], as.matrix(data.repl[-1,j])))
}
#fuelsLag1.names <- paste(cmdty.names[fuels.ind], "(-1)")
fuelsLag1.names <- cmdty.names[fuels.ind]
rowNames.ext <- c("Constant", fuelsLag1.names, "Working's T Gasoline", "Working's T Heating Oil",
"Working's T Natural Gas", "Working's T Crude Oil",
"Working's T Soybean Oil", "Junk Bond", "T-bill",
"SP500", "Exch.Rate")
ic.n <- c("Akaike", "Bayes")
garch11.ext.univSpec <- univ.spec(garch11.fuels.fit, ols.fit.ext, rowNames.ext,
rowNum=c(1:15), colNames=cmdty.names[fuels.ind],
ccc=TRUE)
##################################################################
#### CCC fuels: with external regression in the mean eqaution ####
##################################################################
# From my GARCH(1,1)-AR(1) model, I extract ARCH and GARCH
# in order to model a CCC GARCH model:
nObs <- length(data.repl[-1,1])
coef.unlist <- sapply(garch11.fuels.fit, coef)
cccFuels.a <- rep(0.1, length(fuels.ind))
cccFuels.A <- diag(coef.unlist[17,])
cccFuels.B <- diag(coef.unlist[18, ])
#based on Engle(2009) book, page 31:
cccFuels.R <- corr.test(data.repl[,fuels.ind], data.repl[,fuels.ind])$r
# model=extended (Jeantheau (1998))
# "allow the squared errors and variances of the series to affect
# the dynamics of the individual conditional variances
ccc.fuels.sim <- eccc.sim(nobs = nObs, a=cccFuels.a, A=cccFuels.A,
B=cccFuels.B, R=cccFuels.R, model="extended")
ccc.fuels.eps <- ccc.fuels.sim$eps
ccc.fuels.est <- eccc.estimation(a=cccFuels.a, A=cccFuels.A,
B=cccFuels.B, R=cccFuels.R,
dvar=ccc.fuels.eps, model="extended")
ccc.fuels.condCorr <- round(corr.test(ccc.fuels.est$std.resid,
ccc.fuels.est$std.resid)$r,digits=3)
colnames(ccc.fuels.condCorr) <- cmdty.names[fuels.ind]
rownames(ccc.fuels.condCorr) <- cmdty.names[fuels.ind]
lowerTri(ccc.fuels.condCorr, rep=NA)
उत्तर के लिए धन्यवाद! मैं वास्तव में इसके बारे में जानता हूँ। लेकिन दुर्भाग्यवश मुझे सीसीसी मॉडल की आवश्यकता होगी जिसमें शामिल नहीं है (कम से कम, मैंने जो मदद फ़ाइल में देखा है, आरएमगर्च पैकेज का विगनेट)। – cmembrez
मैं बस सीसीसी मॉडल और डीसीसी मॉडल के लिए rmgarch के लिए ccgarch पैकेज का प्रयोग करेंगे। आपके सहयोग के लिए धन्यवाद – cmembrez