DurbinWatsonTest {DescTools}  R Documentation 
DurbinWatson Test
Description
Performs the DurbinWatson test for autocorrelation of disturbances.
Usage
DurbinWatsonTest(formula, order.by = NULL,
alternative = c("greater", "two.sided", "less"),
iterations = 15, exact = NULL, tol = 1e10, data = list())
Arguments
formula 
a symbolic description for the model to be tested
(or a fitted 
order.by 
Either a vector 
alternative 
a character string specifying the alternative hypothesis. 
iterations 
an integer specifying the number of iterations when calculating the pvalue with the "pan" algorithm. 
exact 
logical. If set to 
tol 
tolerance. Eigenvalues computed have to be greater than

data 
an optional data frame containing the variables in the model.
By default the variables are taken from the environment which 
Details
The DurbinWatson test has the null hypothesis that the autocorrelation
of the disturbances is 0. It is possible to test against the alternative that it is
greater than, not equal to, or less than 0, respectively. This can be specified
by the alternative
argument.
Under the assumption of normally distributed disturbances, the null distribution of the DurbinWatson statistic is the distribution of a linear combination of chisquared variables. The pvalue is computed using the Fortran version of Applied Statistics Algorithm AS 153 by Farebrother (1980, 1984). This algorithm is called "pan" or "gradsol". For large sample sizes the algorithm might fail to compute the p value; in that case a warning is printed and an approximate p value will be given; this p value is computed using a normal approximation with mean and variance of the DurbinWatson test statistic.
Examples can not only be found on this page, but also on the help pages of the
data sets bondyield
, currencysubstitution
,
growthofmoney
, moneydemand
,
unemployment
, wages
.
For an overview on R and econometrics see Racine & Hyndman (2002).
Value
An object of class "htest"
containing:
statistic 
the test statistic. 
p.value 
the corresponding pvalue. 
method 
a character string with the method used. 
data.name 
a character string with the data name. 
Note
This function was previously published as dwtest
in the lmtest package and has been integrated here without logical changes.
Author(s)
Torsten Hothorn, Achim Zeileis, Richard W. Farebrother (pan.f), Clint Cummins (pan.f), Giovanni Millo, David Mitchell
References
J. Durbin & G.S. Watson (1950), Testing for Serial Correlation in Least Squares Regression I. Biometrika 37, 409–428.
J. Durbin & G.S. Watson (1951), Testing for Serial Correlation in Least Squares Regression II. Biometrika 38, 159–178.
J. Durbin & G.S. Watson (1971), Testing for Serial Correlation in Least Squares Regression III. Biometrika 58, 1–19.
R.W. Farebrother (1980), Pan's Procedure for the Tail Probabilities of the DurbinWatson Statistic (Corr: 81V30 p189; AS R52: 84V33 p363 366; AS R53: 84V33 p366 369). Applied Statistics 29, 224–227.
R. W. Farebrother (1984),
[AS R53] A Remark on Algorithms AS 106 (77V26 p9298), AS 153 (80V29 p224227)
and AS 155: The Distribution of a Linear Combination of \chi^2
Random
Variables (80V29 p323333)
Applied Statistics 33, 366–369.
W. KrĂ¤mer & H. Sonnberger (1986), The Linear Regression Model under Test. Heidelberg: Physica.
J. Racine & R. Hyndman (2002), Using R To Teach Econometrics. Journal of Applied Econometrics 17, 175–189.
See Also
Examples
## generate two AR(1) error terms with parameter
## rho = 0 (white noise) and rho = 0.9 respectively
err1 < rnorm(100)
## generate regressor and dependent variable
x < rep(c(1,1), 50)
y1 < 1 + x + err1
## perform DurbinWatson test
DurbinWatsonTest(y1 ~ x)
err2 < stats::filter(err1, 0.9, method="recursive")
y2 < 1 + x + err2
DurbinWatsonTest(y2 ~ x)
## for a simple vector use:
e_t < c(32.33, 26.603, 2.215, 16.967, 1.148, 2.512, 1.967, 11.669,
0.513, 27.032, 4.422, 40.032, 23.577, 33.94, 2.787, 8.606,
0.575, 6.848, 18.971, 29.063)
DurbinWatsonTest(e_t ~ 1)