Testing and Correcting for Autocorrelation in the residuals using Stata
Serial correlation is a frequent problem in the analysis of time series data. Various factors can produce residuals that are correlated with each other, such as an omitted variable or the wrong functional form. If the problem cannot be resolved by improved model specification, then we need to correct for the influence of the autocorrelation through statistical means.
The basic steps are :
For this example we will use the presidentail approval data set: presapp.dta
Set the data set to be a time-series data set
Stata needs to know that the data set is a time series data set. Use the TSSET command.
First, create a time variable. Sinvce we have quartely data, and only ear and quarter as variables, we need to create a variable coded 1,2,...,t for the quarters in the data set. Use the Generate command,
gen time = (year - 1949)*4 + quarter
Examine this data with the list command to ensure that it is the series 1 to 148 indicateing that there are 148 quarters in the period 1949-1985.
Now set this as the time variable
tsset time , q
Note that if you examine the data with the
command, the quarterly dating is off. Stata starts all data sets on at january 1960. This can be alterd, but not here!
Run the regression analysis
Regress Presidential approval on real GNP
reg approval realgnp
Examine for serial correlation
In order to see what autocorrelation looks like, examine the residuals.
Since this is a plot of residuals against fitted values, we can see autocorrleation if we examine the rresiduals across time.
predict res, r
graph res time
In order to measure thi autocorrelation, we can calculate the Pearson's r between the residuals and their lagged values
predict res, r
gen lres = res[_n-1]
list res lres (to observe lagged data)
corr res lres
After running the regression, save the residuals and then enter the Durbin-Watson Statistic command.
The DW shows strong autocorrelation. This is also reflected in the Runs or (Runs of Signs) test.
In addition, you can examine the correlogram of the residuals. This will sho significant autocorrleation at fifferent lags. The correlogram is an essential tool of Bob-Jenkins style time series analysis.
Stata also provides the Portmanteau test for white noise, which is a Chi-square test.
Correct the regression for the serial correlation
Correcting for autocorrelation is easy with STATA. Run the analysis with the Prais-Winston command, specifying the Cochran-Orcutt option.
prais approval realgnp, corc
This gives us results that are substantially different from the original results.
Note the following points in the estimation:
Additional Information on Stata commands. (Taken from the Stata help information)
For additional information about how Stata treats time series data, here is the Stata help for TSSET
The Stata information on Prais-Winston estimation options.