Page 1 of 1

DCC GARCH correlations

Posted: Mon Nov 28, 2011 8:16 am
by alanharper
Hi,

I'm working on a DCC GARCH model which I want to estimate using Engle (2002) two-step procedure. First, I successfully extract the coefficients (which make perfect sense). Then, I run into difficulties when trying to maximize the matrix Q_t. Here is the code I use.

Code: Select all

*Correlation
do i=1,nSeries
	set z(i) = z(i)/sqrt(h(i)) ;*standardized residuals
end do i
*
decl symm[series] r(nSeries,nSeries)
decl symm[series] q(nSeries,nSeries)
decl symm qMat(nSeries,nSeries) qMat1(nSeries,nSeries)
decl symm rMat(nSeries,nSeries) zMat1(nSeries,nSeries)
decl frml[symm] qf
*
nonlin(parmset=corrParms) alpha_c beta_c
*
*Define the Q function
frml qf = (zMat1 = %outerxx(%xt(z,t-1))-rMat), $
	     (qMat1 = %xt(q,t-1)-rMat), $
		 rMat + alpha_c*zMat1 + beta_c*qMat1
*
*Variance Covariance matrix std. residuals initialize values
VCV(MATRIX=rMat)
	#z
*
*Fill in the rMat matrix
do i=1,nSeries
	do j=1,i
		set q(i,j) = rMat(i,j)
	end do j
end do i
*
* Define correlation part of the log likelihood
FRML CLOGL = qMat = qf(t), zVec = %xt(z,t), %pt(q,t,qMat),$ ;*Fill in qmat with q's, set up zVec
					%pt(r,t,%mqform(qMat,inv(%diag(%sqrt(%xdiag(qMat)))))),$  ;*max and fill r every step
					qMat = %xt(r,t),$ 
					%logdensity(qMat,zVec)
*
compute alpha_c = 0.10, beta_c = 0.80
*
maximize(parmset=corrParms,method=simplex,ITERS=10) CLOGL nbeg+3 nend
maximize(parmset=corrParms,method=bfgs,ITERS=200) CLOGL nbeg+3 nend
I ran into complications when trying to estimate the time-varying var-covar matrix H_t. I get the following error.
MAT14. Non-invertible Matrix. Using Generalized Inverse for SYMMETRIC

What could cause this non-invertibility? I don't see why it does not try to maximize at least for the first 10 iterations.

Thank you,
Alan

Re: DCC GARCH correlations

Posted: Tue Nov 29, 2011 1:22 pm
by moderator
Addressed via email.