NAG Library Routine Document
g01ewf (prob_dickey_fuller_unit)
1
Purpose
g01ewf returns the probability associated with the lower tail of the distribution for the Dickey–Fuller unit root test statistic.
2
Specification
Fortran Interface
Real (Kind=nag_wp) | :: | g01ewf | Integer, Intent (In) | :: | method, type, n, nsamp | Integer, Intent (Inout) | :: | state(*), ifail | Real (Kind=nag_wp), Intent (In) | :: | ts |
|
C Header Interface
#include <nagmk26.h>
double |
g01ewf_ (const Integer *method, const Integer *typ, const Integer *n, const double *ts, const Integer *nsamp, Integer state[], Integer *ifail) |
|
3
Description
If the root of the characteristic equation for a time series is one then that series is said to have a unit root. Such series are nonstationary.
g01ewf is designed to be called after
g13awf and returns the probability associated with one of three types of (augmented) Dickey–Fuller test statistic:
,
or
, used to test for a unit root, a unit root with drift or a unit root with drift and a deterministic time trend, respectively. The three types of test statistic are constructed as follows:
1. |
To test whether a time series, , for , has a unit root the regression model
is fit and the test statistic constructed as
where is the difference operator, with , and where and are the least squares estimate and associated standard error for respectively. |
2. |
To test for a unit root with drift the regression model
is fit and the test statistic constructed as
|
3. |
To test for a unit root with drift and deterministic time trend the regression model
is fit and the test statistic constructed as
|
All three test statistics:
,
and
can be calculated using
g13awf.
The probability distributions of these statistics are nonstandard and are a function of the length of the series of interest,
. The probability associated with a given test statistic, for a given
, can therefore only be calculated by simulation as described in
Dickey and Fuller (1979). However, such simulations require a significant number of iterations and are therefore prohibitively expensive in terms of the time taken. As such
g01ewf also allows the probability to be interpolated from a look-up table. Two such tables are provided, one from
Dickey (1976) and one constructed as described in
Section 9. The three different methods of obtaining an estimate of the probability can be chosen via the
method argument. Unless there is a specific reason for choosing otherwise,
should be used.
4
References
Dickey A D (1976) Estimation and hypothesis testing in nonstationary time series PhD Thesis Iowa State University, Ames, Iowa
Dickey A D and Fuller W A (1979) Distribution of the estimators for autoregressive time series with a unit root J. Am. Stat. Assoc. 74 366 427–431
5
Arguments
- 1: – IntegerInput
-
On entry: the method used to calculate the probability.
- The probability is interpolated from a look-up table, whose values were obtained via simulation.
- The probability is interpolated from a look-up table, whose values were obtained from Dickey (1976).
- The probability is obtained via simulation.
The probability calculated from the look-up table should give sufficient accuracy for most applications.
Suggested value:
.
Constraint:
, or .
- 2: – IntegerInput
-
On entry: the type of test statistic, supplied in
ts.
Constraint:
, or .
- 3: – IntegerInput
-
On entry: , the length of the time series used to calculate the test statistic.
Constraints:
- if , ;
- if and , ;
- if and , ;
- if and , .
- 4: – Real (Kind=nag_wp)Input
-
On entry: the Dickey–Fuller test statistic for which the probability is required. If
- ts must contain .
- ts must contain .
- ts must contain .
If the test statistic was calculated using
g13awf the value of
type and
n must not change between calls to
g01ewf and
g13awf.
- 5: – IntegerInput
-
On entry: if
, the number of samples used in the simulation; otherwise
nsamp is not referenced and need not be set.
Constraint:
if , .
- 6: – Integer arrayCommunication Array
Note: the actual argument supplied
must be the array
state supplied to the initialization routines
g05kff or
g05kgf.
On entry: if
,
state must contain information on the selected base generator and its current state; otherwise
state is not referenced and need not be set.
On exit: if
,
state contains updated information on the state of the generator otherwise a zero length vector is returned.
- 7: – IntegerInput/Output
-
On entry:
ifail must be set to
,
. If you are unfamiliar with this argument you should refer to
Section 3.4 in How to Use the NAG Library and its Documentation for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value
is recommended. If the output of error messages is undesirable, then the value
is recommended. Otherwise, if you are not familiar with this argument, the recommended value is
.
When the value is used it is essential to test the value of ifail on exit.
On exit:
unless the routine detects an error or a warning has been flagged (see
Section 6).
6
Error Indicators and Warnings
If on entry
or
, explanatory error messages are output on the current error message unit (as defined by
x04aaf).
Errors or warnings detected by the routine:
-
On entry, .
Constraint: , or .
-
On entry, .
Constraint: , or .
-
On entry, .
Constraint: if , .
On entry, .
Constraint: if and , .
On entry, .
Constraint: if and , .
On entry, .
Constraint: if and , .
-
On entry, .
Constraint: if , .
-
On entry,
and the
state vector has been corrupted or not initialized.
-
The supplied input values were outside the range of at least one look-up table, therefore extrapolation was used.
An unexpected error has been triggered by this routine. Please
contact
NAG.
See
Section 3.9 in How to Use the NAG Library and its Documentation for further information.
Your licence key may have expired or may not have been installed correctly.
See
Section 3.8 in How to Use the NAG Library and its Documentation for further information.
Dynamic memory allocation failed.
See
Section 3.7 in How to Use the NAG Library and its Documentation for further information.
7
Accuracy
When
, the probability returned by this routine is unlikely to be accurate to more than
or
decimal places, for
this accuracy is likely to drop to
or
decimal places (see
Section 9 for details on how these probabilities are constructed). In both cases the accuracy of the probability is likely to be lower when extrapolation is used, particularly for small values of
n (less than around
). When
the accuracy of the returned probability is controlled by the number of simulations performed (i.e., the value of
nsamp used).
8
Parallelism and Performance
g01ewf is not threaded in any implementation.
When
or
the probability returned is constructed by interpolating from a series of look-up tables. In the case of
the look-up tables are taken directly from
Dickey (1976) and the interpolation is carried out using
e01saf
and
e01sbf
.
For
the look-up tables were constructed as follows:
(i) |
A sample size, was chosen. |
(ii) |
simulations were run. |
(iii) |
At each simulation, a time series was constructed as described in chapter five of Dickey (1976). The relevant test statistic was then calculated for each of these time series. |
(iv) |
A series of quantiles were calculated from the sample of test statistics. The quantiles were calculated at intervals of between and . |
(v) |
A spline was fit to the quantiles using e02bef. |
This process was repeated for , resulting in splines.
Given the
splines, and a user-supplied sample size,
and test statistic,
, an estimated
-value is calculated as follows:
(i) |
Evaluate each of the splines, at , using e02bef. If, for a particular spline, the supplied value of lies outside of the range of the simulated data, then a third-order Taylor expansion is used to extrapolate, with the derivatives being calculated using e02bcf. |
(ii) |
Fit a spline through these points using e01bef. |
(iii) |
Estimate the -value using e01bff. |
10
Example
See
Section 10 in
g13awf.