1.10.1 Estimation of ARCH and GARCH ModelsFrom 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 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, For example, this calculates the logarithm of the likelihood function for GARCH series z given in Example 10.3. 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]] 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. This gives the matrix X defined above. 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. This gives the logarithm of the likelihood function of the AR-GARCH series data. Note that the difference between this value and that for the series z arises because here we drop the first 2 points of the series. Out[10]= | |
Here we include {y-1, y0}={0, 0}, and the likelihood is calculated for the series of length N. Out[11]= | |
You can, of course, also obtain the log likelihood directly. 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. This gives the maximum likelihood estimate of the GARCH parameters. Note that two initial values are required for each parameter in the search. The result depends in general on the presample values. The default presample values are used here. Out[13]= | |
Using FindMinimum we can easily incorporate the constraints imposed on the parameters. For example, in the following, we impose the constraints, , . This generates an ARCH series with 1=0.6, 2=2/31, 3=1/31. The constraints are put in explicitly and there are only two parameters to estimate. 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. Note that the result 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. 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. Comparing with the above result model1, we see that different starting parameter values can give rise to different estimated model parameters. Note that 1<0 in this estimate. Out[17]= | |
This shows that model2 is not a global maximum. Out[18]= | |
Here the presample values are set to zero through the option PresampleValue. Since the likelihood function depends on the presample values, so does its maximum value in general. 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]] 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. This generates the AR(2) time series with the given GARCH disturbances. Note that the last entry {0, 0} contains the initial values of y, {y-1, y0}. Note that the corresponding root mean square error is included in the second part of the output. 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. When we change the initial parameter values, the result also changes. A convergent result can be obtained by iteration. Out[22]= | |
However, the presample values are not fixed when using FindMinimum. It changes during the search for optimal parameters. Out[23]= | |
|