 SAS Macros and Functions
 PROBDF Function for Dickey-Fuller Tests

The PROBDF function calculates significance probabilities for Dickey-Fuller tests for unit roots in time series. The PROBDF function can be used wherever SAS library functions can be used, including DATA step programs, SCL programs, and PROC MODEL programs.

### Syntax

PROBDF( x, n < , d < , type > > )

x

is the test statistic.

n

is the sample size. The minimum value of n allowed depends on the value specified for the third argument d. For d in the set (1,2,4,6,12), n must be an integer greater than or equal to ; for other values of d the minimum value of n is 24.

d

is an optional integer giving the degree of the unit root tested for. Specify for tests of a simple unit root . Specify d equal to the seasonal cycle length for tests for a seasonal unit root . The default value of d is 1; that is, a test for a simple unit root is assumed if d is not specified. The maximum value of d allowed is 12.

type

is an optional character argument that specifies the type of test statistic used. The values of type are the following:

SZM

studentized test statistic for the zero mean (no intercept) case

RZM

regression test statistic for the zero mean (no intercept) case

SSM

studentized test statistic for the single mean (intercept) case

RSM

regression test statistic for the single mean (intercept) case

STR

studentized test statistic for the deterministic time trend case

RTR

regression test statistic for the deterministic time trend case

The values STR and RTR are allowed only when . The default value of type is SZM.

### Details

#### Theoretical Background

When a time series has a unit root, the series is nonstationary and the ordinary least squares (OLS) estimator is not normally distributed. Dickey (1976) and Dickey and Fuller (1979) studied the limiting distribution of the OLS estimator of autoregressive models for time series with a simple unit root. Dickey, Hasza, and Fuller (1984) obtained the limiting distribution for time series with seasonal unit roots.

Consider the (p +1)th order autoregressive time series and its characteristic equation If all the characteristic roots are less than 1 in absolute value, is stationary. is nonstationary if there is a unit root. If there is a unit root, the sum of the autoregressive parameters is 1, and hence you can test for a unit root by testing whether the sum of the autoregressive parameters is 1 or not. The no-intercept model is parameterized as where and  The estimators are obtained by regressing on . The t statistic of the ordinary least squares estimator of is the test statistic for the unit root test.

If the type argument value specifies a test for a nonzero mean (intercept case), the autoregressive model includes a mean term . If the type argument value specifies a test for a time trend, the model also includes a time trend term and the model is as follows: For testing for a seasonal unit root, consider the multiplicative model Let . The test statistic is calculated in the following steps:

1. Regress on to obtain the initial estimators and compute residuals . Under the null hypothesis that , are consistent estimators of .

2. Regress on , , to obtain estimates of and .

The t ratio for the estimate of produced by the second step is used as a test statistic for testing for a seasonal unit root. The estimates of are obtained by adding the estimates of from the second step to from the first step.

The series is assumed to be stationary, where d is the value of the third argument to the PROBDF function.

If the series is an ARMA process, a large value of might be desirable in order to obtain a reliable test statistic. To determine an appropriate value for see Said and Dickey (1984).

#### Test Statistics

The Dickey-Fuller test is used to test the null hypothesis that the time series exhibits a lag d unit root against the alternative of stationarity. The PROBDF function computes the probability of observing a test statistic more extreme than x under the assumption that the null hypothesis is true. You should reject the unit root hypothesis when PROBDF returns a small (significant) probability value.

There are several different versions of the Dickey-Fuller test. The PROBDF function supports six versions, as selected by the type argument. Specify the type value that corresponds to the way that you calculated the test statistic x.

The last two characters of the type value specify the kind of regression model used to compute the Dickey-Fuller test statistic. The meaning of the last two characters of the type value are as follows:

ZM

zero mean or no-intercept case. The test statistic x is assumed to be computed from the regression model SM

single mean or intercept case. The test statistic x is assumed to be computed from the regression model TR

intercept and deterministic time trend case. The test statistic x is assumed to be computed from the regression model The first character of the type value specifies whether the regression test statistic or the studentized test statistic is used. Let be the estimated regression coefficient for the dth lag of the series, and let be the standard error of . The meaning of the first character of the type value is as follows:

R

the regression-coefficient-based test statistic. The test statistic is S

the studentized test statistic. The test statistic is See Dickey and Fuller (1979), Dickey, Hasza, and Fuller (1984), and Hamilton (1994) for more information about the Dickey-Fuller test null distribution. The preceding formulas are for the basic Dickey-Fuller test. The PROBDF function can also be used for the augmented Dickey-Fuller test, in which the error term is modeled as an autoregressive process; however, the test statistic is computed somewhat differently for the augmented Dickey-Fuller test. See Dickey, Hasza, and Fuller (1984) and Hamilton (1994) for information about seasonal and nonseasonal augmented Dickey-Fuller tests.

The PROBDF function is calculated from approximating functions fit to empirical quantiles that are produced by a Monte Carlo simulation that employs replications for each simulation. Separate simulations were performed for selected values of and for (where and are the second and third arguments to the PROBDF function).

The maximum error of the PROBDF function is approximately for d in the set (1,2,4,6,12) and can be slightly larger for other d values. (Because the number of simulation replications used to produce the PROBDF function is much greater than the 60,000 replications used by Dickey and Fuller (1979) and Dickey, Hasza, and Fuller (1984), the PROBDF function can be expected to produce results that are substantially more accurate than the critical values reported in those papers.)

### Examples

Suppose the data set TEST contains 104 observations of the time series variable Y, and you want to test the null hypothesis that there exists a lag 4 seasonal unit root in the Y series. The following statements illustrate how to perform the single-mean Dickey-Fuller regression coefficient test using PROC REG and PROBDF.

```   data test1;
set test;
y4 = lag4(y);
run;

proc reg data=test1 outest=alpha;
model y = y4 / noprint;
run;

data _null_;
set alpha;
x = 100 * ( y4 - 1 );
p = probdf( x, 100, 4, "RSM" );
put p= pvalue5.3;
run;
```

To perform the augmented Dickey-Fuller test, regress the differences of the series on lagged differences and on the lagged value of the series, and compute the test statistic from the regression coefficient for the lagged series. The following statements illustrate how to perform the single-mean augmented Dickey-Fuller studentized test for a simple unit root using PROC REG and PROBDF:

```   data test1;
set test;
yl  = lag(y);
yd  = dif(y);
yd1 = lag1(yd); yd2 = lag2(yd);
yd3 = lag3(yd); yd4 = lag4(yd);
run;

proc reg data=test1 outest=alpha covout;
model yd = yl yd1-yd4 / noprint;
run;

data _null_;
set alpha;
retain a;
if _type_ = 'PARMS' then a = yl - 1;
if _type_ = 'COV' & _NAME_ = 'YL' then do;
x = a / sqrt(yl);
p = probdf( x, 99, 1, "SSM" );
put p= pvalue5.3;
end;
run;
```

The %DFTEST macro provides an easier way to perform Dickey-Fuller tests. The following statements perform the same tests as the preceding example:

```   %dftest( test, y, ar=4 );
%put p=&dftest;
``` Previous Page | Next Page | Top of Page