Panel GARCH? (Cermeno and Grier, 2006)

Discussions of ARCH, GARCH, and related models

Panel GARCH? (Cermeno and Grier, 2006)

Postby ksvirydzenka » Mon Jun 07, 2010 10:06 am

Hello,
Does anyone now how to estimate a Panel GARCH ala Cermeno and Grier (2006) in RATS? It is similar to a DVECH model, except you impose common dynamics in variance and covariance equations:

σ{i,t}² =α{i}+δσ{i,t-1}²+γu{i,t-1}² for i=1,...N
σ{ij,t}² =η{ij}+λσ{ij,t-1}+ρu{i,t-1}u{j,t-1} for i≠j

This is useful for large panels of stock returns (N equal to 40, for example) where you want to study common effect of an exogenous variable on variances and which are impossible to estimate without such restrictions due to the number of parameters.

Any help or suggestions much appreciated!
Thanks,
Katya

Full reference: Cermeno, R., Grier, K. 2006. "Conditional heteroskedasticity and cross-sectional dependence in panel data: an empirical study of inflation uncertainty in the G-7 countries." In: B. Baltagi, Editor, Panel Data Econometrics: Theoretical Contributions and Empirical Applications, Springer Publishing, New York (2006), pp. 259--278.
ksvirydzenka
 
Posts: 1
Joined: Sat Jun 05, 2010 6:50 am

Re: Panel GARCH? (Cermeno and Grier, 2006)

Postby TomDoan » Mon Jun 07, 2010 3:56 pm

This is based upon the standard GARCHMV.PRG example. It does just three series, but will generalize to much larger numbers. This uses the standard DVEC code, but adds a START function for MAXIMIZE which creates the "A" and "B" matrices using the four free parameters.

Code: Select all
all 6237
open data g10xrate.xls
data(format=xls,org=columns) / usxjpn usxfra usxsui
*
set xjpn = 100.0*log(usxjpn/usxjpn{1})
set xfra = 100.0*log(usxfra/usxfra{1})
set xsui = 100.0*log(usxsui/usxsui{1})
*
* Estimation using MAXIMIZE
* The initial few lines of this set the estimation range, which needs to
* be done explicitly, and the number of variables. Then, vectors for the
* dependent variables, residuals and residuals formulas are set up. The
* SET instructions copy the dependent variables over into the slots in
* the vector of series.
*
compute gstart=2,gend=6237
compute n=3
dec vect[series] y(n) u(n)
dec vect[frml] resid(n)
set y(1) = xjpn
set y(2) = xfra
set y(3) = xsui
*
* This is specific to a mean-only model. It sets up the formulas (the &i
* are needed in the formula definitions when the FRML is defined in a
* loop), and estimates them using NLSYSTEM. This both initializes the
* mean parameters, and computes the unconditional covariance matrix. If
* you want more general mean equations, the simplest way to do that
* would be to define each FRML separately.
*
dec vect b(n)
nonlin(parmset=meanparms) b
do i=1,n
   frml resid(i) = (y(&i)-b(&i))
end do i
nlsystem(parmset=meanparms,resids=u) gstart gend resid
compute rr=%sigma
*
* The paths of the covariance matrices and uu' are saved in the
* SERIES[SYMM] names H and UU. UX and HX are used to pull in residuals
* and H matrices.
*
declare series[symm] h uu
*
* ux is used when extracting a u vector
*
declare symm hx(n,n)
declare vect ux(n)
*
* These are used to initialize pre-sample variances.
*
gset h  * gend = rr
gset uu * gend = rr
*
* This is a standard (normal) log likelihood formula for any
* multivariate GARCH model. The difference among these will be in the
* definitions of HF and RESID. The function %XT pulls information out of
* a matrix of SERIES.
*
declare frml[symm] hf
*
frml logl = $
    hx = hf(t) , $
    %do(i,1,n,u(i)=resid(i)) , $
    ux = %xt(u,t), $
    h(t)=hx, uu(t)=%outerxx(ux), $
    %logdensity(hx,ux)
*****************************************************
*
* Panel GARCH - DVECH with restrictions
*
dec symm vcs(n,n)
dec real delta lambda gamma rho
dec symm vbs(n,n) vas(n,n)
*
compute vcs=rr*.1,delta=lambda=.8,gamma=rho=.1
nonlin(parmset=garchparms) vcs delta lambda gamma rho
frml hf = vcs+vbs.*h{1}+vas.*uu{1}
*
* Call once during START option to fill in the VAS and VBS arrays
*
function PGARCHInit
local integer i j
ewise vbs(i,j)=%if(i==j,delta,lambda)
ewise vas(i,j)=%if(i==j,gamma,rho)
end
*
maximize(start=PGARCHInit(),parmset=meanparms+garchparms,pmethod=simplex,piters=10,method=bfgs,iters=400) logl gstart gend
TomDoan
 
Posts: 2720
Joined: Wed Nov 01, 2006 5:36 pm

Re: Panel GARCH? (Cermeno and Grier, 2006)

Postby lboecmjh2 » Thu Oct 20, 2011 2:32 am

I`m interested in a GARCH-in-mean effect being incorporated into this code. Would this be straightforward?

MJH.
lboecmjh2
 
Posts: 3
Joined: Wed Nov 08, 2006 8:21 pm
Location: New Zealand

Re: Panel GARCH? (Cermeno and Grier, 2006)

Postby TomDoan » Thu Oct 20, 2011 9:18 am

lboecmjh2 wrote:I`m interested in a GARCH-in-mean effect being incorporated into this code. Would this be straightforward?

MJH.


Yes. The declaration of "H" would need to be put higher, since you would need it for using H in the definition of resid. The adjustment of adding an M effect is no different than it would be for a standard multivariate GARCH model.
TomDoan
 
Posts: 2720
Joined: Wed Nov 01, 2006 5:36 pm


Return to ARCH and GARCH Models

Who is online

Users browsing this forum: No registered users and 2 guests