Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

Let's say you regress monthly stock returns, and the regression model has a standard error around such monthly stock returns of 2%. Next, you forecast the next year annual stock return based on the regressed monthly returns. What is the standard error around this annual stock return?

Some may think this is not a very good example. Don't get hung up on what is the proper way to model stock returns. This has nothing to do with the question. The question is simply figuring out the calculation to convert a monthly standard error into an annual one.

share|improve this question

2 Answers

up vote 1 down vote accepted

The general rule is $\sqrt N$. So from daily data, annual volatility would be estimated as sd(v)* sqrt(255).

Hence for your example, multiply the estimated error by the square root of twelve.

Edit: In response to the follow-up comment, here is a complete worked example with real data. The annual volatility comes out to be around 16% which seems about right. You could modify this for rolling volatilities, or weekly data, or ....

R> library(tseries)
Loading required package: quadprog
Loading required package: zoo

    ‘tseries’ version: 0.10-22

    ‘tseries’ is a package for time series analysis and computational finance.

    See ‘library(help="tseries")’ for details.

R> SP500 <- get.hist.quote("^GSPC", "2000-01-01", "2011-01-29", quote="Close", compression="m")
trying URL 'http://chart.yahoo.com/table.csv?s=^GSPC&a=0&b=01&c=2000&d=0&e=29&f=2011&g=m&q=q&y=0&z=^GSPC&x=.csv'
Content type 'text/csv' length unknown
opened URL
.......
downloaded 8162 bytes

time series starts 2000-01-03
time series ends   2011-01-03
R> head(SP500)
             Close
2000-01-03 1394.46
2000-02-01 1366.42
2000-03-01 1498.58
2000-04-03 1452.43
2000-05-01 1420.60
2000-06-01 1454.60
R> sd(diff(log(SP500)))
    Close 
0.0478781 
R> sd(diff(log(SP500)))*sqrt(12)
   Close 
0.165855 
R> 
share|improve this answer
So Dirk, in this example the annual standard error of stock returns would simply be: 2% times SQRT(12) = 6.93%. Can you confirm that is correct. It seems so straightforward, I am afraid I missed something. – Gaetan Lion Jan 29 '11 at 21:45
1  
Correct. See the edit I just made to my initial answer. – Dirk Eddelbuettel Jan 29 '11 at 21:54
1  
This is the right approach, but for stock returns (and for many other time series) serial correlation has an important influence. Ignoring it (by using $\sqrt{N}$) is going to be too optimistic. – whuber Jan 29 '11 at 22:16
Dirk, thanks much for the confirmation and the real data application. To whuber, I know Benoit Mandelbrot argues there is a long term serial correlation of returns. I remember looking at real data, and I saw no evidence of serial correlation using lags from - 1mth to - 12 mth. Thus, I am not convinced that Dirk's approach is incorrect. In any case, my main concern was understanding how to convert a monthly standard error into an annual one. And, Dirk did a good job at giving me the straightforward answer to that. – Gaetan Lion Jan 29 '11 at 23:07

Although this question has already been answered a useful way to remember for more general situations is the law of iterated expectations. Note that the independence for prediction does not hold even if the "true process" is independent. This is because the estimates are not independent, unless you have $Z^{T}Z$ and $Z_{new}Z_{new}^{T}$ both to be diagonal ("new" for the predictions)

So if you let $\hat{Y}_{ti}$ denote the estimated monthly values in year $t$ for month $i$, and $\hat{X}_{t}$ denote the estimated annual value, you have:

$$\hat{X}_{t}=\sum_{i=1}^{12}\hat{Y}_{ti}$$

$$Var(\hat{X}_{t})=E[Var(\hat{X}_{t}|\hat{Y}_{t,1},\dots,\hat{Y}_{t,12})]+Var[E(\hat{X}_{t}|\hat{Y}_{t,1},\dots,\hat{Y}_{t,12})]$$

(note sure if it should be an average or total, if average, then divide my final result for the standard error by $12$ and divide variance by $144$) Plugging one into the other we get:

$$Var(\hat{X}_{t})=E[Var(\sum_{i=1}^{12}\hat{Y}_{ti}|\hat{Y}_{t,1},\dots,\hat{Y}_{t,12})]+Var[E(\sum_{i=1}^{12}\hat{Y}_{ti}|\hat{Y}_{t,1},\dots,\hat{Y}_{t,12})]$$ $$=Var[\sum_{i=1}^{12}\hat{Y}_{ti}]=\sum_{i=1}^{12}\sum_{j=1}^{12}Cov(\hat{Y}_{tj},\hat{Y}_{ti})$$

Now when you condition on something, it is a constant, so that's why the "inner" variance term disappears.

Now you have a regression model for $Y_{ti}$ so we know that

$$\begin{array}{l l} \hat{Y}_{ti}=Z_{ti,new}^{T}\hat{\beta} & Cov(\hat{Y}_{ti},\hat{Y}_{sj})=s^{2}Z_{ti,new}^{T}(Z^{T}Z)^{-1}Z_{sj,new} \\ \hat{\beta}=(Z^{T}Z)^{-1}Z^{T}Y & s^{2}=\frac{1}{n-dim(\hat{\beta})}(Y-Z\hat{\beta})^{T}(Y-Z\hat{\beta}) \end{array}$$

Where $Z$ and $Y$ are the matrix and vector that you used to actually fit the regression (I am assuming OLS regression here), $dim(\hat{\beta})$ is the number of betas that you have fitted (including the intercept). $Z_{ti,new}$ is a new set of regression co-efficients to be used in the prediction.

Note that for prediction, your estimates of $Y$ are not independent, even if the "true values" are. So the square root of $N$ rule doesn't apply, unless your $Z$ variables are orthogonal so that $(Z^{T}Z)^{-1}=I$ and $Z_{ti}^{T}Z_{sj}=0$ when $s\neq t$ or $i\neq j$.

Plugging this into the variance formula for $\hat{X}_{t}$ we get:

$$Var(\hat{X}_{t})=\sum_{i=1}^{12}\sum_{j=1}^{12}s^{2}Z_{ti,new}^{T}(Z^{T}Z)^{-1}Z_{tj,new}=s^{2}J^{T}Z_{t,new}(Z^{T}Z)^{-1}Z_{t,new}^{T}J$$

Where $J$ is a column of 12 ones, and $Z_{t,new}$ is the twelve $Z_{ti}^{T}$ rows for prediction stacked on top of each other, of dimension $12\times dim(\hat{\beta})$.

But note that we also have the "true" process $X_{t}$, assumed to be governed by the regression model, so we apply the law of iterated expectations again, but conditioning on $\hat{X}_{t}$ this time:

$$Var(X_{t})=E[Var(X_{t}|\hat{X}_{t})]+Var[E(X_{t}|\hat{X}_{t})]=E[Var(\sum_{i=1}^{12}Y_{t}|\hat{Y}_{ti})]+Var[\hat{X}_{t}]$$ $$=E[\sum_{i=1}^{12}Var(Y_{ti})]+Var[\hat{X}_{t}]=12s^{2}+s^{2}J^{T}Z_{t,new}(Z^{T}Z)^{-1}Z_{t,new}^{T}J$$

I probably should put approx because this is a "plug-in" of $s^{2}$ for the "true variance" $\sigma^{2}$ - however I don't know of many people who don't just do this. It is also justified on Bayesian grounds as the proper way to account for uncertainty in estimating $\sigma^{2}$ for the normal model, plus it is an unbiased estimator on frequentist grounds. So the annual standard error should really be

$$s\sqrt{12+J^{T}Z_{t,new}(Z^{T}Z)^{-1}Z_{t,new}^{T}J}$$

So what the $\sqrt{12}$ rule is essentially doing here is ignoring the uncertainty in estimating the betas. If you already estimate the betas pretty well, then this will make little difference to the $\sqrt{12}$ rule - probably something like $\sqrt{13}$. If the betas are not estimated well, or you are close to multi-collinearity, then the extra term may be important.hb**

text

**

share|improve this answer

Your Answer

 
discard

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.