Augmented Dickey–Fuller test

In statistics, an augmented Dickey–Fuller test (ADF) tests the null hypothesis that a unit root is present in a time series sample. The alternative hypothesis is different depending on which version of the test is used, but is usually stationarity or trend-stationarity. It is an augmented version of the Dickey–Fuller test for a larger and more complicated set of time series models.

The augmented Dickey–Fuller (ADF) statistic, used in the test, is a negative number. The more negative it is, the stronger the rejection of the hypothesis that there is a unit root at some level of confidence.

Testing procedure
The testing procedure for the ADF test is the same as for the Dickey–Fuller test but it is applied to the model


 * $$\Delta y_t = \alpha + \beta t + \gamma y_{t-1} + \delta_1 \Delta y_{t-1} + \cdots + \delta_{p-1} \Delta y_{t-p+1} + \varepsilon_t, $$

where $$\alpha$$ is a constant, $$\beta$$ the coefficient on a time trend and $$p$$ the lag order of the autoregressive process. Imposing the constraints $$\alpha = 0$$ and $$\beta = 0$$ corresponds to modelling a random walk and using the constraint $$\beta = 0$$ corresponds to modeling a random walk with a drift. Consequently, there are three main versions of the test, analogous to the ones discussed on Dickey–Fuller test (see that page for a discussion on dealing with uncertainty about including the intercept and deterministic time trend terms in the test equation.)

By including lags of the order p the ADF formulation allows for higher-order autoregressive processes. This means that the lag length p has to be determined when applying the test. One possible approach is to test down from high orders and examine the t-values on coefficients. An alternative approach is to examine information criteria such as the Akaike information criterion, Bayesian information criterion or the Hannan–Quinn information criterion.

The unit root test is then carried out under the null hypothesis $$\gamma = 0$$ against the alternative hypothesis of $$\gamma < 0.$$ Once a value for the test statistic


 * $$\mathrm{DF}_\tau = \frac{\hat{\gamma}}{\operatorname{SE}(\hat{\gamma})}$$

is computed it can be compared to the relevant critical value for the Dickey–Fuller test. As this test is asymmetrical, we are only concerned with negative values of our test statistic $$\mathrm{DF}_\tau$$. If the calculated test statistic is less (more negative) than the critical value, then the null hypothesis of $$\gamma = 0$$ is rejected and no unit root is present.

Intuition
The intuition behind the test is that if the series is characterised by a unit root process then the lagged level of the series ($$ y_{t-1}$$) will provide no relevant information in predicting the change in $$ y_t $$ besides the one obtained in the lagged changes ($$ \Delta y_{t-k} $$). In this case the $$\gamma = 0$$ and null hypothesis is not rejected. In contrast, when the process has no unit root, it is stationary and hence exhibits reversion to the mean - so the lagged level will provide relevant information in predicting the change of the series and the null hypothesis of a unit root will be rejected.

Examples
A model that includes a constant and a time trend is estimated using sample of 50 observations and yields the $$\mathrm{DF}_\tau$$ statistic of −4.57. This is more negative than the tabulated critical value of −3.50, so at the 95 percent level the null hypothesis of a unit root will be rejected.

Alternatives
There are alternative unit root tests such as the Phillips–Perron test (PP) or the ADF-GLS test procedure (ERS) developed by Elliott, Rothenberg and Stock (1996).

Implementations in statistics packages

 * In R, there are various packages supplying implementations of the test. The forecast package includes a ndiffs function (which handles multiple popular unit root tests), the tseries package includes an adf.test function and the fUnitRoots package includes an adfTest function. A further implementation is supplied by the "urca" package.
 * Gretl includes the Augmented Dickey–Fuller test.
 * In Matlab, the adfTest function is part of the Econometrics Toolbox, and a free version is available as part of the 'Spatial Econometrics' toolbox
 * In SAS, PROC ARIMA can perform ADF tests.
 * In Stata, the dfuller command is used for ADF tests.
 * In EViews, the Augmented Dickey-Fuller is available under "Unit Root Test."
 * In Python, the adfuller function is available in the Statsmodels package and the ARCH package also provides an Augmented Dickey–Fuller test.
 * In Java, the AugmentedDickeyFuller class is included in SuanShu available under the com.numericalmethod.suanshu.stats.test.timeseries.adf package.
 * In Julia, the ADFTest function is available in the HypothesisTests package.