ARCHTEST Procedure |
@ARCHTEST does the Engle(1982) test for ARCH effects by regressing the square of a series on its lags and testing the significance of the lags. The null is that the series is mean zero, not serially correlated and has constant variance. This can be used to test the original series for ARCH (or GARCH) by applying it to residuals from a preliminary LINREG (to satisfy the requirement that the series be mean zero and not serially correlated). It can also be used as a diagnostic by applying it to the standardized residuals from GARCH estimation. Note that you apply the procedure to the residuals, not to their squares. (The procedure handles the squaring).
A multivariate version is available with @MVARCHTEST.
Note: it is very common to misinterpret the results of this when it's applied as a preliminary test (not as a diagnostic). The null is that the residuals are homoscedastic. A rejection means that you reject that the variances are constant, but it does not mean the process actually has a ARCH or GARCH error process. For instance, a structural break in the variance (part of the sample high, part low) will trigger a significant result on @ARCHTEST because the larger squared residuals will tend to cluster together in their part of the sample.
@ARCHTEST( options ) series start end
Parameters
|
series |
series to analyze |
|
start, end |
range of series to use. By default, the defined range of series. |
Options
LAGS=(maximum) number of lags [4]
SPAN=spacing between number of lags in a test sequence
SPAN=1 will give a table of tests for all lags from 1 to the LAG option. The default is to test only the value of the LAGS option.
DFC=degrees of freedom correction for tests
By default, 0. If series are the residuals from an ARCH or GARCH, DFC should be the number of ARCH/GARCH parameters.
FORM=[F]/LM
Determines whether F-test or Lagrange multiplier form is used
[PRINT]/NOPRINT
TITLE=title for output ["Test for ARCH in Series xxxx"]
Variables Defined
|
%CDSTAT |
F-statistic for test with the full LAG lags (REAL) |
|
%SIGNIF |
Significance level of %CDSTAT (REAL) |
Example
*
* Verbeek, A Guide to Modern Econometrics, 4th edition
* Illustration 8.11.3 from pp 331-332
*
open data usd.dat
data(format=prn,org=columns) 1 3109 dayoftheweek dlogusd100 monday thursday tuesday wednesday
*
graph(footer="Figure 8.12 Daily change in log $/Euro exchange rate")
# dlogusd100
*
stats dlogusd100
*
linreg dlogusd100 / resids
# constant
*
* Using @ARCHTEST to test for the ARCH effects in the residuals
*
@archtest(lags=1,form=lm) resids
@archtest(lags=6,form=lm) resids
*
* You can also do a single @ARCHTEST to get all lags from 1 to 6:
*
@archtest(lags=6,form=lm,span=1) resids
Sample Output
This is for the last @ARCHTEST in the example, which uses the options LAGS=6 and SPAN=1, so it gives tests with each lag from 1 to 6. Without SPAN, it will be similar but will show just one line in the table.
Note that the default is FORM=F (the output below is for FORM=LM), which will give test statistics which are much smaller (since they are divided through by the degrees of freedom). However, the significance level for the two forms of the test are generally almost identical since these are usually applied to fairly large data sets.
Test for ARCH in RESIDS
Using data from 2 to 3109
Lags Statistic Signif. Level
1 136.315 0.00000
2 145.860 0.00000
3 149.503 0.00000
4 170.331 0.00000
5 188.834 0.00000
6 208.243 0.00000
Copyright © 2026 Thomas A. Doan