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.[1]

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


where   is a constant,   the coefficient on a time trend and   the lag order of the autoregressive process. Imposing the constraints   and   corresponds to modelling a random walk and using the constraint   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   against the alternative hypothesis of   Once a value for the test statistic


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  . If the calculated test statistic is less (more negative) than the critical value, then the null hypothesis of   is rejected and no unit root is present.



The intuition behind the test is that if the series is characterised by a unit root process then the lagged level of the series ( ) will provide no relevant information in predicting the change in   besides the one obtained in the lagged changes ( ). In this case the   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.



A model that includes a constant and a time trend is estimated using sample of 50 observations and yields the   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.

Critical values for Dickey–Fuller t-distribution.
Without trend With trend
Sample size 1% 5% 1% 5%
T = 25 −3.75 −3.00 −4.38 −3.60
T = 50 −3.58 −2.93 −4.15 −3.50
T = 100 −3.51 −2.89 −4.04 −3.45
T = 250 −3.46 −2.88 −3.99 −3.43
T = 500 −3.44 −2.87 −3.98 −3.42
T = ∞ −3.43 −2.86 −3.96 −3.41
Source[2]: 373 



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).[3]

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),[4] the tseries package includes an adf.test function[5] and the fUnitRoots package includes an adfTest function.[6] A further implementation is supplied by the "urca" package.[7]
  • Gretl includes the Augmented Dickey–Fuller test.[8]
  • In Matlab, the adfTest function [9] is part of the Econometrics Toolbox,[10] and a free version is available as part of the 'Spatial Econometrics' toolbox[11]
  • In SAS, PROC ARIMA can perform ADF tests.[12]
  • In Stata, the dfuller command is used for ADF tests.[13]
  • In EViews, the Augmented Dickey-Fuller is available under "Unit Root Test."[14][15][16][17]
  • In Python, the adfuller function is available in the Statsmodels package[18] and the ARCH package[19] also provides an Augmented Dickey–Fuller test.
  • In Java, the AugmentedDickeyFuller class is included in SuanShu[20] available under the com.numericalmethod.suanshu.stats.test.timeseries.adf package.
  • In Julia, the ADFTest function is available in the HypothesisTests package.[21]

See also



  1. ^ "Glossary of economics research". Archived from the original on March 2, 2009. Retrieved April 2, 2008.
  2. ^ Fuller, W. A. (1976). Introduction to Statistical Time Series. New York: John Wiley and Sons. ISBN 0-471-28715-6.
  3. ^ Elliott, G.; Rothenberg, T. J.; Stock, J. H. (1996). "Efficient Tests for an Autoregressive Unit Root" (PDF). Econometrica. 64 (4): 813–836. doi:10.2307/2171846. JSTOR 2171846. S2CID 122699512.
  4. ^ "ndiffs {forecast} | inside-R | A Community Site for R". Archived from the original on 2016-07-17. Retrieved 2020-02-23.
  5. ^ "R: Augmented Dickey-Fuller Test". Retrieved 2016-06-26.
  6. ^ "Comparing ADF Test Functions in R · Fabian Kostadinov". Retrieved 2016-06-05.
  7. ^ "Package 'urca'" (PDF).
  8. ^ "Introduction to gretl and the gretl instructional lab" (PDF). Retrieved 2016-06-26.
  9. ^ "Augmented Dickey-Fuller test - MATLAB adftest". Retrieved 2016-06-26.
  10. ^ "Econometrics Toolbox - MATLAB". Retrieved 2016-06-26.
  11. ^ "Econometrics Toolbox for MATLAB". Retrieved 2016-06-26.
  12. ^ David A. Dickey. "Stationarity Issues in Time Series Models" (PDF). Retrieved 2016-06-26.
  13. ^ "Augmented Dickey–Fuller unit-root test" (PDF). Retrieved 2016-06-26.
  14. ^ "Memento on EViews Output" (PDF). Retrieved 17 June 2019.
  15. ^ " • View topic - Dickey Fuller for Multiple Regression Models". Retrieved 2016-06-26.
  16. ^ "Augmented Dickey-Fuller Unit Root Tests" (PDF). Retrieved 2016-06-26.
  17. ^ "DickeyFuller Unit Root Test". Retrieved 2016-06-26.
  18. ^ "statsmodels.tsa.stattools.adfuller — statsmodels 0.7.0 documentation". Retrieved 2016-06-26.
  19. ^ "Unit Root Testing — arch 4.19+14.g318309ac documentation". Retrieved 2021-10-18.
  20. ^ "SuanShu | Numerical Method Inc". Archived from the original on 2015-08-15. Retrieved 2016-06-26.
  21. ^ "Time series tests". Retrieved 2020-02-04.

Further reading