Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

Suppose I want to build a linear regression to see if returns of one stock can predict returns of another. For example, let's say I want to see if the VIX return on day X is predictive of the S&P return on day (X + 30). How would I go about this?

The naive way would be to form pairs (VIX return on day 1, S&P return on day 31), (VIX return on day 2, S&P return on day 32), ..., (VIX return on day N, S&P return on day N + 30), and then run a standard linear regression. A t-test on the coefficients would then tell if the model has any real predictive power. But this seems wrong to me, since my points are autocorrelated, and I think the p-value from my t-test would underestimate the true p-value. (Though IIRC, the t-test would be asymptotically unbiased? Not sure.)

So what should I do? Some random thoughts I have are:

  • Take a bunch of bootstrap samples on my pairs of points, and use these to estimate the empirical distribution of my coefficients and p-values. (What kind of bootstrap do I run? And should I be running the bootstrap on the coefficient of the model, or on the p-value?)
  • Instead of taking data from consecutive days, only take data from every K days. For example, use (VIX return on day 1, S&P return on day 31), (VIX return on day 11, S&P return on day 41), etc. (It seems like this would make the dataset way too small, though.)

Are any of these thoughts valid? What are other suggestions?

share|improve this question

5 Answers 5

A few thoughts.

Yes, your return series are autocorrelated (i.e., stocks don't exactly follow a random walk), so you should use Newey-West standard errors.

If you do this as a univariate regression $$R_{i,t} = \alpha_i + \beta_i R_{j,t-1} + \epsilon_{i,t}$$ then there's almost certainly an omitted variable inside $\epsilon$ that is moving both $R_i$ and $R_j$. So make sure you throw in at least some of the normal "predictors", like market return, default premium, term premium, or the other standard factors (Fama and French's SMB, HML, and UMD). In the hedge fund research you also see a set of seven or so factors.

share|improve this answer
Which of the papers of Hsieh are you referencing exactly? –  vonjd May 6 '11 at 6:53
@vonjd -- The 11th on list is the one in which he proposes the seven factors. I haven't read too much of the hedge fund literature, but I have seen more than a few use these factors. –  Richard Herron May 6 '11 at 11:07

Have you considered fitting ARIMA with exogenous regressors model? Linear regression with autocorrelated errors might be appropriate.

R can do this with the arima() function via specifying the xreg argument.

share|improve this answer

Van Belle describes a basic correction for autocorrelation in a t-test, although it may be hard to wedge it into the regression t-test. For the 1-sample t-test of the mean, the correction is to multiply the t-statistic by $\sqrt{\frac{1 - \rho}{1 + \rho}}$, where $\rho$ is the 1-period autocorrelation (or estimate thereof).

share|improve this answer

Well vix is a measure of volatitity which would make it an estimate of a second moment for S&P 500 so you might try an arch/garch in the mean type model on S&P.

A good starting place for a project like this is to just do Vector Autoregressions on industry groups that you think might be related and see what comes up.

N+30 is a long way in the future, especially to estimate a return. I would use weekly data and try and estimate a mean.

share|improve this answer

This is a vector autoregression (VAR) model with restrictions. I would also use a shorter lag and add conventional factors to the VIX return.

Simple bootstrapping destroys the serial correlation in your model, but you might consider block bootstrapping.

I would also try the following test: use a subset to calibrate your model and then perform an out-of-sample step with the next data point of the regressor. Repeat this procedure by shifting the subset by one step (i.e. apply the regression to a rolling time window). This gives you an idea of the stability of the coefficients, and the forecasting ability of the model.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.