# Interpretation of ADF test output with R

I Run ADF test with R for 3 different models include,1.No deterministic terms, 2. with constant and 3.constant and trend based on the below code where all model specifications employ a lag-order of p = 2 .However, I am unsure about which corresponding p-value (I mean z.lag.1,z.diff.lag.1 or z.diff.lag.2) to report for each model (Model 1, 2, and 3) based on the output of my code as shown below after the code.

adf_no_det <- ur.df(residuals, type = "none", lags = 2)
print("P-Value:")
# Constant term
adf_const <- ur.df(residuals, type = "drift", lags = 2)
#  constant and trend
adf_const_trend <- ur.df(residuals, type = "trend", lags = 2)

############ Output the test results###########
#Output
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression none
Call:
lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)

Residuals:
Min       1Q   Median       3Q      Max
-0.28258 -0.01857  0.00217  0.02153  0.36875

Coefficients:
Estimate Std. Error t value Pr(>|t|)
z.lag.1     -0.012833   0.003297  -3.892 0.000103 ***
z.diff.lag1  0.301283   0.023305  12.928  < 2e-16 ***
z.diff.lag2 -0.073263   0.023399  -3.131 0.001770 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.03876 on 1817 degrees of freedom
Multiple R-squared:  0.08934,   Adjusted R-squared:  0.08784
F-statistic: 59.42 on 3 and 1817 DF,  p-value: < 2.2e-16
Value of test-statistic is: -3.8921
Critical values for test statistics:
1pct  5pct 10pct
tau1 -2.58 -1.95 -1.62
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression drift
Call:
lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
Residuals:
Min       1Q   Median       3Q      Max
-0.28243 -0.01842  0.00233  0.02168  0.36890

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0001580  0.0009088  -0.174 0.862039
z.lag.1     -0.0128355  0.0032981  -3.892 0.000103 ***
z.diff.lag1  0.3012700  0.0233110  12.924  < 2e-16 ***
z.diff.lag2 -0.0732705  0.0234056  -3.130 0.001773 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.03877 on 1816 degrees of freedom
Multiple R-squared:  0.08934,   Adjusted R-squared:  0.08784
F-statistic: 59.39 on 3 and 1816 DF,  p-value: < 2.2e-16
Value of test-statistic is: -3.8917 7.5851
Critical values for test statistics:
1pct  5pct 10pct
tau2 -3.43 -2.86 -2.57
phi1  6.43  4.59  3.78

###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression trend
Call:
lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)

Residuals:
Min       1Q   Median       3Q      Max
-0.28240 -0.01840  0.00238  0.02166  0.36893

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.759e-04  1.822e-03  -0.151 0.879648
z.lag.1     -1.283e-02  3.299e-03  -3.889 0.000104 ***
tt           1.293e-07  1.730e-06   0.075 0.940459
z.diff.lag1  3.013e-01  2.332e-02  12.920  < 2e-16 ***
z.diff.lag2 -7.328e-02  2.341e-02  -3.130 0.001776 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.03878 on 1815 degrees of freedom
Multiple R-squared:  0.08934,   Adjusted R-squared:  0.08734
F-statistic: 44.52 on 4 and 1815 DF,  p-value: < 2.2e-16
Value of test-statistic is: -3.8894 5.0559 7.5715
Critical values for test statistics:
1pct  5pct 10pct
tau3 -3.96 -3.41 -3.12
phi2  6.09  4.68  4.03
phi3  8.27  6.25  5.34
$$$$


Actually, you should look at none of the p-values reported!

Let us unpack (if you want the details, there will be some reading to do!):

The DF test statistic is the standard t-ratio on $$y_{t-1}$$ in the test regression(s) reported for the three different specifications. The dependent variable can equivalently be $$\Delta y_t$$ or $$y_t$$. In the first case, the t-statistic is for the null hypothesis that the true coefficient is zero, in the second, that it is one. See Why is Dickey-Fuller test applied on the difference operator and not on the variable directly? for more detail on this.

Here, it is the first case, so that, for your first test regression, the reported DF test statistic is $$-3.892326=\hat\rho/s.e(\hat\rho)=0.012833/0.003297$$ Now, why not look at any p-value? This is because the t-statistic has a different null distribution from the one R assumes when running a regression. See How is the augmented Dickey–Fuller test (ADF) table of critical values calculated? for some more detail on this. There, you will also find the critical values -2.58 -1.95 -1.62 reported in the output (up to rounding error, because, as the link explains, these are simulated critical values).

In other words, the entry in the last column (i.e. Pr(>|t|)) from the lm output

z.lag.1 -0.012833 0.003297 -3.892 0.000103 ***`

should not be considered.

Now, if your test statistic is less than the critical value, you would reject, as the test is left-tailed. See Explosive processes, non-stationarity and unit roots, how to distinguish?.

If you wanted p-values, one would need an approach along the lines of KPSS test with Bonferroni Correction. alpha < 0.01, which the package unfortunately does not supply.

Finally, why are there three different cases for different deterministic specifications? See how does Augmented Dickey Fuller results help to make the data stationary? and Interpreting the Dickey Fuller test for the models underlying the cases and Dickey-Fuller unit root test with no trend and supressed constant in Stata for the resulting different null distributions.

Postscript:

Your code seems to be run on residuals, which leads me to suspect that you actually want to run a cointegration test. In that case, none of the critical values you see here are valid, as you would need yet another distribution! See Two-step Engle and Granger's procedure.