x
(equivalently, x
is a
non-stationary time series).adf.test(x, nlag = NULL, output = TRUE)
TRUE
.lag
, ADF
, p.value
,
where ADF
is the Augmented Dickey-Fuller test statistic.type1
) is a linear model
with no drift and linear trend with respect to time:
$$dx[t] = \rho*x[t-1] + \beta[1]*dx[t-1] + ... + \beta[nlag - 1]*dx[t - nlag + 1]
+e[t],$$
where $d$ is an operator of first order difference, i.e.,
$dx[t] = x[t] - x[t-1]$, and $e[t]$ is an error term.The second type (type2
) is a linear model with drift but no linear trend:
$$dx[t] = \mu + \rho*x[t-1] + \beta[1]*dx[t-1] + ... +
\beta[nlag - 1]*dx[t - nlag + 1] +e[t].$$
The third type (type3
) is a linear model with both drift and linear trend:
$$dx[t] = \mu + \beta*t + \rho*x[t-1] + \beta[1]*dx[t-1] + ... +
\beta[nlag - 1]*dx[t - nlag + 1] +e[t].$$
We use the default nlag = floor(4*(length(x)/100)^(2/9))
to
calcuate the test statistic.
The Augmented Dickey-Fuller test statistic is defined as
$$ADF = \rho.hat/S.E(\rho.hat),$$
where $\rho.hat$ is the coefficient estimation
and $S.E(\rho.hat)$ is its corresponding estimation of standard error for each
type of linear model. The p.value is
calculated by interpolating the test statistics from the corresponding critical values
tables (see Table 10.A.2 in Fuller (1996)) for each type of linear models with given
sample size $n$ = length(x
).
The Dickey-Fuller test is a special case of Augmented Dickey-Fuller test
when nlag
= 2.
pp.test
, kpss.test
, stationary.test
# ADF test for AR(1) process
x <- arima.sim(list(order = c(1,0,0),ar = 0.2),n = 100)
adf.test(x)
# ADF test for co2 data
adf.test(co2)
Run the code above in your browser using DataCamp Workspace