Dr. Sébastien Laurent, the copyright owner of G@RCH, holds a Ph.D. (2002) in Financial
Econometrics from Maastricht University (The Netherlands). In 2002-2003 he worked as
post-doc researcher at the CREST (Laboratory of Finance-Insurance) in Paris (France). He
spent six years as associate professor in Econometrics at the Faculté Notre-Dame de la Paix
in Namur (Belgium) and is currently associate professor in financial econometrics at
Maastricht University, School of Business and Economics. He is also fellow of the CORE in
Louvain-la-Neuve (Belgium). In 2008 and 2009 he has been invited professor at the London
School of Economics (Finance Department). Sébastien has published in Journal of Business
and Economic Statistics, Journal of Applied Econometrics, Journal of Financial
Econometrics, European Economic Review and Journal of Empirical Finance among
others.
Web Site: http://www.core.ucl.ac.be/~laurent/
Email: s.laurent@maastrichtuniversity.nl
Dr. Kris Boudt holds a Ph.D. (2008) in Applied Economics at K.U.Leuven, Belgium. He is
afliated researcher at K.U.Leuven and since 2008 assistant professor of Finance at
Lessius University College. His main research interests are empirical nance, risk
management and robust statistics. His research has been published in the Computational
Statistics and Data Analysis, Metrika, Journal of Risk and RISK magazine, among
others.
Web Site: http://www.econ.kuleuven.be/public/N06054/
Email: Kris.Boudt@econ.kuleuven.be
Jerome Lahaye graduated from the HEC Management School of the University of Liège
(Belgium) where he subsequently worked as teaching and research assistant (2000-2003). He
holds a master of advanced studies in economics from the University of Leuven (2004) and a
Ph.D. (2009) in Economics at the Faculté Notre-Dame de la Paix in Namur (Belgium). He is
currently post-doc at HEC Lausanne. His research interests are at the crossroads of applied
econometrics and international finance. In particular, his research has focused on the link
between economic information disclosure and discontinuities on financial time
series.
Email: jerome.lahaye@fundp.ac.be
Jean-Philippe Peters has been involved in the G@RCH project until version 4.2. He
graduated from the HEC Management School of the University of Liège (Belgium) in 2000
with a M.Sc. in Management Sciences. His final dissertation, entitled “Development of a
Package in the Ox Environment for GARCH Models and Two Empirical Applications” was
the founding ground of the current package. From 2000 to 2002, he has worked as researcher
in the Operations Research and Production Management unit of the University of Liège. In
October 2002 he joined the Advisory and Consulting department of Deloitte Luxembourg
where he is involved in consulting activities on risk management for the financial industry.
Jean-Philippe also holds a Ph.D. (2010) in Economics from the HEC Management School of
the University of Liège (Belgium).
Dr. Jeroen VK Rombouts holds a Ph.D. (2004) in Econometrics from the Catholic
University of Louvain and is since 2004 assistant professor HEC Montreal. He is elected
member of the International Statistical Institute, reseacher at CIRANO (Canada) and research
associate at CORE (Belgium). Jeroen has published in Econometric Theory, Journal of
Applied Econometrics, Econometric Reviews and The Econometrics Journal among
others.
Web Site: http://neumann.hec.ca/pages/jeroen.rombouts/
Email: Jeroen.Rombouts@hec.ca
Francesco Violante graduated from the Bocconi University, Milan (Italy) where he worked
as teaching and research assistant in 2004 at Centre of Research on Innovation and
Internationalization (CESPRI). He holds a master of arts in economics from the Universitè
Catholique de Louvain (Belgium) and is currently Ph.D. candidate of the Louvain
Academy, at the University of Namur (2006). His research interests are focused on
applied econometrics and finance and in particular realized volatility and forecast,
multivariate GARCH models, volatility models comparison and selection. In 2007, he was
visiting scholar at the HEC Management School of the University of Montreal
(Canada).
Email: francesco.violante@fundp.ac.be
This book documents G@RCH 6.1, an OxMetrics module (see Doornik, 2009) dedicated to the estimation and forecasting of univariate and multivariate ARCH-type models (Engle, 1982), including some of the most recent contributions in this field. Univariate GARCH (Bollerslev, 1986), EGARCH (Nelson, 1991), GJR (Glosten, Jagannathan, and Runkle, 1993), APARCH (Ding, Granger, and Engle, 1993), IGARCH (Engle and Bollerslev, 1986), RiskMetrics (J.P.Morgan, 1996), FIGARCH (Baillie, Bollerslev, and Mikkelsen, 1996a and Chung, 1999), FIEGARCH (Bollerslev and Mikkelsen, 1996), FIAPARCH (Tse, 1998) and HYGARCH (Davidson, 2001) specifications are available for the conditional variance. Moreover an AR(FI)MA process can be specified in the conditional mean (see Baillie, Chung, and Tieslau, 1996b, Tschernig, 1995, Teyssière, 1997, or Lecourt, 2000, for further details about ARFIMA models). All these models can be adapted to add an “ARCH-in-mean” term in the conditional mean as suggested by Engle, Lilien, and Robbins (1987).
G@RCH 6.1 allows the estimation of some of the most widespread multivariate GARCH models, including the scalar BEKK, diagonal BEKK(Engle and Kroner, 1995), RiskMetrics (J.P.Morgan, 1996), CCC (Bollerslev, 1990), DCC (Engle, 2002 and Tse and Tsui, 2002), DECO (Engle and Kelly, 2007), OGARCH (Kariya, 1988 and Alexander and Chibumba, 1997) and GOGARCH models (van der Weide, 2002 and Boswijk and van der Weide, 2006).
G@RCH 6.1 also allows the estimation of univariate and multivariate non-parametric estimators of the quadratic variation and the integrated volatility. These estimators include the realized volatility, bi-power-variation and realized outlyingness weighted variance. Several tests for daily and intradaily tests for jumps and intraday periodicity filters are also provided.
This software has been developed with Ox 6.0, a matrix programming language described in Doornik (2007b).1 G@RCH 6.1 should be compatible with a lot of platforms, including Windows, Mac OsX, Linux, Unix and Solaris when it is used in combination with the Ox Console. Furthermore, G@RCH 6.1 provides a menu-driven graphical interface for Microsoft Windows, Mac OsX and Linux users as well as a comprehensive HTML documentation. For most of the specifications, it is generally very fast and one of its main characteristic is its ease of use.
This book is structured as follows:
G@RCH 6.1 is a software dedicated to the estimation and the forecasting of univariate and multivariate (G)ARCH models and many of its extensions. It can be used within OxMetrics or via the classic programming way (using OxEdit for instance) for those who have access to the Ox programming language.
The available univariate models are all ARCH-type models. These include ARCH, GARCH, EGARCH, GJR, APARCH, IGARCH, RiskMetrics, FIGARCH , FIEGARCH , FIAPARCH and HYGARCH. They can be estimated by approximate (Quasi-) Maximum Likelihood under one of the four proposed distributions for the errors (Normal, Student-t, GED or skewed-Student). Moreover, ARCH-in-mean models are also available and explanatory variables can enter the conditional mean and/or the conditional variance equations.
G@RCH 6.1 also propose the some multivariate GARCH specifications including the scalar BEKK, diagonal BEKK, full BEKK, RiskMetrics, CCC, DCC, DECO, OGARCH and GOGARCH models.
Finally, h-steps-ahead forecasts of both equations are available as well as many univariate and multivariate miss-specification tests (Nyblom, Sign Bias Tests, Pearson goodness-of-fit, Box-Pierce, Residual-Based Diagnostic for conditional heteroscedasticity, Hosking’s portmanteau test, Li and McLead test, constant correlation test, …).
This documentation refers to version 6.0 of G@RCH, which can be used in three different ways. The first one is through the menu-driven environment of OxMetrics, similarly to PcGive, PcGets or STAMP.
Second, one can estimate the models via the “Batch Editor” of OxMetrics.
Finally, Ox users can write Ox codes based on the Garch, MGarch and Realized classes. This solution is found to be particularly interesting when non-standard operations are considered (like a whole catalogue of estimations). A set of examples is provided with the G@RCH package. Please note however that this solution requires a registered version of Ox Professional or its console version. Check the Ox web site (http://www.doornik.com) for details.
The first method is illustrated in Chapters 3 and 4 while the next two are presented in Chapter 5.
∑
i=2M|rt,i||rt,i-1|. The term
was
ignored in version 6.0 (but is close to one when M is large). A similar correction
is applied on the Tri-power and Quad-power quarticity estimators.
This will produce the following output:
This manual has been revised to account for the following new features:
Suggestions, mistakes, typos and possible improvements can be reported to the first author via e-mail: Sebastien.Laurent@fundp.ac.be
The most appropriate way to discuss about problems and issues of the G@RCH package is the Ox-users discussion list. The ox-users discussion group is an email-based forum to discuss any problems related to Ox programming, and share code and programming solutions. Consult the online help of OxMetrics for information on joining the list.
The full independent version of G@RCH is exclusively distributed by Timberlake
Consultants.
Contact information for the UK:
Phone: +44 (0)20 8697 3377 or
Internet: http://www.timberlake.co.uk
For the US:
Phone: +1 908 686 1251 or
Internet: http://www.timberlake-consultancy.com
For other countries, please go to the Timberlake web sites for contact information.
There are different versions of G@RCH. A console version of G@RCH is available on
G@RCH web site http://www.garch.org.
This (and only this) version of G@RCH may be used freely for academic research and teaching purposes only. The Professional version (i.e. using OxRun, OxDebug, OxMetrics or oxli) is not free.
Commercial users and others who do not qualify for the free version must purchase the Professional version of G@RCH with documentation, regardless of which version they use (i.e., even with Linux or Unix). Redistribution of G@RCH in any form is not permitted.
Moreover, for easier validation and replication of empirical findings, please cite this documentation (or Laurent and Peters, 2002) in all reports and publications involving the use of G@RCH. Failure to cite the use of Ox in published work may result in loss of the right to use the free version, and an invoice at the full commercial price.
All company and product names referred to in this documentation are either trademarks or registered trademarks of their associated companies.
Check www.garch.org for information on releases, online help and other relevant information on G@RCH.
To install the Professional version of G@RCH 6.1, run the installation file and follow the instructions.
To install the Console version of G@RCH, unzip the file Garch6.zip (available herebelow) in the ox/packages directory. Note that the free console version of G@RCH 6.1 only includes the Garch class. The MGarch and Realized classes are only available in the Professional version of G@RCH.
| Download G@RCH Console 6.1 | |
| Download Ox Console |
For OxMetrics enterprise users, note that the Console version of G@RCH 6.1 comes along with OxMetrics enterprise and is directly installed in the ox/packages directory.
THIS PACKAGE IS FUNCTIONAL BUT NO WARRANTY IS GIVEN WHATSOEVER. YOU USE IT AT YOUR OWN RISK!
We now discuss some of the basic skills required to get started with G@RCH. We will give a brief introduction to the functionalities provided by OxMetrics. The aim of this section is to explain how to load data and make graphs: for instructions on how to transform data using the calculator or algebra, consult the OxMetrics manuals.
We assume that you have the basic skills to operate programs under the Windows operating system (the OxMetrics books provides some hints). G@RCH runs on several versions of Windows, i.e. Windows Vista/XP/NT/2000 but also on Mac OsX and Linux.1 The screen appearance of the program and dialogs will reflect the operating system you are using. The screen captures of this manual reflect the Windows XP operating system but should not be very different from the other systems.
When launching OxMetrics, all the available modules (PcGive, G@RCH and Stamp) are automatically loaded and appear in the Modules group in the workspace window on the left-hand side of OxMetrics. This process is displayed in the following capture.
G@RCH cannot operate without data. Once OxMetrics is activated, the very first step is to load data. Let us illustrate this with an example, loading nasdaq.in7. These are daily returns of the Nasdaq stock index. The covered period is 10/11/1984 - 12/21/2000, which represents 4093 daily observations. Daily returns (in %) are defined as
![]() | (2.1) |
where pt is the price series at time t.

The IN7 extension indicates an OxMetrics file. The IN7 file is a human-readable file, describing the data. There is a companion BN7 file, which holds the actual numbers (in binary format, so this file cannot be edited). OxMetrics can handle a wide range of data files, among them Excel and Lotus files and, of course, plain human-readable (ASCII) files. You can also cut and paste data between Excel and OxMetrics. More details are available in OxMetrics handbooks.
To load this dataset, click File then Open in the main menu of OxMetrics, then select the data file. The default datasets provided by G@RCH are stored in the subdirectory \G@RCH\data of OxMetrics’s main directory. Locate that directory and select nasdaq.in7.



Double clicking on the variable name shows the documentation of the variable.
The data can be manipulated, much like in a spreadsheet program. Here we shall not need these facilities, so minimize the database window again: click on the first button in the right-hand side of the window. Do not click on the cross: this closes the database, thus removing it from OxMetrics and hence from G@RCH.
The graphics facilities of OxMetrics are powerful yet easy to use. This section will show you how to make time-plots of variables in the database. OxMetrics offers automatic selections of scaling etc., but you will be able to edit these graphs, and change the default layout such as line colors and line types. Graphs can also be saved in a variety of formats for later use in a word processor or for reloading to OxMetrics.
Graphics is the first entry on the Model menu. Activate the command to see the following dialog box (or click on the cross-plot graphics icon on the toolbar).

In this example we select Nasdaq and then press the << button to move the database variables to the selection listbox, as shown above. Then press the button labelled Actual series. Figure 2.1 should appear on the screen. OxMetrics can also draw multiple graphs simultaneously on-screen. For other types of graphs, select All plot types to open the related menu, as seen hereunder (additional details on graphics are available in Doornik, 2009).
To print a graph directly to the printer, click on the printer icon in OxMetrics. You can preview the result first using the Print Preview command from the File menu.
Graphs can be saved in various formats. See Doornik (2009) for more details.
Saving graphs in the .EPS format is useful to include them in a LATEX document. The example given below is the Latex code used to include Figure 2.1 in the current document. Note that the command \includegraphics requires the use of the package graphicx. This can be done using the \usepackage{graphicx} command in the preamble of the LATEX document.

Panel 1 of Figure 3.1 indicates that the NASDAQ exhibits volatility clustering as periods of low volatility mingle with periods of high volatility. This is a clear sign of presence of ARCH effect in the series.
Panel 2 also shows that the unconditional distribution of the NASDAQ returns (full line) is not normal. Indeed, it is more peaked than the normal density (dashed line) and it has fatter tails as indicated by panels 3 and 4 (this visual indication is validated by the computation of the kurtosis, which is is equal to 9.34). While not obvious on a visual basis, the skewness parameter (-0.627) indicates a negatively skewed behavior.
Recall that the skewness coefficient (SK) equals 0 for a symmetric distribution while the kurtosis coefficient (KU) equals 3 for the normal distribution. The excess kurtosis equals KU - 3. Formally these coefficients are expressed as
![]() | (3.1) |
When the error term is not independent of previous errors, it is said to be autocorrelated. Autocorrelation of order h is computed as follows
![]() | (3.2) |
Plotting the autocorrelation function against the lag gives a first visual impression of the magnitude of the autocorrelation problem. This plot is called “autocorrelogram” and it provides information about simple correlation coefficients. When the errors are strongly time dependent, the autocorrelations tend to be fairly large even for large values of h. The next screen shot shows how to obtain an autocorrelogram in OxMetrics.
The obtained graphic is displayed in Figure 3.2. It suggests that the daily return series of the NASDAQ is a short memory process (in the level) and an AR(1) term might be needed in the conditional mean equation.
We have previously seen from the visual inspection that the NASDAQ exhibits volatility clustering as periods of low volatility mingle with periods of high volatility. In addition to this inspection, one can plot the autocorrelogram of the squared (or absolute) returns to highlight the presence of ARCH effects in the data. This can be done using the calculator of OxMetrics. We can compute squared returns of the NASDAQ, as shown in the screen shot below.



Figure 3.3 shows the autocorrelogram (with 100 lags) of the squared returns. It suggests that squared returns are strongly autocorrelated, exhibiting volatility clustering.
G@RCH 6.1 provides several tests on the raw data (in addition to the possibilities offered by OxMetrics: ACF, PACF, QQ-plots,…):
, and squared
series, i.e. BP2
. Under the null hypothesis of no autocorrelation, the
statistics BP
and BP2
should be evaluated against the χ2
and
χ2
, respectively. A Monte Carlo study of the size and power of this this is
given in example file Simulation_Q.ox.
in:
![]() | (3.3) |
where q is the number of lagged first differences included in the ADF regression. The
constant and the trend are optional and can be excluded if needed. Note that et is
assumed to be a white noise. Critical values are taken from MacKinnon (1991).
2. The KPSS test of Kwiatkowski, Phillips, Schmidt, and Shin (1992) tests H0 : yt is
I(0) against H1 : yt is I(1). The regression model with a time trend has the
form
![]() | (3.4) |
where et is assumed to be stationary with mean 0 and variance σe2 and xi an i.i.d. process with E(xi) = 0 and V (xi) = 1. When γ≠0,yt is integrated while when k = 0 it is trend-stationary (or stationary if β1 = 0). As a consequence, H0 implies k = 0 while H1 implies k≠0. After the estimation of the above model under H0 by OLS (including or not a time-trend), the KPSS test rejects H0 in favor of H1 for large values of the statistic
![]() | (3.5) |
where
T2 is an estimator of the spectral density at a frequency of zero (nonparametric
estimator of the so-called long-run variance). This estimator is based on a
weighted sum of the autocovariances, where the weights are defined by a
kernel function. We thus need to specify a truncation lag in the covariance or
bandwidth, denoted l. G@RCH 6.1 provides a Bartlett kernel. The bandwidth
can be specified by the user. In their original work, Kwiatkowski, Phillips,
Schmidt, and Shin (1992) considered three values of l as a function of T :
l0 = 0,l4 = integer[4(T∕100)1∕4], and l12 = integer[12(T∕100)1∕4].
3. Schmidt and Phillips (1992) have proposed a test for the null hypothesis of a unit
root when a deterministic linear trend is present. These authors end-up with two
statistics, denoted Z(rho) and Z(tau) based on a nonparametric estimator of the
so-called long-run variance (see above) that involves a truncation lag in the covariance
or bandwidth (l). Critical values for these two statistics are reported in Schmidt and
Phillips (1992).
,j = 1,…,l,
where l is the number of low frequency periodogram points used in estimation
(bandwidth).To launch the descriptive statistics, click on G@RCH in the Modules group in the workspace window on the left-hand side of OxMetrics. Then change the Category to Other models and Model Class to Descriptive Statistics using G@RCH and click on Formulate.

A new dialog box Formulate is launched and the user is asked to select the series to be tested. Selected series are labelled ‘T’.

Next, the user select the tests to be run. Lag values of the ARCH LM and Box-Pierce tests can be changed by the user. The subsequent window displays options related to the sample period. As can be seen, if the date variable is well formatted in the database, the sample selection is made easier by allowing selecting a starting date and an ending date. See Chapter 9 of Doornik (2007a) for details on OxMetrics file formats.
Once the OK button of the Estimate - Descriptive Statistics dialog box is pressed, tests are launched and results are printed out in OxMetrics. Note that if a unit root test has been selected, an additional dialog box is launched and the user is asked to select some options related to the test (to include a constant or a trend for instance and the lag length for differences or bandwidth). They should be similar to the output of “Box 1 - Descriptive Statistics”. Results confirm that NASDAQ returns exhibit ARCH-type effects (see the ARCH LM tests and the Q-Statistics on squared data). Looking at the Q-Statistics on raw data, one concludes that an ARMA-type model seems justified. Finally, the Jarque-Bera statistic clearly rejects the normality assumption for the unconditional distribution of the NASDAQ while the KPSS Statistics indicated that the series is likely to be I(0).


Let us consider a univariate time series yt. If Ωt-1 is the information set at time t- 1, we can define its functional form as:
![]() | (3.6) |
where E
denotes the conditional expectation operator and εt is the disturbance term (or
unpredictable part), with E
= 0 and E
= 0,∀ t≠s.
Equation (3.6) is the conditional mean equation which has been studied and modelled in many ways. Two of the most famous specifications are the Autoregressive (AR) and Moving Average (MA) models. Combining these two processes and introducing n1 explanatory variables in the equation, we obtain the ARMAX(n,s) process
![]() | (3.7) |
where L is the lag operator1 ,
Ψ
= 1 -∑
i=1nψiLi and Θ
= 1 + ∑
j=1sθjLj. The ARMA residuals are obtained
using the arma0 function of Ox on the demeaned series (yt - μt). See the Ox manual for
more details about arma0.
Several studies have shown that the dependent variables (interest rate returns, exchange rate returns, etc.) may exhibit significant autocorrelation between observations widely separated in time. In such a case, yt is said to display long memory (or long-term dependence) and is best modelled by a fractionally integrated ARMA process. This ARFIMA process was initially developed in Granger (1980) and Granger and Joyeux (1980) among others.2 The ARFIMA(n,ζ,s) is given by:
![]() | (3.8) |
where the operator (1 - L)ζ accounts for the long memory of the process and is defined as:
with 0 < ζ < 1, c1(ζ) = ζ,c2(ζ) =
ζ(1 - ζ), … and Γ(.) denoting the Gamma function
(see Baillie, 1996, for a survey on this topic). The truncation order of the infinite
summation is set to t - 1. Note that The ARFIMA residuals are obtained using
diffpow function on the ARMA residuals. See the Ox manual for more details about
diffpow.
It is worth noting that Doornik and Ooms (1999) provided an Ox package for estimating, forecasting and simulating ARFIMA models. However, contrary to G@RCH, the conditional variance is assumed to be constant over time.3
A feature of G@RCH 6.1 is the availability of ARCH “in-mean” models. If we introduce the conditional variance (or the conditional standard error) as additional explanatory variables in Equation (9.6), we get the ARCH-in-Mean model of Engle, Lilien, and Robbins (1987), i.e.
![]() | (3.10) |
with k = 1 to include the conditional standard deviation and k = 2 for the conditional variance.
The ARCH-M model is often used in financial applications where the expected return on an asset is related to the expected asset risk. The estimated coefficient of the expected risk is a measure of the risk-return tradeoff.
The εt term in Equations (3.6)-(3.8) is the innovation of the process. More than two decades ago, Engle (1982) defined as an Autoregressive Conditional Heteroscedastic (ARCH) process, all εt of the form:
![]() | (3.11) |
where zt is an independently and identically distributed (i.i.d.) process with E(zt) = 0 and V ar(zt) = 1. By assumption, εt is serially uncorrelated with a mean equal to zero but its conditional variance equals σt2. Therefore, it may change over time, contrary to what is assumed in the standard regression model.
The models provided by our program are all ARCH-type.4 They differ on the functional form of σt2 but the basic principles are the same (see the next chapter for details). Besides the traditional ARCH and GARCH models, we focus mainly on two kinds of models: the asymmetric models and the fractionally integrated models. The former are defined to account for the so-called “leverage effect” observed in many stock returns, while the latter allows for long-memory in the variance. Early evidence of the “leverage effect” can be found in Black (1976), while persistence in volatility is a common finding of many empirical studies; see for instance the excellent surveys on ARCH models proposed in Bollerslev, Chou, and Kroner (1992), Bera and Higgins (1993) or Palm (1996).
The ARCH (q) model can be expressed as:
where D(.) is a probability density function with mean 0 and unit variance (see Section 3.6.2).The ARCH model can describe volatility clustering. The conditional variance of εt is indeed an increasing function of the square of the shock that occurred in t - 1. Consequently, if εt-1 was large in absolute value, σt2 and thus εt is expected to be large (in absolute value) as well. Notice that even if the conditional variance of an ARCH model is time-varying, i.e. σt2 = E(εt2|ψt-1), the unconditional variance of εt is constant and, provided that ω > 0 and ∑ i=1qαi < 1, we have:
![ω
σ2 ≡ E [E (ε2t|ψt-1)] =--∑q---. (3.13)
1- αi
i=1](Book630x.png)
If zt is normally distributed, E(zt3) = 0 and E(zt4) = 3. Consequently, E(εt3) = 0 and
the skewness of y is zero. The kurtosis coefficient for the ARCH(1) is 3
if
α1 <
≈ 0.577. In this case, the unconditional distribution of the returns features fat
tails whenever α1 > 0.
In most applications, the excess kurtosis implied by the ARCH model (coupled with a
normal density) is not enough to mimic what we observe on real data. Other distributions are
possible. For example we could assume that zt follows a Student distribution with unit
variance and υ degrees of freedom, i.e. zt is ST(0,1,υ). In that case, the unconditional
kurtosis of the ARCH(1) is λ
with λ = 3(υ - 2)∕(υ - 4). Because of the additional
coefficient υ, the ARCH(1) model based on the Student distribution does feature fatter tails
than the corresponding model based on the Normal distribution. See Section 3.6.2 for more
details.
The computation of σt2 in Equation (3.12) depends on past (squared) residuals (εt2), that are not observed for t = 0,-1,…,-q + 1. To initialize the process, the unobserved squared residuals are set to their sample mean.
Explanatory variables can be introduced in the conditional variance as follows:
![]() | (3.14) |
For the ease of presentation, we will use the notation ω for both ω and ωt in all subsequent equations.5
σt2 has obviously to be positive for all t. Sufficient conditions to ensure that the conditional variance in Equation (3.12) is positive are given by ω > 0 and αi ≥ 0.6 Furthermore, when explanatory variables enter the ARCH equation, these positivity constraints are not valid anymore (but the conditional variance is still required to be non-negative).
A simple trick to reduce the number of parameters to be estimated is referred to as variance targeting by Engle and Mezrich (1996).
The conditional variance matrix of the ARCH model (and most of its generalizations), may be expressed in terms of the unconditional variance and other parameters. Doing so one can reparametrize the model using the unconditional variance and replace it by a consistent estimator (before maximizing the likelihood).
Applying variance targeting to the ARCH model implies replacing ω by σ2
,
where σ2 is the unconditional variance of εt, which can be consistently estimated by its
sample counterpart.
If explanatory variables appear in the ARCH equation, ω is then replaced by
σ2
-∑
i=1n2ωi
i, where
i is the sample average of variable xi,t (assuming
the stationarity of the n2 explanatory variables). In other words, the explanatory variables are
centered.
Estimating (3.12) with G@RCH is intended to be very simple.
Note that in the example we will use a Monday dummy and a Friday dummy. These dummies are easily created with the Calculator (recall that the dataset is dated). First, use the function dayofweek() to created a variable DAY with DAY = 2 on Mondays, 3 on Wednesdays, etc. Then, create the Monday and Friday dummy as follows: Monday = Day == 2 and Friday = Day == 6.


To specify the model, first click on G@RCH in the Modules group in the workspace window on the left-hand side of OxMetrics. Next change the Category to Models for financial data and the Model class to Univariate GARCH models using G@RCH, then click on Formulate.
A list with all the variables of the database appears in the Database frame. To select variables that will enter your model, click on the variable name and then click on the << button. There are three possible statuses for each variable (see the list of statuses under the Selection frame): dependent variable (Y variable), regressor in the conditional mean (Mean), or regressor in the conditional variance (Variance). In the univariate module, only one Y variable per model is accepted. However one can include several regressors in the conditional mean and the conditional variance equations and the same variable can be a regressor in both equations. In the example a Monday dummy is included in the conditional mean and a Friday dummy in the conditional variance equation.
Once the OK button is pressed, the Model Settings box automatically appears. This box allows to select the specification of the model: AR(FI)MA orders for the mean equation, GARCH orders, type of GARCH model for the variance equation and the distribution. The default specification is an ARMA(0,0)-GARCH(1,1) with normal errors. In our application, we select an ARMA(1,0)-GARCH(0,1) specification or equivalently an ARMA(1,0)-ARCH(1).7



Estimation of ARCH-type models is commonly done by maximum likelihood so that one has to make an additional assumption about the innovation process zt, i.e. choosing a density function D(0,1) with a mean 0 and a unit variance.
Weiss (1986) and Bollerslev and Wooldridge (1992) show that under the normality assumption, the quasi-maximum likelihood (QML) estimator is consistent if the conditional mean and the conditional variance are correctly specified. This estimator is, however, inefficient with the degree of inefficiency increasing with the degree of departure from normality (Engle and González-Rivera, 1991).
As reported by Palm (1996), Pagan (1996) and Bollerslev, Chou, and Kroner (1992), the use of a fat-tailed distributions is widespread in the literature. In particular, Bollerslev (1987), Hsieh (1989), Baillie and Bollerslev (1989) and Palm and Vlaar (1997) among others show that these distributions perform better in order to capture the higher observed kurtosis.
As shown below, four distributions are available in G@RCH 6.1 : the usual Gaussian (normal) distribution, the Student-t distribution, the Generalized Error distribution (GED) and the skewed-Student distribution.

The logic of ML is to interpret the density as a function of the parameter set, conditional on a set of sample outcomes. This function is called the likelihood function. It is quite evident from Equation (3.12) (and all the following equations of Section 3) that the recursive evaluation of this function is conditional on unobserved values. The ML estimation is therefore not perfectly exact. To solve the problem of unobserved values, we have set these quantities to their unconditional expected values. For this reason we talk about approximate (or conditional) ML and not exact ML.
If we express the mean equation as in Equation (3.6) and εt = ztσt, the log-likelihood function of the standard normal distribution is given by:
![]() | (3.15) |
where T is the number of observations.
For a Student-t distribution, the log-likelihood is:
where υ is the degrees of freedom, 2 < υ ≤∞ and Γ(.) is the gamma function.The GED log-likelihood function of a normalized random variable is given by:
![]() | (3.17) |
where 0 < υ < ∞ and
![]() |
The main drawback of the last two densities is that even if they may account for fat tails, they are symmetric. Skewness and kurtosis are important in financial applications in many respects (in asset pricing models, portfolio selection, option pricing theory or Value-at-Risk among others). Quite recently, Lambert and Laurent (2000, 2001) applied and extended the skewed-Student density proposed by Fernández and Steel (1998) to the GARCH framework.
The log-likelihood of a standardized (zero mean and unit variance) skewed-Student is:
where
ξ is the asymmetry parameter, υ is the degree of freedom of the distribution,

and

Note that G@RCH does not estimate ξ but log(ξ) to facilitate inference about the null hypothesis of symmetry (since the skewed-Student equals the symmetric Student distribution when ξ = 1 or log(ξ) = 0). The estimated value of log(ξ) is reported in the output under the label “Asymmetry”. See Lambert and Laurent (2001) and Bauwens and Laurent (2005) for more details.
The gradient vector and the hessian matrix can be obtained numerically or by evaluating their analytical expression. Due to the high number of possible models and distributions available, G@RCH uses numerical techniques to approximate the derivatives of the log-likelihood function with respect to the parameter vector.
The next window is (Starting Values) . The user is asked to make a choice regarding the starting values of the parameters to be estimated: (1) let the program choose the starting values, (2) enter them manually, element by element (the one selected here), or (3) enter the starting values in a vector form (one value per row) and potentially fix some parameters at their starting value.

The first method is obviously the easiest to use and is recommended for unexperienced users since it prevents from entering aberrant values. The last two methods are useful if the user wants specific starting values for the estimation. The third method is particularly useful when one wants to fix some parameters.
Next, the Estimate window proposes options on two important characteristics of the model: the sample size and the estimation method.

When the variable corresponding to the date is correctly formatted, the sample can conveniently be fixed based on starting and ending date (see Chapter 9 of Doornik, 2007, for details). The number of forecasts can be also subtracted when out-of-sample forecasting is to be performed.
The models are estimated using a maximum likelihood (ML) approach. Basically, three methods are proposed to estimate these models (see the option Optimization Methods in the Model Settings window).
G@RCH provides three methods to compute the covariance matrix of the estimates: Second Derivatives (based on the inverse of the hessian), Outer-Product of Gradients and Robust standard errors, also known as Quasi-Maximum Likelihood (QML) or ‘Sandwich formula’. This choice is accessible by clicking on the button ‘Options...’. By default, Robust standard errors are reported.


Note that a new feature of G@RCH 5.0 is that the default settings are updated after each estimation (the default model is thus the previously estimated one). To disable this option, disable ‘Update Default Settings’. Option ‘Reset default Settings’ is self-explanatory.
Once all the options have been selected, the estimation procedure is launched if the default starting values are used. Otherwise, a new dialog box appears. Let us assume that second method has been selected for the starting values, i.e. ‘Select (Individual Form)’. This new window contains an exhaustive list of parameters used in the different models. Depending on the specification, some parameters have a value, others have not.
The user should replace only the former since they correspond to the parameters to be estimated for the specified model. Note that it is crucially important to respect the format of these initial values. More specifically, when two values are associated with a single parameter (say, both ARCH coefficients in a ARCH(2) model), the mandatory format is “value1 ; value2”. Here is an example:


If the third method is selected for the starting values, i.e. ‘Select (Matrix Form)’, the corresponding window contains a column with the default starting values of the parameter vector (Column ‘Value’) and a Column ‘FIX’ that allows to fix some parameters to their starting value.

Note that estimating the same model with different values starting values is interesting to check the robustness of the maximum likelihood procedure.
Once this step is completed, the program starts the iteration process. Depending on the options
selected8 ,
G@RCH prints intermediate iteration results or not. The final output is divided in two main parts:
first, the model specification reminder; second, the estimated values and other useful statistics of the
parameters.9
The outputs “Box 2 - Output of the ARMA(1,0)-GARCH(1,1)” and
“Box 3 - Output of the ARMA(1,0)-GARCH(1,1) by QMLE” correspond
respectively to the estimation results of the ARMA(1,0)-GARCH(1,1) model by ML and
QMLE.
Parameters labelled ‘(M)’ relate to the conditional mean while those labelled ‘(V)’ relate to the conditional variance equation. AR(1) and ARCH(Alpha1) correspond to ψ1 and α1, respectively.
Surprisingly, the AR(1) coefficient is not significantly different from 0 (we will come back to this issue latter) while it was expected to be significantly negative. Interestingly, the returns and volatility are, on average, found to be lower on Monday and on Friday, respectively. Furthermore, the ARCH coefficient α1 is highly significant (rejecting the null of no ARCH effects) and incompatible with the existence of the kurtosis (since it is above 0.577). The log-likelihood value is -6106.357.
Ex-post, it is desirable to test the adequacy of the ARCH model. New options are thus available after the estimation of the model when clicking on the Test... button of the main G@RCH box: Tests, Graphic Analysis, Forecasts, Exclusion Restrictions, Linear Restrictions and Store.


The Graphic Analysis... option allows to plot different graphics.

Figure 3.4 plots the conditional variance (
t2) as well as the histogram of the
standardized residuals (ẑt =
) obtained with the AR(1)-ARCH(1) model, together with a
kernel estimation of its unconditional distribution (solid line) and the N(0,1) (dotted
line).
|
|
Just as any other graphs in the OxMetrics environment, all graphs plotted from G@RCH can be easily edited (color, size,…) and exported in many formats (.eps, .ps, .wmf, .emf and .gwg).
The Tests... option allows the user to run different tests but also to print the variance-covariance matrix of the estimated parameters.

Once again, in addition to the possibilities offered by OxMetrics (ACF, PACF, QQ-plots,…), several misspecification tests are indeed provided in G@RCH:
![Akaike = - 2LogL-+ 2k;
n n
LogL- klog[log-(n)]
Hannan - Quinn = - 2 n + 2 n ;
LogL log(k)
Schwartz = - 2--n--+ 2--n---;
LogL (n + 2k)
Shibata = - 2-----+ log ------ .
n n](Book650x.png)
, and
squared standardized, i.e. BP2
, residuals. Under the null hypothesis of no
autocorrelation, the statistics BP
and BP2
should be evaluated against
the χ2
and χ2
, respectively (see McLeod and Li,
1983).
t < 0, and 0 otherwise (and St+ ≡ 1 - St-). The Sign Bias Test
(SBT) examines whether
t2 can be predicted by St-1-,St-1-
t-1, and/or
St-1+
t-1. To test the presence of leverage effects, Engle and Ng (1993) propose to
run the following regressions: 
Instead of running three different regressions, G@RCH follows Engle and Ng (1993) in estimating jointly the three effect, i.e.
![]() | (3.19) |
T-stats corresponding to H0 : di = 0 (H1 : di≠0), ∀i = 1,2 and 3 are reported, as well as their p-value. Finally, a joint test for H0 : d1 = d2 = d3 = 0 is also provided.
![]() | (3.20) |
where ni is the observed number in the sample that fall into the ith category and Eni is the number of observations expected to be in this ith category when Ho is true. The Pearson statistic is therefore “small” when all of the observed counts (proportions) are close to the expected counts (proportions) and it is “large” when one or more observed counts (proportions) differs noticeably from what is expected when H0 is true.12 For i.i.d. observations, Palm and Vlaar (1997) show that under the null of a correct distribution the asymptotic distribution of P(g) is bounded between a χ2(r - 1) and a χ2(r - k - 1) where k is the number of estimated parameters. As explained by Palm and Vlaar (1997), the choice of r is far from being obvious.13 According to König and Gaab (1982), the number of cells must increase at a rate equal to T0.4.
The idea of the test is the following: after estimating the model, the standardized
residuals ẑt =
t∕
t can be computed. It is obvious that ẑt depends on the set of
estimated parameters. E(ẑt2) = 1 by construction, so we can run a regression of
E(ẑt2) - 1 on some information variables and examine the statistical significance of
the regression parameters. Tse (2002) proposes to run the following OLS
regression to test the presence of remaining heteroscedasticity in the standardized
residuals:
E(ẑt2) - 1 = d1ẑt-12 + … + dMẑt-M2 + ut. Since the regressors are not observed
(but estimated), standard inference procedures of OLS is invalid. Tse (2002) derives
the asymptotic distribution of the estimated parameters and shows that a joint test of
significance of the d1,…,dM is now χ2(M) distributed. Notice that in G@RCH the
maximum lag values M of the test are set by default to 2, 5 and 10 but can be changed
by the user.
Monte Carlo experiment
To study the performance of this test, let us consider a first simulation study (see
Simulation_RBD_TSE.ox). We simulate 1000 series of T = 2000 observations
following a N-AR(0)-GARCH(1,1) model with μ = 0.1, i.e. (yt - μ) = εt, where
εt ~ N(0,σt2) and σt2 = 0.2 + 0.1εt-12 + 0.8σt-12. We than estimate a
N-AR(0)-GARCH(1,1) and the simulated data and apply Tse (2002)’s test on
ẑt2 ≡
with M = 1,2,3 and 4. We report both the test with and without the RBD
correction.
The number of times that the null is rejected at the α% nominal size (called the empirical size of the test) is reported below.
These results suggest that the version of the test that implements the RBD correction has a reasonable size for α = 10 and 5% and suffers from a positive size distortion for α = 1%. However, the ’OLS’ version of the test (that does not take into account the uncertainty of the estimation of the GARCH model) is clearly inadequate because it has a tendency to under-reject the null whatever the value of M and α. For instance, for M = 1 and α = 10%, the empirical size is 0.9%, which suggests a strong size distortion.
In the example, 6 tests have been selected. The output is reported in
“Box 4 - Misspecification Tests”.
Without going too deeply into the analysis of these results, we can briefly argue that the model does not capture the dynamics of the the NASDAQ.
The Q-statistics on standardized and squared standardized residuals, and RBD test with various lag values as well as the adjusted Pearson Chi-square goodness-of-fit test (with different cell numbers) reject the null hypothesis of a correct specification. This result is not very surprising. Early empirical evidence has indeed shown that a high ARCH order has to be selected to catch the dynamics of the conditional variance (thus involving the estimation of numerous parameters).
When numerical optimization is used to maximize the log-likelihood function with respect to
the vector of parameters Ψ, the inspected range of the parameter space is
. The
problem is that some parameters might have to be constrained in a smaller interval. For
instance, it is convenient to constrain the αi parameters of an ARCH(q) to be positive.
Constraining parameters to lie between given lower and upper bounds is easily done by
selecting the ‘BFGS-BOUNDS’ option in the Estimate - GARCH Models dialog box in
G@RCH.
If the user fixes bounds on parameters, the program uses MaxSQPF instead of MaxBFGS (Broyden, Fletcher, Goldfarb and Shanno quasi-Newton method) to optimize the likelihood function. MaxSQPF enforces all iterates to be feasible, using the algorithm by Lawrence and Tits (2001). If a starting point is infeasible, MaxSQPF will try to minimize the squared constraint violations to find a feasible point. See Doornik (2007b) for more details on these two optimization functions.
To change the values of the bounds, select option ‘Select (Matrix Form)’ in the ‘Starting Value’ dialog box together with option ‘BFGS-BOUNDS’ in the Estimate - GARCH Models dialog box. In addition to columns ‘FIX’ and ‘Value’, two new columns appear with the default lower and upper bounds.
Furthermore, nonlinear constraints (like the stationarity constraint of the GARCH (1,1) model, α1 + β1 < 1) can be imposed during the estimation with the Console version. For more details, see 5.3.2.

The main purpose of building and estimating a model with financial data is probably to produce a forecast. With the Forecast... option, G@RCH 6.1 also provides forecasting tools: forecasts of both the conditional mean and the conditional variance are available as well as several forecast error measures.
The first parameter to specify is the horizon h of the h-step-ahead forecasts. The default value is 10. Three options are available to:
Finally, graphical options are available for the standard error bands (error bands, bars or fans).

Our first goal is to give the optimal h-step-ahead predictor of yt+h given the information we have up to time t.
For instance, in an AR(1) process such as
yt = μ + ψ1(yt-1 - μ) + εt,
the optimal14
h-step-ahead predictor of yt+h (i.e. ŷt+h|t) is its conditional expectation at time t (given the
estimated parameters
and
1):
![]() | (3.21) |
where ŷt+i|t = yt+i for i ≤ 0.
For the AR(1), the optimal 1-step-ahead forecast equals
+
1(ŷt -
). For h > 1, the
optimal forecast can be obtained recursively or directly as ŷt+h|t =
+
1h(ŷt -
).
More generally, for the ARFIMA(n,ζ,s) model described Equation (3.8), the optimal h-step-ahead predictor of yt+h is:
Recall that when exogenous variables enter the conditional mean equation, μ becomes μt = μ + ∑ i=1n1δixi,t and consequently, provided that the information xi,t+h is available at time t (which is the case for instance if xi,t is a “day-of-the-week” dummy variable),
t+h|t is also available at time t. When there is no exogenous variable in the ARFIMA model
and n = 1,s = 0 and ζ = 0 (ck = 0), the forecast of the AR(1) process given in Equation
(3.21) can be recovered.
Note that for ARCH-in-mean models,
t+h|t = μ + ∑
i=1n1δixi,t+h|t + ϑσt+h|tk (with
k = 1 or 2).
Independently from the conditional mean, one can forecast the conditional variance. In the
simple ARCH(q) case, the optimal h-step-ahead forecast of the conditional variance, i.e.
t+h|t2 is given by:
![]() | (3.23) |
where εt+i|t2 = σt+i|t2 for i > 0 while εt+i|t2 = εt+i2 for i ≤ 0. Equation (3.23) is usually computed recursively, even if a closed form solution of σt+h|t2 can be obtained by recursive substitution in Equation (3.23).
Leaving out the last 10 observation for the forecasting experiment (as shown in the Estimate Model windows here below) and performing a 10-step-ahead forecasts of the Nasdaq based on the AR(1)-ARCH(1) produces Figure 3.5.

The forecasted bands are ±2
t+h|t which gives a 95 % confidence interval (note that the
critical value 2 can be changed).
Furthermore, if we leave enough observations for the out-of-sample period, G@RCH can report some standard measures of forecasting performance derived from the forecasts errors (see Box 5). Note that certain criteria are not computed on both the mean and the variance (because they are not relevant, e.g. Percentage Correct Sign(PCS) for the variance). In such a case, G@RCH reports a .NaN.
Finally, three options are also available in the Test menu: an Exclusion Restrictions dialog box, a Linear Restrictions dialog box and a Store in database dialog.
The Exclusion Restrictions dialog box option allows you to select explanatory variables and test whether they are jointly significant. A more general form is the test for linear restrictions.
Mark all the variables you wish to include in the test in this Multiple-Selection List box. G@RCH tests whether the selected variables can be deleted from the model.
Tests for linear restrictions are specified in the form of a matrix R, and a vector r. These are entered as one matrix [R : r] in the dialog. (This is more general than testing for exclusion restrictions).
The first four columns are the columns of R, specifying two restrictions. The last column is r, which specifies what the restrictions should add up to.
The dimensions of the matrix must be specified in the rows and columns fields. It is your responsibility to specify the right values, G@RCH will not try to work it out (because elements of a row may be spread over several lines).
Finally, the residuals, the squared residuals, the standardized residuals, the conditional variance and the h-step-ahead forecasts (of the conditional mean and the conditional variance) can be stored in the database as new variables. When selecting this option, a first window appears and the user selects the series to be stored. A default name is then proposed for this series.

This section has been largely inspired by Taylor (1995).
Are prices (or returns) of financial assets forecastable? According to the random walk
hypothesis (RWH) not. The steps of a random walk are unpredictable. The RWH associates
steps with returns, so that returns can not be predicted from past values. In G@RCH, the
RWH is here defined by two statements about the stochastic process
that provides
observed returns: The mean is stationary, E
= μ , and returns are uncorrelated,
corr
= 0,τ≠0.
When RWH is true, the latest return and all past returns are irrelevant if we attempt to predict future returns using linear predictors. In this case, the variables can be assumed to be a martingale difference and thus expected returns do not depend on the history of time series information.15
The Variance-ratio test of Lo and MacKinlay (1988) is designed to detect either mean
reversion or price trend behaviour. Let xt = log
be the price logarithm (with any
dividends reinvested). Then one-period returns are rt = xt - xt-1. N-period returns are
rt + ... + rt+N-1 = xt+N-1 - xt-1. Also, assuming the returns process is stationary, let
V (N) = var
. When RWH is true, V (N) = NV (1). The test attempts to
decide if this property is true. N is any integer, ≥ 2.
For any stationary process, the variance-ratio is

by using the formula for the variance of a linear combination. Consequently, the variance-ratio test is appropriate when any dependence occurs for at least N - 1 lags and when the autocorrelations all have the same sign. It is a good test when the alternative to RWH is an ARMA(1,1) process that have a positive autoregressive parameter for returns.
Implementation of the test requires:
Assume there are n returns.
Step 1 : Calculate the average return and unbiased variance estimates, thus:


Step 2 : Calculate the sample variance ratio as

Reject RWH if V
(N) is far from 1.
Recall that

and

Under H0,E(V
(N)) = 1 and thus V ar(V
(N)) = V ar
. An
appropriate estimate of nV ar(ρτ) is provided by bτ.
Step 3 : Estimate variances for the sample autocorrelations,
τ, of the n returns, for
1 ≤ τ ≤ N - 1, under the assumption that RWH is true.
![n∑-τ n∑-τ 2 2
n t=1 stst+τ n t=1 (rt - ¯r) (rt+τ - ¯r)
bτ = ---n∑------ = ------n∑--------2------,
( st)2 [ (rt - ¯r) ]2
t=1 t=1](Book699x.png)
where st = (rt -
)2.
A very good approximation is given by bτ
1 + 
τ,s, where ku is the sample
kurtosis of the returns rt and
τ,s is the sample autocorrelation at lag τ of the time series
defined by st =
2.
Step 4 : Estimate a variance for the variance-ratio V
(N), under the assumption that
RWH is true.
This is denoted by
. Then
![N∑-1[ 2(N - τ)]2
vN = -------- bτ = nV ar(V ˆR).
τ=1 N](Book6109x.png)
Equivalently,

Step 5 : Calculate the test statistic,

The asymptotic distribution of this statistic is N(0,1) when RWH is true.
Monte Carlo experiment
To study the performance of this test, let us consider a first simulation study (see Simulation_VR.ox). We simulate 1000 series of T = 2000 observations following a N-AR(0) model with μ = 0.1, i.e. (yt -μ) = εt, where εt ~ N(0,σ2) and σ = 0.2. We than apply the Variance-ratio test with N = 2,3 and 10. The 1000 realisations of the VR statistics are plotted in Figure 3.6 while the empirical distribution of the VR statistics is plotted in Figure 3.7 (together with a N(0,1)).
We see from Figure 3.6 that the VR statistics varies between -3 and 3. Furthermore, Figure 3.7 suggests that the VR statistics is close to be standard normal distributed.
The number of times that the null is rejected at the α% nominal size (called the empirical size of the test) is reported below.
These results suggest that the test suffers from a minor size distortion for the three considered values of M.
To study the power of the test, we now simulate T = 2000 observations of a N-AR(1) model with μ = 0.1 and ρ = 0.1, i.e. (1 - ρL)(yt - μ) = εt, where εt ~ N(0,σ2) and σ = 0.2. To obtain this configuration of the model, chose the following options:
The empirical distribution of the VR statistics (under the alternative) is plotted in Figure 3.8 (together with a N(0,1)).
Both Figure 3.8 and the output here below suggest that the VR test has good power to detect the presence of serial correlation in the series.
A potential weakness of the VR test is that it assumes a constant variance while it is clear that most financial time series do not have constant conditional variance. To study the impact of the presence of GARCH effects on the VR test, let us now simulate T = 2000 observations of a N-AR(0)-GARCH(1,1) model with μ = 0.1, i.e. (yt - μ) = εt, where εt ~ N(0,σt2), σt2 = ω + α1εt-12 + β1σt-12 with ω = 0.2,α1 = 0.1 and β1 = 0.8.
Again, we simulate 1000 series following this DGP and apply the VR test with the same values for M.
Chose now the following options in Simulation_VR.ox:
The empirical distribution of the VR statistics is plotted in Figure 3.9 and the empirical size in the output just below. The main conclusion is that the presence of GARCH effects has a negligible impact on the size of the test.
However, the power of the test is slightly affected by the presence of GARCH effects. Indeed, adding an AR(1) component to this GARCH model (with ρ = 0.05) substantially reduces the power of the test as suggested below.
To obtain these results, chose the following options in Simulation_VR.ox:
To overcome this problem some authors have proposed to apply the VR test on the rescaled or standardized residuals of a GARCH-type model.
This is illustrated in Simulation_VR_GARCH.ox.
As suggested by the next output, applying the VR test on the rescaled returns restores its original power to the test (i.e. case AR(1) without GARCH effects).
See Taylor (1995) for more details about the VR tests as well as some applications on real data.
Another popular test of the RMH is the Runs test, first used by Fama (1965). The runs test (also called Wald-Wolfowitz test) is a non-parametric test that checks the randomness hypothesis of a two- or three-valued data sequence. Similar to a first-autocorrelation test but is non-parametric and does not require any assumption of normality and stationary distribution. A run’ is a sequence of adjacent equal elements. For example, the sequence “1111000111001111110000” is divided in six runs, three of which consist of 1’s and the others of 0’s. If the 1’s and 0’s alternate randomly, the number of runs is a random variable whose asymptotic distribution is N.
Let qt be the sign of the return rt, qt is 1,0,-1, respectively for positive, zero, negative values of rt. Let ct be 1 if qt≠qt+1 and 0 otherwise. The total number of runs of all types is

Suppose there are n1 positive returns, n2 zero returns, and n3 negative returns in a
series of n returns (with 0 mean → apply the test on rt -
). Then the mean and
variance of the random variable generating C, conditional upon n1, n2, and n3,
are

when the signs qt are generated by i.i.d. variables (Mood, 1940).
The statistic C has an approximate normal distribution, for large n. Tests can then be decided by evaluating

with RWH rejected at the 5% level if |K| > 1.96. The Runs test avoids all the problems created by conditional heteroskedasticity. Note that trends in prices (vs. no trend) would give fewer runs than expected.
To study the performance of the Runs test, let us consider a first simulation study (see Simulation_VR.ox). We simulate 1000 series of T = 2000 observations following a N-AR(0) model with μ = 0.1, i.e. (yt - μ) = εt, where εt ~ N(0,σ2) and σ = 0.2. We than apply the Variance-ratio test with N = 2,3 and 10. The empirical distribution of the K statistics is plotted in Figure 3.10 (together with a N(0,1)).
The output reported here below also suggests that the test has a correct size at the three chosen significance levels. Results not reported here suggest (as expected) that the test is not affected by the presence of GARCH effects.
Let us now study the power of the Runs test by considering a N-AR(1) model. The results suggest that this tests suffers from a reduction in power (compared to the VR test on the same DGP) due to the loss of information in the transformation form returns to their signs.
Range statistics that have power to detect long-term dependence were first developed for hydrological data by Hurst (1951) and later applied to financial returns.
Lo (1991) provides many references and a rigorous description of appropriate tests when
the preferred alternative to randomness is long-term dependence. The range defined by a set
of returns
:
![[ ] [ ]
∑T T∑
Mn = 1m≤aTx≤n (rt - ¯r) - 1m≤iTn≤n (rt - ¯r) .
t=1 t=1](Book6117x.png)
R/S-test statistics are ranges divided by scaled standard deviations

Two special cases define Mandelbrot (1972)’s and Lo (1991)’s test statistics:

and

with s2 the sample variance of returns.
Under certain assumptions, the distributions of these statistics converge, as n and q increase, to that of the range of a Brownian bridge on the unit interval. The rule is the following: do not reject the null when
![]() | [0.861 ; 1.747] | at the 10% level |
![]() | [0.809 ; 1.862] | at the 5% level |
![]() | [0.721 ; 2.098] | at the 1% level |
The null hypothesis of an uncorrelated process can be tested using (R∕S)Man, and Lo focuses on the null hypothesis of a short memory process and then the appropriate test statistic is (R∕S)LO .
To study the performance of the R/S tests, let us consider the following simulation study (see Simulation_RS.ox). We simulate 1000 series of T = 2000 observations following a N-AR(0) model with μ = 0.1, i.e. (yt - μ) = εt, where εt ~ N(0,σ2) and σ = 0.2. We than apply the (R∕S)Man test and the (R∕S)LO test with q = 10 and 20.
The empirical size of the tests is reported below. The results suggest that the test is perfectly sized.
The next output corresponds to the AR(1) case with ρ = 0.05, obtained with the following options
It is clear that the tests have no power against short memory processes.
With a much higher value of ρ, i.e. ρ = 0.5, we see that the statistics of Lo (1991) is close to its nominal size while the one of Mandelbrot (1972) has some power to detect short memory.
Results not reported here suggest that theses two statistics are not affected by the presence of GARCH effects.
To study the ability of the (R∕S)LO statistics to detect long range dependance, we now use the ARFIMA package of Doornik and Ooms (1999) to simulate T = 2000 observations of a N-ARFIMA(0,0.2,0) model with μ = 0.1, i.e. (1 - L)0.2(yt - μ) = εt, where εt ~ N(0,σ2) and σ = 0.2.
This results of this simulation have been obtained using example file Simulation_RS.ox with the following options:
The next output suggests that the (R∕S)LO statistics indeed has power to detect long-memory.
While Engle (1982) is certainly the most important contribution in financial econometrics, the ARCH model is rarely used in practice due to its simplicity.
A useful generalization of this model is the GARCH model introduced by Bollerslev (1986). This model is also a weighted average of past squared residuals, but it has declining weights that never go completely to zero. This model is more parsimonious than the ARCH and, even in its simplest form, has proven surprisingly successful in predicting conditional variances.
The GARCH model is not the only extension. Indeed, G@RCH 6.1 proposes no less than 12 specifications. As shown below, choosing an alternative model is extremely easy in G@RCH.
The Generalized ARCH (GARCH) model of Bollerslev (1986) is based on an infinite ARCH specification and it allows to reduce the number of estimated parameters by imposing nonlinear restrictions on them. The GARCH (p,q) model can be expressed as:
![]() | (4.1) |
Using the lag (or backshift) operator L, the GARCH (p,q) model becomes:
![]() |
with α(L) = α1L + α2L2 + … + αqLq and β(L) = β1L + β2L2 + … + βpLp.

If all the roots of the polynomial |1 - β(L)| = 0 lie outside the unit circle, we have:
![]() | (4.2) |
which may be seen as an ARCH(∞) process since the conditional variance linearly depends on all previous squared residuals. In this case, the conditional variance of yt can become larger than the unconditional variance given by

Applying variance targeting to the GARCH model implies replacing ω by σ2
,
where σ2 is the unconditional variance of εt, which can be consistently estimated by its sample
counterpart.1
Bollerslev (1986) has shown that for a GARCH(1,1) with normal innovations, the
kurtosis of y is 3[1 - (α1 + β1)2]∕
> 3. The autocorrelations
of εt2 have been derived by Bollerslev (1986). For a stationary GARCH(1,1),
ρ1 = α1 + [α12β1∕(1 - 2α1β1 - β12)], and ρk = (α1 + β1)k-1ρ1, ∀k = 2,3,…
In other words, the autocorrelations decline exponentially with a decay factor of
α1 + β1.
As in the ARCH case, some restrictions are needed to ensure σt2 to be positive for all t.
Bollerslev (1986) shows that imposing ω > 0, αi ≥ 0 (for i = 1,…,q) and βj ≥ 0 (for
j = 1,…,p) is sufficient for the conditional variance to be positive. In practice, the GARCH
parameters are often estimated without the positivity constraints. Nelson and Cao (1992)
argue that imposing all coefficients to be nonnegative is too restrictive and that
some of these coefficients are found to be negative in practice while the conditional
variance remains positive (by checking on a case-by-case basis). Consequently, they
relaxed this constraint and gave sufficient conditions for the GARCH(1,q) and
GARCH(2,q) cases based on the infinite representation given in Equation (4.2). Indeed, the
conditional variance is strictly positive provided ω
-1 is positive and all
the coefficients of the infinite polynomial α(L)
-1 in Equation (4.2)
are nonnegative. The positivity constraints proposed by Bollerslev (1986) can be
imposed during the estimation (see Section 3.9). If not, these constraints, as well as
the ones implied by the ARCH(∞) representation, will be tested a posteriori and
reported in the output (if there is no explanatory variable in the conditional variance
equation).
Estimation results of an ARMA(1,0)-GARCH(1,1) model by QML are reported in the next Output (labelled Box 6).
Interestingly, the log-likelihood now equals -5370.858 against -6106.357 for the corresponding ARCH(1) model. Any likelihood ratio test (LRT), asymptotically ~ χ2(1), would reject the ARCH(1) model in favour of the GARCH(1,1).
Furthermore, we report below the same 6 misspecification tests as for the ARCH(1) model. The output is reported in Box 7 - Misspecification Tests.
Unlike the ARCH(1) model, the Q-Statistics on standardized and squared standardized residuals, as well as the RBD test with various lag values suggest that the GARCH(1,1) does a good job in modelling the dynamics of the first two conditional moments of the NASDAQ.
However, the adjusted Pearson Chi-square goodness-of-fit test (with different cell numbers) still points out some misspecification of the overall conditional distribution.
Several authors have proposed to use a Student-t or GED distribution in combination with a GARCH model to model the fat tails of the high-frequency financial time-series. Furthermore, since the NASDAQ seems to be skewed, a skewed-Student distributions might be justified (see Section 6 for a discussion about non-normal distributions).
The Exponential GARCH (EGARCH) model, originally introduced by Nelson (1991), is re-expressed in Bollerslev and Mikkelsen (1996) as follows:
![]() | (4.3) |
The value of g(zt) depends on several elements. Nelson (1991) notes that, “to accommodate the asymmetric relation between stock returns and volatility changes (...) the value of g(zt) must be a function of both the magnitude and the sign of zt”.2 That is why he suggests to express the function g(.) as
![]() | (4.4) |
E
depends on the assumption made on the unconditional density of zt. Indeed, for the
normal distribution,
![]() | (4.5) |
For the skewed-Student distribution,
![]() | (4.6) |
where ξ = 1 for the symmetric Student.
For the GED, we have
![]() | (4.7) |
ξ,υ and λυ concern the shape of the non-normal densities and was defined in Section 3.6.2.
Note that the use of a log transformation of the conditional variance ensures that σt2 is always positive.
Applying variance targeting to the EGARCH model implies replacing ω by log(σ2), where σ2 is the unconditional variance of εt, which can be consistently estimated by its sample counterpart.3
The output reported below corresponds to the ARMA(1,0)-EGARCH(1,1) with a GED distribution. Interestingly, both θ1 and θ2 are significant. Note that the degree of freedom of the GED distribution is significantly lower than 2, confirming that the standardized residuals are fat-tailed.
This popular model is proposed by Glosten, Jagannathan, and Runkle (1993). Its generalized version is given by:
![]() | (4.8) |
where St- is a dummy variable that take the value 1 when γi is negative and 0 when it is positive.
In this model, it is assumed that the impact of εt2 on the conditional variance σt2 is different when εt is positive or negative. The TGARCH model of Zakoian (1994) is very similar to the GJR but models the conditional standard deviation instead of the conditional variance. Ling and McAleer (2002) provide, among other stationarity conditions for various GARCH models, the conditions of existence of the second and fourth moment of the GJR.
Applying variance targeting to the GJR model implies replacing ω by
σ2
, where σ2 is the unconditional variance of
εt, which can be consistently estimated by its sample counterpart and E(St-) is
0.5 for symmetric distributions (i.e. Normal, Student and GED) and
for the
SKST.4
A nice feature of the GJR model is that the null hypothesis of no leverage effect is easy to test. Indeed, γ1 = … = γq = 0 implies that the news impact curve is symmetric, i.e. past positive shocks have the same impact on today’s volatility as past negative shocks.
The output reported below suggests the presence of such an effect on the NASDAQ since
1 = 0.107988 with a robust t-value of 2.826.
This model has been introduced by Ding, Granger, and Engle (1993). The APARCH (p,q) model can be expressed as:
![]() | (4.9) |
where δ > 0 and -1 < γi < 1 (i = 1,...,q).
The parameter δ plays the role of a Box-Cox transformation of σt while γi reflects the so-called leverage effect. Properties of the APARCH model are studied in He and Teräsvirta (1999a, 1999b).
The APARCH includes seven other ARCH extensions as special cases:5
Following Ding, Granger, and Engle (1993), if ω > 0 and ∑
i=1qαi E(
- γiz)δ+∑
j=1pβj < 1,
a stationary solution for Equation (4.9) exists and is expressed as:
![]() | (4.10) |
Notice that if we set γ = 0, δ = 2 and if zt has zero mean and unit variance, we have the usual stationarity condition of the GARCH(1,1) model (α1 + β1 < 1). However, if γ≠0 and/or δ≠2, this condition depends on the assumption made on the innovation process.
Ding, Granger, and Engle (1993) derive a closed form solution to κi = E
δ in
the Gaussian case. Lambert and Laurent (2001) show that for the standardized
skewed-Student:6

For the GED, we can show that:
![δ δ δ-υ- δ+1 δ
κi = [(1+-γi)+-(1-γi)]12υ-Γ (-υ-)λυ-.
Γ (υ)](Book6155x.png)
Note that ξ,υ and λυ concern the shape of the non-normal densities and was defined in Section 3.6.2.
Applying variance targeting to the APARCH model implies replacing
ω by σδ
, where σ is the unconditional standard
deviation of εt, which can be consistently estimated by its sample
counterpart.7
Once again, the APARCH model suggest the presence of a leverage effect on the
NASDAQ (see Box 10). Importantly, δ is significantly different from 2 (
= 1.146366) but
not significantly different from 1. This suggests that, instead of modelling the conditional
variance (GARCH), it is more relevant in this case to model the conditional standard
deviation. This result is in line with those of Taylor (1986), Schwert (1990) and Ding,
Granger, and Engle (1993) who indicate that there is substantially more correlation between
absolute returns than squared returns, a stylized fact of high frequency financial returns (often
called ‘long memory’).
In many high-frequency time-series applications, the conditional variance estimated using a GARCH(p,q) process exhibits a strong persistence, that is:

If ∑ j=1pβj + ∑ i=1qαi < 1, the process (εt) is second order stationary, and a shock to the conditional variance σt2 has a decaying impact on σt+h2, when h increases, and is asymptotically negligible. Indeed, let us rewrite the ARCH(∞) representation of the GARCH(p,q), given in Equation (4.2), as follows:
![]() | (4.11) |
where ω* = ω
-1, λ(L) = α(L)
-1 = ∑
i=1∞λiLi and λi are lag
coefficients depending nonlinearly on αi and βi. For a GARCH(1,1), λi = α1β1i-1. Recall
that this model is said to be second order stationary provided that α1 + β1 < 1 since it
implies that the unconditional variance exists and equals ω∕(1 - α1 - β1). As
shown by Davidson (2004), the amplitude of the GARCH(1,1) is measured by
S = ∑
i=1∞λi = α1∕(1 - β1), which determines “how large the variations in the
conditional variance can be” (and hence the order of the existing moments). This
concept is often confused with the memory of the model that determines “how long
shocks to the volatility take to dissipate”. In this respect, the GARCH(1,1) model has
a geometric memory ρ = 1∕β1, where λi = O
. In practice, we often find
α1 + β1 = 1. In this case, we are confronted with an Integrated GARCH (IGARCH)
model.
The GARCH(p,q) model can be expressed as an ARMA process. Using the lag operator L, we can rearrange Equation (4.1) as:
![2 ( 2 2)
[1- α (L )- β(L)]εt = ω+ [1- β (L )] εt - σt .](Book6166x.png)
When the
polynomial contains a unit root, i.e. the sum of all the αi
and the βj is one, we have the IGARCH(p,q) model of Engle and Bollerslev (1986). It can
then be written as:
![]() | (4.12) |
where ϕ(L) =
(1 - L)-1 is of order max{p,q}- 1.
We can rearrange Equation (4.12) to express the conditional variance as a function of the squared residuals. After some manipulations, we have its ARCH(∞) representation:
![]() | (4.13) |
For this model, S = 1 and thus the second moment does not exist. However, this process is still short memory. To show this, Davidson (2004) considers an IGARCH(0,1) model defined as εt = σtzt and σt2 = εt-12. This process is often wrongly compared to a random walk since the long-range forecast σt+h2 = εt2, for any h. However εt = ztεt-1 which means that the memory of a large deviation persists for only one period.
In October 1994, the risk management group at J.P. Morgan released a technical document describing its internal market risk management methodology (J.P.Morgan, 1996). This methodology, called RiskMetricsTM soon became a standard in the market risk measurement due to its simplicity.
Basically, the RiskMetricsTM model is an IGARCH(1,1) model where the ARCH and GARCH coefficients are fixed.
The model is given by:
![]() | (4.14) |
where ω = 0 and λ is generally set to 0.94 with daily data and to 0.97 with weekly data.8 Note also that Equation 4.14 is the very basic conditional variance model of the RiskMetricsTM methodology, but there exist many extensions of the original model. See the RiskMetrics Group website for details.
To illustrate the need for flexible ARCH-type models, here is the output of the Box-Pierce test on squared standardized residuals and the RBD test applied after the estimation of the RiskMetrics model (including an AR(1) term and the two dummy variables). There is no doubt that the RiskMetrics specification is not appropriate.
Volatility tends to change quite slowly over time, and, as shown in Ding, Granger, and Engle (1993) among others, the effects of a shock can take a considerable time to decay.9 Therefore the distinction between stationary and unit root processes seems to be far too restrictive. Indeed, the propagation of shocks in a stationary process occurs at an exponential rate of decay (so that it only captures the short-memory), while for an unit root process the persistence of shocks is infinite. In the conditional mean, the ARFIMA specification has been proposed to fill the gap between short and complete persistence, so that the short-run behavior of the time-series is captured by the ARMA parameters, while the fractional differencing parameter allows for modelling the long-run dependence.10
To mimic the behavior of the correlogram of the observed volatility, Baillie, Bollerslev,
and Mikkelsen (1996) (hereafter denoted BBM) introduce the Fractionally Integrated
GARCH (FIGARCH) model by replacing the first difference operator of Equation (4.13) by
d.
The conditional variance of the FIGARCH (p,d,q) is given by:
![]() | (4.15) |
or σt2 = ω* + ∑
i=1∞λiLiεt2 = ω* + λ(L)εt2, with 0 ≤ d ≤ 1. It is fairly easy to show
that ω > 0,β1 - d ≤ ϕ1 ≤
and d
≤ β1
are sufficient to
ensure that the conditional variance of the FIGARCH (1,d,1) is positive almost surely for all
t. Setting ϕ1 = 0 gives the condition for the FIGARCH (1,d,0). See Section 3.9 to see how
to impose these constraints.
When estimating a FIGARCH (1,d,1) model by QML on the NASDAQ dataset (see the next output, labelled Box 11), one sees that d is significantly different from 0 and 1 while ϕ1 is barely significant. Importantly, comparing its log-likelihood with the one of the simple GARCH(1,1), i.e. -5359.179 vs. -5370.858, justifies the use of a long-memory process in the conditional variance.
Davidson (2004) notes the interesting and counterintuitive fact that the memory parameter of this process is -d, and is increasing as d approaches zero, while in the ARFIMA model the memory increases when ζ increases. According to Davidson (2004), the unexpected behavior of the FIGARCH model may be due less to any inherent paradoxes than to the fact that, embodying restrictions appropriate to a model in levels, it has been transplanted into a model of volatility. The main characteristic of this model is that it is not stationary when d > 0. Indeed,
where c1(d) = d,c2(d) =
d(1 -d), etc. By construction, ∑
k=1∞ck(d) = 1 for any value
of d, and consequently, the FIGARCH belongs to the same “knife-edge-nonstationary” class
represented by the IGARCH model. To test whether this nonstationarity feature holds,
Davidson (2004) proposes a generalized version of the FIGARCH and calls it the
HYperbolic GARCH. The HYGARCH is given by Equation (4.15), when λ(L) is replaced
by 1 -
-1ϕ(L)
. Note that G@RCH reports log(α) and not α.
The ck(d) coefficients are thus weighted by α. Interestingly, the HYGARCH nests the
FIGARCH when α = 1 (or equivalently when log(α) = 0) and the process is stationary when
α < 1 (or equivalently when log(α) < 0) in which case the GARCH component
observes the usual covariance stationarity restrictions (see Davidson, 2004 for more
details).
Note that when estimating the HYGARCH model on the NASDAQ dataset (see the
next output, labelled Box 12), one cannot reject the FIGARCH specification in
favour of the HYGARCH since
= -0.006962 with a robust standard error of
0.029515.
Chung (1999) underscores some additional drawbacks in the BBM model: there is a structural problem in the BBM specification since the parallel with the ARFIMA framework of the conditional mean equation is not perfect, leading to difficult interpretations of the estimated parameters. Indeed the fractional differencing operator applies to the constant term in the mean equation (ARFIMA) while it does not in the variance equation (FIGARCH). Chung (1999) proposes a slightly different process:
![]() | (4.17) |
where σ2 is the unconditional variance of εt .
Applying variance targeting to this model implies replacing σ2 its sample counterpart.
If we keep the same definition of λ
as in Equation (4.15), we can formulate the
conditional variance as:
![2 2 { -1 d} ( 2 2)
σt = σ + 1- [1- β(L)] ϕ(L )(1- L ) εt - σ](Book6184x.png)
or
![]() | (4.18) |
Chung (1999) shows that σ2 > 0 and 0 ≤ ϕ1 ≤ β1 ≤ d ≤ 1 is sufficient to ensure the positivity of Equation (4.18) when p = q = 1.11
λ
is an infinite summation which, in practice, has to be truncated. BBM propose to
truncate λ
at 1000 lags (this truncation order has been implemented as the default value
in our package, but it may be changed by the user) and replace the unobserved εt2’s by the
empirical counterpart of E(εt2), i.e. 1∕T ∑
t=1T
t2. Contrary to BBM, Chung (1999)
proposes to truncate λ
at the size of the information set (T - 1) and to initialize the
unobserved
at 0 (this quantity is small in absolute values and has a zero
mean).12
Recently, Conrad and Haag (2006) and Conrad (2007) have derived non-negativity
conditions for FIGARCH and HYGARCH models (respectively). Thanks to
Christian Conrad, these conditions are implemented in the following examples:
Stat_Constr_FIGARCH_Conrad_Haag_Check.ox and
Stat_Constr_HYGARCH_Conrad_Check.ox for a FIGARCH and HYGARCH(1,d,1)
respectively. While the conditions are tested on the estimated parameters in the previous two
example files, the conditions are imposed during the estimation in the next two, i.e.
Stat_Constr_FIGARCH_Conrad_Haag_Impose.ox and
Stat_Constr_HYGARCH_Conrad_Impose.ox.
The idea of fractional integration has been extended to other GARCH types of models, including the Fractionally Integrated EGARCH (FIEGARCH) of Bollerslev and Mikkelsen (1996) and the Fractionally Integrated APARCH (FIAPARCH) of Tse (1998).13
Similarly to the GARCH(p,q) process, the EGARCH(p,q) of Equation (4.3) can be
extended to account for long memory by factorizing the autoregressive polynomial
= ϕ(L)(1 - L)d where all the roots of ϕ(z) = 0 lie outside the unit circle. The
FIEGARCH (p,d,q) is specified as follows:
![]() | (4.19) |
Finally, the FIAPARCH (p,d,q) model can be written as:14
![]() | (4.20) |
To illustrate, the next outputs, labelled Box 13 and 14, report the estimation results of a FIAPARCH(1,d,1) and a FIEGARCH(1,d,1) respectively. Once again, long-memory is detected in the conditional variance equation.
Like for the simple ARCH(q) model, it is rather easy to obtain h-step-ahead forecasts of
these more complicated models. In the simple GARCH(p,q) case, the optimal h-step-ahead
forecast of the conditional variance, i.e.
t+h|t2 is given by:
![]() | (4.21) |
where εt+i|t2 = σt+i|t2 for i > 0 while εt+i|t2 = εt+i2 and σt+i|t2 = σt+i2 for i ≤ 0. Equation (4.21) is usually computed recursively, even if a closed form solution of σt+h|t2 can be obtained by recursive substitution in Equation (4.21).
Similarly, one can easily obtain the h-step-ahead forecast of the conditional variance of an ARCH, IGARCH and FIGARCH model. By contrast, for thresholds models, the computation of out-of-sample forecasts is more complicated. Indeed, for EGARCH, GJR and APARCH models (as well as for their long-memory counterparts), the assumption made on the innovation process may have an effect on the forecast (especially for h > 1).
For instance, for the GJR (p,q) model, we have
![]() | (4.22) |
When γi = 0 for all i, we obtain the forecast of the GARCH model. Otherwise,
St-i+h|t- has to be computed. Note first that St+i|t- = St+i- for i ≤ 0. However, when
i > 0, St+i|t- depends on the choice of the distribution of zt. When the distribution of zt is
symmetric around 0 (for the Gaussian, Student and GED density), the probability that εt+i is
negative is St+i|t- = 0.5. If zt is (standardized) skewed-Student distributed with asymmetry
parameter ξ and degree of freedom υ, St+i|t- =
since ξ2 is the ratio of probability
masses above and below the mode.
For the APARCH (p,q) model,
where E
= κiσt+k|t
, for k > 1 and κi = E
(see
Section 3.6.2).
For the EGARCH (p,q) model,
where ĝ(zt+k|t) = ĝ(zt+k) for k ≤ 0 and 0 for k > 0.Finally, the h-step-ahead forecast of the FIAPARCH and FIEGARCH models are obtained in a similar way.
As explained in Section 3.9, it is possible to constrain the parameters to range between a lower and an upper bound by selecting the option MaxBFGS - Bounded Parameters in the Estimate window.

If the user selects the option Select (Individual or Matrix Form) in the Starting Values window, the program automatically opens a new box dialog before launching the estimation. Analogous to the procedure for the starting values, the user can change the bounds manually.
In the following example, an APARCH specification has been used. By default, we propose to impose the constraints -1 < γi < 1, ∀i = 1,…,q and 0 < δ < 3.
Finally, if the option MaxSA - Unbounded Parameters is selected in the Model Settings window, a new box dialog appears before the estimation.15 In this box dialog, the user may change the default values of the parameters used in the simulated annealing algorithm.

Simulated annealing is a global optimization method that potentially distinguishes
between different local optima. Starting from an initial point, the algorithm takes a step and
the function is evaluated. When minimizing a function, any downhill step is accepted and the
process repeats from this new point. An uphill step may be accepted. Thus, it can escape from
local optima. This uphill decision is made by the Metropolis criteria. As the optimization
process proceeds, the length of the steps declines and the algorithm closes in on the
global optimum. Since the algorithm makes very few assumptions regarding the
function to be optimized, it is quite robust with respect to non-quadratic surfaces. The
degree of robustness can be adjusted by the user. In fact, simulated annealing can be
used as a local optimizer for difficult functions. This implementation of simulated
annealing is used in Goffe, Ferrier, and Rogers (1994). Briefly, it is found to be
competitive, if not superior, to multiple restarts of conventional optimization routines
for difficult optimization problems. The price to pay is that it is slower than the
previous two techniques. A comprehensive help is available on the MaxSA web
page:
www.tinbergen.nl/~cbos/software/maxsa.html.


McCullough and Vinod (1999) and Brooks, Burke, and Persand (2001) use the daily German mark/British pound exchange rate data of Bollerslev and Ghysels (1996) to compare the accuracy of GARCH model estimation among several econometric softwares. They choose the GARCH(1,1) model described in Fiorentini, Calzolari, and Panattoni (1996) (hereafter denoted FCP) as the benchmark. In this section, we use the same methodology with the same dataset to check the accuracy of our procedures. Coefficients and standard errors estimates of G@RCH 4.2 are reported in Table 4.1 together with the results of McCullough and Vinod (1999) (FCP in the table).
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
G@RCH gives very satisfactory results since the first four digits (at least) are the same as those of the benchmark for all but two estimations.
Moreover, to investigate the accuracy of our forecasting procedures, we have run a 8-step ahead forecasts of the model, similar to Brooks, Burke, and Persand (2001). Table 4 in Brooks, Burke, and Persand (2001) reports the conditional variance forecasts given by six well-known softwares and the correct values. G@RCH hits the benchmarks for all steps to the third decimal.
Finally, Lombardi and Gallo (2001) extends the work of Fiorentini, Calzolari, and Panattoni (1996) to the FIGARCH model of Baillie, Bollerslev, and Mikkelsen (1996) and develops the analytic Hessian matrices of this long memory process. For the same DEM/UKP database as in the previous example, Table 4.2 reports the coefficients estimates and their standard errors for our package (using numerical gradients and the BFGS optimization method) and for Lombardi and Gallo (2001) (using analytical gradients and the Newton-Raphson algorithm).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Results show that G@RCH provides excellent numerical estimates that are quite close to the analytical ones, even for an advanced model such as the FIGARCH.16
G@RCH 6.1 allows the simulation of four models, namely the GARCH, GJR, APARCH and EGARCH models. An ARMA specification is allowed in the conditional mean and four different distributions are available for the error term, i.e. a normal, Student, GED or skewed-student.
Simulation can be done either in ox or through the rolling menus. Simul_Garch.ox is an example of Ox code using the Garch class. Alternatively to simulate a GARCH model using the rolling menus, click on G@RCH in the Modules group in the workspace window on the left-hand side of OxMetrics. Then change the Category to Monte Carlo and Model Class to Simulation of GARCH Models and click on Formulate.

Then, select the model of interest and change the default values of the corresponding parameters (next window). The simulated series can be stored in a separate dataset and are plotted if requested.


![]()
|
G@RCH is primarily a menu-driven module for OxMetrics. However, there are two additional ways of estimating GARCH-type models with G@RCH. The first makes use of the batch facilities of OxMetrics. In the second, an Ox program is written that imports the Garch class code into the program.
This chapter is devoted to the illustration of these two methods. No detailed analysis of the results will be undertaken as we concentrate on the mechanics of the procedures.
A useful feature in G@RCH 6.1 is the possibility to use the algebra and batch languages in OxMetrics (see the OxMetrics handbook for more details). The batch language gives some control over OxMetrics through a command language. This allows for automating repetitive tasks, or as a quick way to get to a certain point in your analysis. The syntax of these commands is described below.
There are five ways of running Batch commands.
The most intuitive way is probably to estimate a model first and then click on Tools/Batch Editor ... in OxMetrics (or Alt+b). Then, a new box dialog appears with the batch code corresponding to this model. To illustrate, the next picture shows part of the batch code corresponding to a simple (without explanatory variable) ARMA(1,0)-GARCH(1,1) model.

To estimate a slightly different model, one has to change the batch code accordingly. Here is an example batch code used to estimate an ARMA(1,1)-GJR(1,1) model using the same database (note that only the commands ARMA_ORDERS() and MODEL() have been modified).
Here is a list of G@RCH specific commands (see Section 10.3 - G@RCH Members Functions for more details on these options).
Here is another example batch code.
Feel free to contact us if you need more flexibility for the batch mode.
This section explains how to use the Garch class in Ox. We assume that you have installed Ox (version 5 or later). For more details about Ox, see Jurgen Doornik’s web site (http://www.doornik.com).
G@RCH is build upon the concept of object-oriented programming. For non specialists, object-oriented programming might sound rather daunting at first. But it is in fact quite easy to get the whole picture.
A major component of object-oriented programming is the “class”. Several useful classes are supplied with Ox, such as Database, Modelbase and Simulation classes. Garch is an additional class that helps in the estimation of GARCH-type models. Section 10.1 provides additional details on this concept.
GarchEstim.ox is an example of Ox code using the Garch class. As file editor, we strongly recommend to use OxMetrics or OxEdit.1
The GarchEstim.ox file is displayed in the following Box.
Let us study this file more in details. The #import statement indicates that this file is linked to the Garch.oxo and Garch.h files. In the body of the file (after the main() instruction), a new Garch object is first created and a database is loaded. The user has to enter the correct path of the database, but also has to pay attention to the structure of the database to be used. For instance, to use a Microsoft Excel file, the format of the spreadsheet is of crucial importance. The following convention has to be adopted when loading an Excel spreadsheet: variables are in columns, columns with variables are labelled, there is an unlabelled column containing the dates (with the form Year-Period) and the data form a contiguous sample. Here is an example:2
|
|
OxMetrics also supports databases having a date variable which provides the dates for daily data (or possibly times for higher frequencies). Then selections are made by date, and the dates shown in the graphics. Dates can be read from and saved to Excel files.
We note then that the dependent variable (Y), the regressor(s) in the mean equation (X) and the regressor(s) in the variance equation (Z) are specified with the Select function. Ox being case-sensitive, the exact name of the variable has to be entered. The second and third arguments denote the starting and ending observations to be considered. By default, “0” and “0” mean that all the observations are selected. From this selection, a sample can be extracted with the SetSelSample function. The arguments are ordered as (StartYear, StartPeriod, EndYear, EndPeriod2) and the default (-1, 1, -1, 1) means all the selected observations.3
The GarchEstim.ox file is made up of six parts:4
If you want to use the “Console Version” of G@RCH 6.1 , all you need is an Ox executable. To illustrate the various ways to run Ox code, we keep our GarchEstim.ox example.
First, you can type
oxl GarchEstim
at the command prompt. This method is mainly for users of Ox Console.
Updating the environment
Skip this section if you managed to run the Ox programs in this booklet. Otherwise, under Windows and Unix you may wish to set the PATH environment variable.
The executable (oxl.exe etc.) is in the ox\bin folder, for example by default it is in:
So, update your PATH variable if necessary.5
Without these, you can still run GarchEstim.ox, but more typing is needed:
The double quotes are required because of the space in the file name.
Alternatively, you may use OxEdit.6 Ox tools should be installed automatically. If not, run ox\bin\oxedit\oxcons.tool. To run the program, use the Modules/Ox (for Ox Console) or Modules/OxRun (OxMetrics), as shown below.

When using OxEdit, OxMetrics is needed to display the graphics but is not mandatory for
running the estimation. Alternatively, graphs can be displayed on the screen using Gnudraw and
Gnuplot. Indeed, G@RCH 6.1 can be combined with Gnudraw, an Ox package meant for creating
GnuPlot7 developed
by Charles Bos.8
The interface is completely based on the OxDraw package (even the
documentation - gnudraw.html - uses the same structure as Jurgen Doornik’s
oxdraw.html).9
Usage of GnuDraw is intended to be simple as the syntax is similar to the original Ox
drawing routines. You just have to add the lines
#include <oxstd.h>
#include <packages/gnudraw/gnudraw.h>
before
#import <packages/Garch6/Garch>.
As GnuPlot can be called automatically from within Ox, ShowDrawWindow can be used,
displaying graphs on screen.
See Cribari-Neto and Zarkos (2003) for a comprehensive overview of the GnuDraw package.
A third possibility is to launch Ox programs directly from OxMetrics, as shown below.10 There are different ways for running an Ox code under OxMetrics. The first way is to use OxRun.


A new feature of G@RCH 6.1 (and OxMetrics 5 in general) is that Ox code can be generated.
The Model/Ox Batch Code command (or Alt+O) activates a new dialog box called ‘Generate Ox Code’ that allows the user to select an item for which to generate Ox code.

The code is than opened in a new window and provided Ox Professional is available, this code can be run, either from OxMetrics, or from OxEdit or the command line. This option is also available for the ‘Descriptive Statistics’ and ‘Simulation’ modules.
OxBatch_1.ox is an example of Ox Batch code generated by G@RCH 6.1 after the estimation of an APARCH model while OxBatch_2.ox and OxBatch_3.ox are two examples of Ox Batch code generated after the use of the ‘Descriptive Statistics’ and ‘Simulation’ modules.
To illustrate the potential of writing Ox code based on G@RCH and its Garch class, we also provide Forecast.ox, an example that estimates an ARMA(1,0)-APARCH(1,1) model on the CAC40. In this program, we analyze the French CAC40 stock index for the years 1995-1999 (1249 daily observations). Daily returns in percentage are defined as 100 times the first difference of the log of the closing prices.
After the estimation of the ARMA(1,0)-APARCH(1,1) model with a skewed-student
likelihood on the first 800 observations, 448 one-step-ahead forecasts of the conditional mean
and conditional variance are computed.
Forecasting Performance
One of the most popular measures to check the forecasting performance of the ARCH-type models is the Mincer-Zarnowitz regression, i.e. ex-post volatility regression:
![]() | (5.1) |
where
t2 is the ex-post volatility,
t2 is the forecasted volatility and a0 and a1 are
parameters to be estimated. If the model for the conditional variance is correctly specified
(and the parameters are known) and if E(
t2) =
t2, we have a0 = 0 and a1 = 1. The R2 of
this regression is often used as a simple measure of the degree of predictability of the
ARCH-type model.
But
t2 is never observed. It is thus common to use
t2 = (yt -y)2, where y is the
sample mean of yt. The R2 of this regression is often lower than 5% and this could lead to
the conclusion that GARCH models produce poor forecasts of the volatility (see,
among others, Schwert, 1990, or Jorion, 1996). But, as described in Andersen and
Bollerslev (1998a), the reason of these poor results is the choice of what is considered as the
“true” volatility. Instead, they propose to compute the daily realized volatility as the sum of
squared intraday returns and use it as the “true” volatility. Actually, Andersen and
Bollerslev (1998a) show that this measure is a more proper one than squared daily returns.
Therefore, using h-minute returns (5-minute for instance), the realized volatility can be
expressed as:
![]() | (5.2) |
where yk,t is the return of the kth h-minutes interval of the tth day and K is the number of h-minutes intervals per day. See Section 7.3 for more details about realized volatility.
Coming back to our illustration, the CAC40 index is computed by the exchange as a weighted measure of the prices of its components and was originally available in our database on an intraday basis with the price index being computed every 15 minutes. For the time period under review, the opening hours of the French stock market were 10.00 am to 5.00 pm, thus 7 hours of trading per day. This translates into 28 intraday returns used to compute the daily realized volatility.11 Because the exchange is closed from 5.00 pm to 10.00 am the next day, the first intraday return is the first difference between the log price at 10.15 am and the log price at 5.00 pm the day before. Then, the intraday data are used to compute the daily realized volatility as the sum of the 28 squared intraday returns as shown in Equation (5.2).
Finally, to compare the adequacy of the different distributions in the selected forecasting model, a well-known tool is the density forecasts tests developed in Diebold, Gunther, and Tay (1998). The idea of density forecasts is quite simple.12 Let fi(yi|Ωi)i=1m be a sequence of m one-step-ahead density forecasts produced by a given model, where Ωi is the conditioning information set, and pi(yi|Ωi)i=1m is the sequence of densities defining the Data Generating Process yi (which is never observed). Testing whether this density is a good approximation of the true density p(.) is equivalent to testing:
![]() | (5.3) |
Diebold, Gunther, and Tay (1998) use the fact that, under Equation (5.3), the probability
integral transform
i = ∫
-∞yifi(t)dt is i.i.d. U(0,1), i.e. independent and identically
distributed uniform. To check H0, they propose to use both a goodness-of-fit test and an
independence test for i.i.d. U(0,1). The i.i.d.-ness property of
i can be evaluated by
plotting the correlograms of
j, for j = 1,2,3,4,..., to detect potential
dependence in the conditional mean, variance, skewness, kurtosis, etc. Departure
from uniformity can also be evaluated by plotting an histogram of
i. According to
Bauwens, Giot, Grammig, and Veredas (2000), a humped shape of the
-histogram
would indicate that the issued forecasts are too narrow and that the tails of the
true density are not accounted for. On the other hand, a U-shape of the histogram
would suggest that the model issues forecasts that either under- or overestimate too
frequently. Moreover, Lambert and Laurent (2001) show that an inverted S shape of the
histogram would indicate that the errors are skewed, i.e. the true density is probably not
symmetric.13
An illustration is provided in Section 5 with some formal tests and graphical tools.
Results
The Mincer-Zarnowitz regression and some out-of-sample density forecast tests (as suggested by Diebold, Gunther, and Tay, 1998) are also performed.
The program Forecast.ox is printed in the next box. This code has been used to
produce Figure 5.1 and the output labelled “Density Forecast Test on Standardized
Forecast Errors”. In the first four panels of Figure 5.1, we show the correlograms of
j, for j = 1,2,3,4, where
is the probability integral transform for the
out-of-sample period (see the paragraph below Equation (5.3) for more details). This
graphical tool has been proposed by Diebold, Gunther, and Tay (1998) to detect
potential remaining dependence in the conditional mean, variance, skewness, kurtosis.
In our example, it seems that the probability integral transform is independently
distributed.