Page 1 of 1

Multivariate DCC-GARCH

Posted: Sun Mar 28, 2010 2:23 am
by casun
I'm trying to modify the following bivariate DCC-GARCH code (found here: http://forums.eviews.com/viewtopic.php? ... =dcc#p3568 so that I can use it in a multivariate case as there seems no code available for multivariate DCC-GARCH:

Code: Select all

'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
The problem is that I don't know how to modify the likelihood function.
dcc.append logl=(-1/2)*(2*log(2*pi)+log(detrRt)+(z1^2+z2^2-2*rho12*z1*z2)/detrRt)-10*pen

I guess matrices have to be used now but how to put that in the equation?

Re: Multivariate DCC-GARCH

Posted: Thu Aug 23, 2012 8:37 am
by saharnaz
Hi, this program is used for m-garch models. how can I change it to cDCC?
thank you very much