Hello,
I have a question regarding mgarch dcc coding. Below is the bivariate mgarch dcc code. There are 2 return series as variables. However, when I also put my return series as variables the garch model residual test indicates autocorrelation between residuals of garch models. So, I built an AR model and obtained error terms from it. I put those error series as variables in the following codes.
My error terms are resp1 and respm. So for me series y1=resp1 and series y2=respm. Is this correct for those codes? Because, in the below codes, we create standardized residuals and then create garch series. Is it okey that I use error terms of the autoregressive return series instead of returns series themselves and thus create garch series?
eq_y1.makeresids(s) z1
eq_y2.makeresids(s) z2
'extract garch series from univariate fit
eq_y1.makegarch() garch1
eq_y2.makegarch() garch2
Thank you very much,
CODES
'change path to program path
%path=@runpath
cd %path
'load workfile containing the return series
load nikkei_sp.WF1
'set sample range
sample s1 1/06/1995 12/25/2007
scalar pi=3.14159
'defining the return series in terms of y1 and y2
series y1=r_nikkei
series y2=r_sp
'fitting univariate GARCH(1,1) models to each of the two returns series
equation eq_y1.arch(1,1,m=1000,h) y1 c
equation eq_y2.arch(1,1,m=1000,h) y2 c
'extract the standardized residual series from the GARCH fit
eq_y1.makeresids(s) z1
eq_y2.makeresids(s) z2
'extract garch series from univariate fit
eq_y1.makegarch() garch1
eq_y2.makegarch() garch2
'Caculate sample variance of series z1, z2 and covariance of z1and z2 and correlation between z1 and z2
scalar var_z1=@var(z1)
scalar var_z2=@var(z2)
scalar cov_z1z2=@cov(z1,z2)
scalar corr12=@cor(z1,z2)
'defining the starting values for the var(z1) var(z2) and covariance (z1,z2)
series var_z1t=var_z1
series var_z2t=var_z2
series cov_z1tz2t=cov_z1z2
'declare the coefficient starting values
coef(2) T
T(1)=0.2
T(2)=0.7
' ...........................................................
' LOG LIKELIHOOD for correlation part
' set up the likelihood
' 1) open a new blank likelihood object and name it 'dcc'
' 2) specify the log likelihood model by append
' ...........................................................
logl dcc
dcc.append @logl logl
'specify var_z1t, var_z2t, cov_z1tz2t
dcc.append var_z1t=@nan(1-T(1)-T(2)+T(1)*(z1(-1)^2)+T(2)*var_z1t(-1),1)
dcc.append var_z2t=@nan(1-T(1)-T(2)+T(1)*(z2(-1)^2)+T(2)*var_z2t(-1),1)
dcc.append cov_z1tz2t=@nan((1-T(1)-T(2))*corr12+T(1)*z1(-1)*z2(-1)+T(2)*cov_z1tz2t(-1),1)
dcc.append pen=(var_z1t<0)+(var_z2t<0)
'specify rho12
dcc.append rho12=cov_z1tz2t/@sqrt(@abs(var_z1t*var_z2t))
'defining the determinant of correlation matrix and determinant of Dt
dcc.append detrRt=(1-(rho12^2))
dcc.append detrDt=@sqrt(garch1*garch2)
dcc.append pen=pen+(detrRt<0)
dcc.append detrRt=@abs(detrRt)
'define the log likelihood function
dcc.append logl=(-1/2)*(2*log(2*pi)+log(detrRt)+(z1^2+z2^2-2*rho12*z1*z2)/detrRt)-10*pen
'estimate the model
smpl s1
dcc.ml(showopts, m=500, c=1e-5)
'display output and graphs
show dcc.output
graph corr.line rho12
show corr
Regarding dcc coding
Moderators: EViews Gareth, EViews Moderator
Re: Regarding dcc coding
Yes, you can use residuals directly. In that case, however, the model becomes a three-stage procedure. Why don't you try dccgarch11 add-in?
Who is online
Users browsing this forum: No registered users and 2 guests
