Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Investment Performance Guy had a post about beta equal 1. It made me wonder about the properties of portfolios with beta equal 1. When I looked, I got a bigger answer than I expected.
Data
I have some S&P 500 data lying about from the post ‘On “Stock correlation has been rising”‘. So laziness dictated that I use that.
It is daily data. I used 2010 to estimate the betas. The first half of 2011 is the out-of-sample period.
Figure 1: Distribution of S&P 500 betas estimated from 2010 daily data.
Two sets of random portfolios were created. There were 10,000 long-only portfolios in each set and in each case the portfolio beta was restricted to be between 0.99 and 1.01. One set consisted of portfolios with 20 assets, the other set had 200 assets per portfolio.
Returns
Figures 3 and 4 show the distribution of returns for the first half of 2011 of the two sets of random portfolios. The return of the index for the period is ever so close to 5%.
Figure 3: Distribution of 2011 H1 returns for portfolios with 20 assets and beta from 0.99 to 1.01.
Figure 4: Distribution of 2011 H1 returns for portfolios with 200 assets and beta from 0.99 to 1.01.
Surprising.
Corroboration
The first thing to do when you get a surprising result is to wonder what you’ve done wrong.
I looked. Didn’t see anything.
I then created some random portfolios “by hand” that satisfy beta equal 1. This had two steps:
- Select the correct number of assets at random.
- Equal weight the assets with betas less than 1 and equal weight the assets with betas greater than 1 such that the beta is 1.
The distributions of returns for the 20 asset portfolios are very similar (even though they have different restrictions on weights). The equal weighted distribution for 200 assets has the same center but is narrower — meaning the index return looks even more out of place.
Volatility and information ratio
The realized volatility for the S&P 500 for the first half of 2011 is about 12.9%. Figures 5 and 6 show the volatility distributions of the random portfolios.
Figure 5: Distribution of 2011 H1 realized volatility for portfolios with 20 assets and beta from 0.99 to 1.01.
Figure 6: Distribution of 2011 H1 realized volatility for portfolios with 200 assets and beta from 0.99 to 1.01.
Figure 7: Distribution of 2011 H1 information ratio for portfolios with 20 assets and beta from 0.99 to 1.01.
Figure 8: Distribution of 2011 H1 information ratio for portfolios with 200 assets and beta from 0.99 to 1.01.
These graphs are suggestive that the index is not on the efficient frontier.
Summary
Constraining beta to be close to 1 does not make portfolios behave like the index. This seems to be another myth to add to the 4.5 myths about beta in finance.
Appendix R
estimate beta
It is shockingly easy in R to get the betas for a cohort of assets. Once you have a matrix of the asset returns (times in the rows, assets in columns) and a vector of the market returns at the same times, it is one line:
spbeta <- coef(lm(spcon2010 ~ spx2010))[2,]
The creation of the original data can be seen at ‘On “Stock correlation has been rising”‘. Subsets of the original data were then created to fit our purpose here.
prepare to generate random portfolios
require(PortfolioProbe)
spbetacon <- build.constraints(spbeta)
spbetabounds <- spbetacon$bounds
spbetabounds[] <- c(.99, 1.01)
sp.price2011 <- as.matrix(sp500.close)[1007, names(spbeta)]
actually generate random portfolios
ran.spb1.200 <- random.portfolio(1e4, sp.price2011, gross=1e6, long.only=TRUE, lin.constraint=spbetacon$lin.constraints, lin.bound=spbetabounds, port.size=c(200,200))
use random portfolios
val.spb1.200 <- valuation(ran.spb1.200, spclose2011H1, collapse=TRUE)
The object created above is a matrix with the value of the portfolios (10,000 columns) for each day in the first half of 2011 (126 rows).
ret.spb1.200 <- pp.simpret(val.spb1.200[c(1,126),])
plot(density(ret.spb1.200)) # basis of Figure 4
plot(density(sqrt(252) * sd(diff(log(val.spb1.200)))))
Subscribe to the Portfolio Probe blog by Email
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.