Using gret l for Principles of Econometrics, 4th Edition
Threshold ARCH
Threshold ARCH (TARCH) can also be estimated in gretl, though it requires a little programming; there aren’t any pull-down menus for this estimator. Instead, we’ll introduce gretl’s powerful mle command that allows user defined (log) likelihood functions to be maximized.
The threshold ARCH model replaces the variance equation (14.3) with
ht = 5 + aief-! + Ydi-ief-! + Aht-i
The model’s parameters are estimated by finding the values that maximize its likelihood. Maximum likelihood estimators are discussed in appendix C of Hill et al. (2011).
Gretl provides a fairly easy way to estimate via maximum likelihood that can be used for a wide range of estimation problems (see chapter 16 for other examples). To use gretl’s mle command, you must specify the log-likelihood function that is to be maximized. Any parameters contained in the function must be given reasonable starting values for the routine to work properly. Parameters can be declared and given starting values (using the scalar command).
Numerical optimization routines use the partial derivatives of the objective function to iteratively find the minimum or maximum of the function. If you want, you can specify the analytical derivatives of the log-likelihood function with respect to each of the parameters in gretl; if analytical derivatives are not supplied, gretl tries to compute a numerical approximation. The actual results you obtain will depend on many things, including whether analytical derivatives are used and the starting values.
For the threshold GARCH model, open a new script file and type in the program that appears in Figure 14.7.
Lines 3-7 of the script give starting values for the model’s parameters. This is essential and picking good starting values increases the chances of success. You want to start the numerical optimization at a feasible point. In other words, you cannot start the model with a negative variance.
The second part of the script starting on line 9 contains the the algebraic expression of the log-likelihood function. Line 9 ll = -0.5*(log(h) + (e"2)/h) is what is called the kernel of the normal probability density function. Recall that the errors of the ARCH model are assumed to be normally distributed and this is reflected in the kernel.
Test for ARCH of order 1
coefficient std. error t-ratio p-value
alpha(0) 0.908262 0.124401 7.301 1.14Є-012 ***
alpha(1) 0.353071 0.0419848 8.410 4.39e-016 ***
Null hypothesis: no ARCH effect is present Test statistic: LM = 62.1595
with p-value = P(Chi-square(1) > 62.1595) = 3.16735e-015
Figure 14.5: ARCH test results
Next, we have to specify an initial guess for the variances of the model, and these are set to the empirical variance of the series using var(r). Then, the errors are generated, squared, and the threshold term is created using series e2m = e2 * (e<0); the expression (e<0) takes the value of 1 for negative errors, e, and is zero otherwise. Then in line 14, the heteroskedastic function ht is specified. The parameters of the model are given at the end using the params statement. This is required since we are going to let gretl try to maximize this function using numerical derivatives. The mle loop is ended with end mle. The output appears in Figure 14.8. The coefficient estimates are very close to those printed in POE4, and the standard errors and corresponding t-ratios are fairly similar as well. It is not unusual for estimates produced by different software to produce this kind of variation when estimating nonlinear models numerically. Different pieces of software that no doubt use different algorithms were used to numerically maximize the log-likelihood function. What is amazing here is that gretl does such a fine job without having to specify the analytic derivatives of the log-likelihood. Very impressive.
Gretl offers a new set of functions that estimate various kinds of GARCH models. Choose Models^Time-series^GARCH variants from the pull-down menu to reveal the following dialog box:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
open "c:Program FilesgretldatapoeBYD. gdt
scalar mu = 0.5 scalar omega = .5 scalar alpha = 0.4 scalar delta = 0.1 scalar beta = 0
mle ll = -0.5*(log(h) + (e~2)/h) series h = var(r) series e = r - mu series e2 = ert2 series e2m = e2 * (e<0)
series h = omega + alpha*e2(-1) + delta*e2m(-1) + beta*h(-1) params mu omega alpha delta beta end mle
Figure 14.7: Threshold GARCH script
Using numerical derivatives Tolerance = 1.81899Є-012 Function evaluations: 72 Evaluations of gradient: 19
Model 1: ML, using observations 1-500 11 = -0.5"(log(і) + (e~2}/h)
Standard errors based on Outer Products matrix
estimate |
std. error |
z |
p-value |
||
mu |
0 . ЭЭ5256 |
0.042 9403 |
23.18 |
7.70Є-119 |
ft ft ft |
omega |
0.356064 |
0.0900963 |
3.952 |
7.75Є-05 |
* * * |
alpha |
0.263232 |
0.0805990 |
3.2 67 |
0.0011 |
ft** |
delta |
0.490534 |
0.204453 |
2.399 |
0.0164 |
* * |
beta |
0.286870 |
0.115478 |
2.434 |
0.0130 |
ft ft |
The GJR model type is actually equivalent to the TARCH discussed above. Estimating it with the OPG covariance estimator yields very similar results to the ones in POE4. This module offers several other variants of GARCH, but you will have to use the gretl documentation to be sure of what you are estimating. For instance, the TARCH option is not the same as the one in POE4.
Model: GJR(1,1) [Glosten et al.] (Normal)*
Dependent variable: r
Sample: 1-500 (T = 500), VCV method: OPG Conditional mean equation
coefficient std. error z p-value
const 0.995450 0.0429312 23.19 6.15e-119 ***
Conditional variance equation
coefficient std. error z p-value
0.356106 |
0.0900902 |
3.953 |
-4 CO CD 1 О СЛ |
*** |
|
alpha |
0.476221 |
0.102614 |
4.641 |
3.47e-06 |
*** |
gamma |
0.256974 |
0.0873509 |
2.942 |
0.0033 |
*** |
beta |
0.286913 |
0.115495 |
2.484 |
0.0130 |
** |
(alt. parametrization) coefficient |
std. error |
z |
p-value |
||
delta |
0.356106 |
0.0900902 |
3.953 |
-4 CO CD 1 О СЛ |
*** |
alpha |
0.262915 |
0.0804612 |
3.268 |
0.0011 |
*** |
gamma |
0.489506 |
0.203966 |
2.400 |
0.0164 |
** |
beta |
0.286913 |
0.115495 |
2.484 |
0.0130 |
** |
Llik: |
-730.58891 |
AIC: |
1471 |
17783 |
|
BIC: |
1492.25087 |
HQC: |
1479 |
44686 |
You notice that a and у refer to two different ways to parameterize the model. The alternative refers to the TARCH model discussed in POE4.