UCLA Academic Technology Services HomeServicesClassesContactJobs
Help the Stat Consulting Group by giving a gift             
Loading

SAS FAQ
How can I compute Durbin-Watson statistic and 1st order autocorrelation in time series data?

When data set of interest is a time series data, we may want to compute the 1st-order autocorrelation for the variables of interest and to test if the autocorrelation is zero. One common test is Durbin-Watson test. The Durbin-Watson test statistic can be computed in proc reg by using option dw after the model statement. 

Here are two examples using data set sp500.sas7bdat. The variables of interest are open, close, high, low and volume.

Example 1: Computing Durbin-Watson Statistic for a variable.

proc reg data = sp500;
  model open = /dw;
run;
quit;

Dependent Variable: open
                             Analysis of Variance
                                    Sum of           Mean
Source                   DF        Squares         Square    F Value    Pr > F
Model                     0              0              .        .       .
Error                   247        1875052     7591.30215
Corrected Total         247        1875052
Root MSE             87.12808    R-Square     0.0000
Dependent Mean     1194.88379    Adj R-Sq     0.0000
Coeff Var             7.29176
                        Parameter Estimates
                     Parameter       Standard
Variable     DF       Estimate          Error    t Value    Pr > |t|
Intercept     1     1194.88379        5.53264     215.97      <.0001

Durbin-Watson D                0.034
Number of Observations           248
1st Order Autocorrelation      0.979

The value of Durbin-Watson statistic is close to 2 if the errors are uncorrelated. In our example, it is .034. That means that there is a strong evidence that the variable open has high autocorrelation.

Example 2: Output 1st-order autocorrelation of multiple variables into a data set

Let's say that we want to compute the 1st-order autocorrelation for all the variables of interest. We can make use of the ODS facility to output the 1st-order autocorrelation for each variable to a data set called auto_corr.

proc reg data = sp500;
  model open high low close volume = /dw;
 ods output dwstatistic = auto_corr 
	(where=(label1="1st Order Autocorrelation")) ;
run;
quit;

proc print data = auto_corr noobs;
  var dependent label1 cvalue1;
run;
                                            c
Dependent             Label1              Value1
 open        1st Order Autocorrelation    0.979
 high        1st Order Autocorrelation    0.984
 low         1st Order Autocorrelation    0.983
 close       1st Order Autocorrelation    0.981
 volume      1st Order Autocorrelation    0.545

How to cite this page

Report an error on this page or leave a comment

UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services


The content of this web site should not be construed as an endorsement of any particular web site, book, or software product by the University of California.