Create GARCH(1, 2) model in Matlab

529 views Asked by At

I am attempting to make a GARCH(1, 2) model in MATLAB for simple comparison to a GARCH(1, 1), GARCH(2, 2), etc.

When I run the code below, it spits out a GARCH(1, 1) model rather than a GARCH(1, 2) model. Is a GARCH(1, 2) model not possible?

model = garch(1, 2); % (GARCH, ARCH)
[estMdl,EstParamCov1,logL] = estimate(model, logReturns);
condVar = infer(estMdl, logReturns);

Printout:

GARCH(1,1) Conditional Variance Model:
----------------------------------------    
Conditional Probability Distribution: Gaussian

                              Standard          t     
 Parameter       Value          Error       Statistic 
-----------   -----------   ------------   -----------
 Constant    1.17529e-06    4.7734e-07        2.46217
 GARCH{1}       0.704782     0.0317644        22.1878
  ARCH{1}       0.188829     0.0268778        7.02546
1

There are 1 answers

0
Phil Goddard On

The optimizer that performs the model fit removes terms that are (considered to be) identically zero. There's a comment in the code to this effect:

%   o The coefficients GARCH and ARCH are each associated with an
%     underlying lag operator polynomial and subject to a near-zero 
%     tolerance exclusion test. That is, each coefficient is compared to 
%     the default zero tolerance 1e-12, and is included in the model only 
%     if the magnitude is greater than 1e-12; if the coefficient magnitude 
%     is less than or equal to 1e-12, then it is sufficiently close to zero 
%     and excluded from the model. See LagOp for additional details.