Legacy Documentation

Time Series (2011)

This is documentation for an obsolete product.
Current products and services

Previous section-----Next section

1.10.1 Estimation of ARCH and GARCH Models

From the definition of the ARCH(q) model, it is clear that the correlation E(ZtZt+k) (k≠0) is zero. However, it is easy to see that follows an AR(q) process. Similarly, if {Zt} is a GARCH(p, q) process, follows an ARMA(s, p) process, where s="Max"(p, q). This can be used to help identify the orders of ARCH or GARCH models.
The maximum likelihood method is often used to estimate the parameters of an ARCH or GARCH model. The logarithm of the Gaussian likelihood function is given by (apart from an additive constant)
where zt(=yt-mt) conditional on It-1 is normally distributed with zero mean and variance ht. The function
LogLikelihood[z, model]
gives the logarithm of the likelihood (10.5), where model can be ARCHModel or GARCHModel and z={z1, z2, ..., zN}. Note that the presample values of and {h-p+1, ..., h-1, h0} are assumed to be equal to a fixed value sigma2, and it can be specified using the option PresampleValue -> sigma2. The default setting for PresampleValue is Automatic, which corresponds to using the sample equivalence of 2,
In[8]:=
Out[8]=
To calculate the likelihood for series with nonzero conditional mean (mt≠0), we can subtract the mean from the data before using the function LogLikelihood, or we can use
LogLikelihood[data, model, X, blist]
where X is the matrix in the regression model (10.4) and blist is the list of parameters b. If the regression model is an AR model, we can use
LogLikelihood[data, model, ARModel[philist]]
or
LogLikelihood[data, model, ARModel[philist], ]
when the AR model has nonzero mean mu. For example, when "data"={yt} is an AR-ARCH (or AR-GARCH) series, the conditional mean vector is X{1, ..., p}, where the matrix and . The following program allows us to get the matrix X given the values y={yt} and p.
In[9]:=
Note that if the input y in getX is {y1, y2, ..., yN}, we get . So we should drop the first p points from the series to get for t=p+1, ..., N. (That is, the series now has length N-p.) On the other hand, if we want to keep all N data points in our series, we need to prepend p initial points {y-p+1, ..., y-1, y0} to y before getting the matrix X. The following example shows the difference.
In[10]:=
Out[10]=
In[11]:=
Out[11]=
In[12]:=
Out[12]=
Once the likelihood function is calculated, we can in principle estimate the model parameters by maximizing the likelihood function (or minimizing its negative). This can be accomplished in some cases by using the built-in function FindMinimum. For example, to find the GARCH parameters from the series z, we can do the following.
In[13]:=
Out[13]=
Using FindMinimum we can easily incorporate the constraints imposed on the parameters. For example, in the following, we impose the constraints, , .
In[14]:=
In[15]:=
Out[15]=
However, when the number of parameters is large, the function FindMinimum can either be very slow or can go into parameter regions where the LogLikelihood function is complex. In these cases, the function ConditionalMLEstimate should be used to estimate ARCH or GARCH parameters.
ConditionalMLEstimate[data, model]
fits the specified model to data using the maximum likelihood method, where model can be ARCHModel or GARCHModel. The presample values of z2 and h are fixed (or conditioned upon) and the BHHH algorithm (see Berndt et al. (1974)) is used in the numerical search for the maximum of the likelihood function. The starting values of the parameters are given inside model. Note that the output of ConditionalMLEstimate is a list containing two parts. The first part is the estimated model, and the second is the root mean square errors given by the last iteration of the BHHH algorithm.
In[16]:=
Out[16]=
When estimating the parameters of the ARCH and GARCH models using ConditionalMLEstimate, we must be cautious about the following points. First, the maximum can depend on the initial conditions, and there is no guarantee that the maximum obtained using a particular set of initial parameter values is the global maximum. Second, since the estimate is conditioned on the presample values, the result can depend on the presample values. The following examples illustrate these dependencies.
In[17]:=
Out[17]=
In[18]:=
Out[18]=
In[19]:=
Out[19]=
To estimate an ARCH-regression (or GARCH-regression) model (10.4), we can use
ConditionalMLEstimate[data, model, X, blist],
where model is either ARCHModel or GARCHModel, X is the matrix in the regression model (10.4), and blist is the list of initial parameter values "b". If the regression model is an AR model, we can also use
ConditionalMLEstimate[data, model, ARModel[philist]]
or
ConditionalMLEstimate[data, model, ARModel[philist], ]
when the AR model has a nonzero mean . The following example illustrates how to estimate the parameters of an AR-GARCH model using ConditionalMLEstimate.
In[20]:=
In[21]:=
Out[21]=
When using ConditionalMLEstimate to estimate the model parameters, the presample values are fixed and do not change during the search for the maximum. When using the default presample value given by (10.6), the presample values can be a function of initial parameters. Therefore, different initial parameter values can affect the result of maximization. We can iterate the maximization process to get a consistent result.
In[22]:=
Out[22]=
However, the presample values are not fixed when using FindMinimum. It changes during the search for optimal parameters.
In[23]:=
Out[23]=