I did a post last October (here) looking at varying allocation between stocks/bonds and at the end I hinted towards a tactical overly between the two asset classes. Six months later, I finally found a decent overlay I feel may hold value.

In a paper called “Principal Components as a Measure of Systemic Risk” (SSRN), Kritzman Et al. presented a method for identifying “fragile” market states. To do this, he constructed the Absorption Ratio. Here is the equation:

The numerator sigma represents the variance of the ith eigenvector, while the denominator one equals the variance of the jth asset. In the paper, n = 1/5 the total number of assets (N). The interpretation is simple, the higher the ratio, the more “fragile” the market state. The intuition behind this ratio is that when its high, it implies that risk is very **concentrated**. On the other hand, when it is low, risk is **dispersed** and spread out. Think weak and strong. Following is the raw AR through time of the DJ 30 Components.

As you can see, the ratio spikes during the tech bubble and the recent financial crisis. How would it look like when used as a filter? Below are two pictures comparing the signals generated by 200 day sma and standardized AR.

Pretty good at the timing in my opinion. In line with the paper, I reconstructed the strategy that switches between stocks(DIA) and bonds (VBMFX). When the AR is between 1 and -1, we will split 50/50. When its above 1, we are in love with bonds and when its below -1, we are in love with stocks. Simple. Results:

And here is the code: (I know its messy, didn’t have a lot of time! :)

Note: There is survivorship bias. I used the current day DJ30.

Thanks for reading

### Like this:

Like Loading...

*Related*

Enjoy the blog, and am interested in the Absorption ratio.

I was wondering if you might possibly have an example of

its calculation in an Excel spreadsheet.

Thanks for sharing this, similar to Steve I also have request for an example of Absorption ratio calculation in spreadsheet, if possible. Thanks.

Hey guys,

To my knowledge, excel doesnt have a built in PCA function. I suggest you guys look into add on XLstat, but I personally don’t use excel other than simple data formatting and quick charting

Cheers,

MG

Is there any chance that there is some look ahead bias here ? i.,e does the princomp calculation use the entire dataset at a point in time ?

I havent looked into the princomp, but just thought I will bring it up.

Look ahead bias shouldn’t be a problem as I looped through each day as oppose to doing PCA on the entire batch of return data.

Pseudo-code

for each day

hist <- returns with N day lookback

pca<- princomp(hist)

aratio <- calculate_a_ratio (pca)

…

..

.

Hope that helps,

Mike

perfect !

Love your post! Thank you for sharing

Are you also going to reproduce the follow-up paper:

Regime Shifts: Implications for Dynamic Strategies by Mark Kritzman:

http://www.statestreet.com/wps/wcm/connect/a3c597004e65ffd19c00fe2a1fc2916b/FAJ_MJ12_Kritzman_Page_Turkington+(2).pdf?MOD=AJPERES

I loved it, in fact it is one of the best papers I have read for a long time! Because of all the details given in the paper (even matlab code!) it should be doable… and it will be well worth the effort!

Hi vonjd,

Thanks for the kind words. The paper you referenced was already replicated by Quantivity. If you are interested he provides code and everything here:

http://quantivity.wordpress.com/2012/11/09/multi-asset-market-regimes/

M

Well, yes and no: quantivity started with a first post on it but has not managed to complete the replication as of yet :-( (btw: I am the “astute reader” mentioned ;-)

Another thing: Running your code gives me two errors:

Error in which(dia[, 1] > dia[, 2]) : object ‘dia’ not found

Error in `[.xts`(x, i, which.i = TRUE) : object ‘period.ends’ not found

Can you help?

Thank you and keep up the good work!