Another look at autocorrelation in the S&P 500

November 11, 2011

(This article was first published on Portfolio Probe » R language, and kindly contributed to R-bloggers)

Casting doubt on the possibility of mean reversion in the S&P 500 lately.


A look at volatility estimates in “The mystery of volatility estimates from daily versus monthly returns” led to considering the possibility of autocorrelation in the returns.  I estimated an AR(1) model through time and added a naive confidence interval to the plot.

With that confidence interval there is a suggestion that there may be mean reversion lately.  Gappy, in a comment to that post, is not so sure.  He contributed an analysis using a more rigorous method of getting the interval, and used the Bonferroni method to account for multiple comparison.

The plot

Figure 1 shows a slightly prettified version of Gappy’s plot.

Figure 1: Autoregression coefficient of S&P 500 returns with 95% Bonferroni confidence interval. The “years” are not actual calendar years — they end in early November.


Bonferroni limits are conservative (that is, wide).  I have no idea how conservative in this case.

I think one of the key things to take away from this plot is the consistency of the interval over time.  Changes in volatility don’t seem to affect it.

Given that consistency, my naive confidence interval doesn’t seem so bad after all.  The number of years in this plot less than my lower limit looks to be at least 3 (out of 31), or almost 10%.  Since that is more than 5%, that would argue towards mean reversion.

But if we don’t want to believe that there was positive autocorrelation in this period, then noting that the tails of the current estimates are reasonably symmetric around zero would argue against mean reversion.

Another point in favor of mean reversion is the downward trend of the AR coefficient.  However, we can easily be fooled into thinking there is a trend when there is not one.

Appendix R

The analysis was done with:


Actually that was step 3.  Step 1 was saving the file to my computer (optional).  Step 2 was starting R.

This highlights some of the power of R.  In less than 40 lines Gappy created quite a sophisticated analysis and then could transmit that so that anyone* can reproduce it with one trivial command.

* “anyone” is hyperbole — you need a computer with internet access.

Subscribe to the Portfolio Probe blog by Email

To leave a comment for the author, please follow the link and comment on their blog: Portfolio Probe » R language. offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , , , ,

Comments are closed.


Mango solutions

RStudio homepage

Zero Inflated Models and Generalized Linear Mixed Models with R

Dommino data lab

Quantide: statistical consulting and training



CRC R books series

Six Sigma Online Training

Contact us if you wish to help support R-bloggers, and place your banner here.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)