# Why do I have a statistically significant slope regressing R(t) on R(t-1)

I am reading Cochrane's lecture note here

He mentioned that when you regress annual return on time t on that of time t-1, you will have neither statistically significant nor economically significant slope.

I performed a quick test with python as follows:

import statsmodels.formula.api as smf
import pandas as pd
import pandas.io.data as web
import datetime as dt
ts_spy = web.get_data_yahoo("^GSPC", start="1/1/1929")
ts_ret = ts_spy.Close.pct_change()

df_reg = pd.concat([ts_ret.shift(1), ts_ret], axis=1)

df_reg.columns =["prev", "cur"]
results = smf.ols("cur ~ prev", data=df_reg).fit()
print results.summary()


The result I got was not as claimed in the note.

     OLS Regression Results
==============================================================================
Dep. Variable:                    cur   R-squared:                       0.001
Method:                 Least Squares   F-statistic:                     12.60
Date:                Mon, 28 Apr 2014   Prob (F-statistic):           0.000387
Time:                        08:50:08   Log-Likelihood:                 52035.
No. Observations:               16180   AIC:                        -1.041e+05
Df Residuals:                   16178   BIC:                        -1.041e+05
Df Model:                           1
==============================================================================
coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept      0.0003   7.64e-05      4.306      0.000         0.000     0.000
prev           0.0279      0.008      3.549      0.000         0.012     0.043
==============================================================================
Omnibus:                     4891.255   Durbin-Watson:                   1.998
Prob(Omnibus):                  0.000   Jarque-Bera (JB):           298584.422
Skew:                          -0.614   Prob(JB):                         0.00
Kurtosis:                      24.009   Cond. No.                         103.
==============================================================================

-
Btw, upvoted for useful reference and nice code – user12348 Apr 28 '14 at 23:44

Why do you have 16180 observations? Is this daily data over 64 years or higher frequency data? I am guessing so by the magnitude of the intercept. At any rate, your test power would be huge with this large sample size, meaning small relationships will be statistically significant.

What Cochrane said is contingent on data frequency. At a high frequency it is untrue that you would find only statistical insignificance, as returns are very positively autocorrelated at these high sampling frequencies.

-
The data is the daily returns from 1950-01-03 to last trading day. You are right that, in his note, it was based on annual data. Using annual return, the statistical significance disappears. If returns are positively auto-correlated at high sampling frequencies, does it mean people can take advantage of this? – zsljulius Apr 28 '14 at 13:34
Can you also please further illustrate the point on test power? Why when using a higher frequency sample results in detecting even small relationship? Thanks! – zsljulius Apr 28 '14 at 14:41
@zsljulius Google statistical power for that answer. Just because there's statistical significance doesn't mean you can make money. There are transaction costs, overfitting and other issues you need to be careful of. In addition, with sufficient power, a truly tiny in sample relationship can be significant, but even if you had known this ahead of time (!) you may be looking at an extremely tiny revenue from trading (because of the high power). – user2763361 Apr 29 '14 at 13:54

You are right. Daily or even monthly financial series have serial correlation and lag 1 is generally the most correlated. Over the year, many competing forces may act on the market to randomize the returns.

Not sure the purpose of this exercise you are doing, but you can remove this auto-correlation if you want, using ARCH/GARCH(1,1).

-