[R-SIG-Finance] dcc simulation
Sultan Islam
sultanislam12 at gmail.com
Tue May 1 13:42:08 CEST 2018
Hi,
I have used R rmgarch package to implement EGARCH ADCC model from which I
can extract conditional covariance matrix. Now I would like to introduce
positive and/or negative shocks to see the asymmetric response of
covariance. I have come to know that impulse response function (IRF) or
volatility IRF is not compatible for any asymmetric models, therefore, the
only way to introduce shocks into the ADCC model can be through simulation
given the parameters.
For the purpose of introducing shocks and simulating the model, I intend to
use dccsim function for simulating the model given the shocks in preZ
(standardized residuals specified by the user) argument. I am not sure
whether this dccsim function actually does what I intend to do. Therefore,
I would like to have your helpful suggestion regarding the use of dccsim
function in this purpose.
The simulation code what I describe above is as follows:
# first specify univariate egarch model
uspec<-ugarchspec(variance.model=list(model="eGARCH",garchOrder=c(1,1)),distribution.model="norm",mean.model=list(armaOrder=c(0,0),include.mean=F))
model=multispec(replicate(2,uspec)) # replicate for two series
# specify ADCC model
mvspec=dccspec(model,dccOrder = c(1,1),model = "aDCC",distribution =
"mvnorm")
# cluster
cl= makePSOCKcluster(2)
multf = multifit(model, Data, cluster = cl)
fitADCC=dccfit(mvspec,data = Data, fit = multf, cluster = cl)
ADCC<-print(fitADCC)
stopCluster(cl) # stop cluster
# store covariance matrix
COV<-matrix(rcov(fitADCC)[1,2,]) # COV contains 2345 obs
# simulate the model
# given positive shocks in preZ
sim<-dccsim(ADCC, n.sim =2345,n.start =100 , m.sim = 1, startMethod =
"unconditional",preZ = 0.7131)
# extract covariance
sim_cov<-as.matrix(rcov(sim)[1,2,])
# # to specify negative shocks I put a minus sign before 0.7131 in preZ
sim1<-dccsim(ADCC, n.sim =2345,n.start =100 , m.sim = 1, startMethod =
"unconditional",preZ = - 0.7131)
# extract covariance
sim1_cov<-as.matrix(rcov(sim)[1,2,])
Please feel free to reply that this approach is correct to proceed. Thanks.
Best regards,
sultan
[[alternative HTML version deleted]]
More information about the R-SIG-Finance
mailing list