A single value to measure equity market correlation

There exists a vast amount of studies that show an increase in correlation between global equity indices during bear markets and propose ways to measure/forecast this correlation (see for example Campbell, Koedjik and Kofman or Capiello, Engle and Sheppard, and many, many more). These studies differ greatly in their methodologies and complexities but they more or less all show the same significant increase in correlation during downturns in the equity market.

In this post we will take a look at a very simple method of measuring this correlation and using it to produce a market strength signal.

As a single-value metric to measure the general correlation inbetween different equity markets we will use the so-called “Standardized Generalized Variance”, or SGV for short. Generalized Variance was introduced by Wilks in Contributions to Probability and Statistics and adapted to SGV by Gupta.

What makes SGV so appealing is that it conveniently summarizes the information contained in the variance-covariance matrix for a given set of returns in one single number that can also be compared between different return matrices. For example, it would be possible to compare SGV values of equity and bond markets, or compare correlations inbetween different regions.

For a given m * n dimensional matrix of log returns, SGV is defined as taking the n-th root of the determinant of the variance-covariance matrix of log returns, or \sqrt[n]{|\Sigma|} where \Sigma is the covariance matrix of log returns.

For the return data we will be using a set of ETFs covering the major global equity markets (this is a simplifying assumption but using ETFs traded at the same exchange allows circumventing the time asynchronicity between indices; a way for accounting for this asynchronicity would for example be using the Hayashi-Yoshida correlation estimator and constructing \Sigma based on that).

The chosen ETFs are VTI (US Total Stock Market), EZU (iShares MSCI Eurozone), EWJ (iShares MSCI Japan) and EEM (iShares MSCI Emerging Markets).

Let’s take a look at the 1 year rolling SGV.

Post5_1

A few interesting features are immediately visible from this chart. First, the run up in the SGV prior to the Financial Crisis and the extreme spike caused by it. Second, also a run up (although less pronounced) can be observed before the Euro Debt Crisis in 2011.

Now overlay the mean returns of the chosen ETFs with the SGV to take a closer look.

Post5_2

This emphasizes the observations from before. SGV seems to do a reasonable job of identifying big run ups in correlation and therefore downturns in the equity market.

So how is this usable or in any way helpful? In it’s raw form SGV can extend the range of market strength indicators as well as risk measures. It can be part of a system identifying regime changes in the market as well as a signal for the need of downside protection. It could also build the basis of a trading strategy.

As a very simplified example, let’s have a look at the performance of a trading strategy that goes long VTI whenever the current SGV is below its 6 month high and switches to bonds (TLT) when it reaches a new high.

Post5_3

Post5_4

This is by no means a properly thought out and well constructed trading strategy, it just serves the purpose of demonstrating the fact that it definitely has merit spending some time on investigating the properties and possibilities of SGV further. This, however, will be the topic of a future post.

Until then,

QUANTBEAR

APPENDIX:

For running this code I used timeseries collected in my personal database. As the current Yahoo Finance data situation is not very good (understatement), I will only present the implementation of the SGV calculation (which is really straightforward anyway and can easily be translated to other programming languages). Once I find a suitable replacement for free EOD data, I will upload the full code to my github.

#obtain your matrix of log returns
cov_mat <- cov(logRet)

getSGV <- function(covv){
    det(covv)^(1/ncol(covv))
}

SGV <- getSGV(cov_mat) 

9 thoughts on “A single value to measure equity market correlation

  1. Pingback: Quantocracy's Daily Wrap for 05/31/2017 | Quantocracy

  2. Nice post. It is the first time I hear about SGV. My question is how would this measure compare against let’s say the average pairwise correlation of a correlation matrix? Does it capture something different from the latter?

    Liked by 1 person

    • Hi Aris,

      glad you liked the post. Compared to the average pairwise correlation, SGV also takes the variance of the individual assets into account. For example, if all correlations stay the same but the variances of all assets double, you wouldn’t see it using the pairwise correlation. With SGV it is visible. In that sense it provides a broader measure on the equity market strength than just through correlation.

      I have only recently started incorporating SGV into my own research/trading, so I would be happy to discuss it further if you have more questions/comments.

      Best,
      Quantbear

      Like

  3. Hello !

    Very interesting post.

    As a matter of fact, you might also be interested by two measures similar in spirit* to the one you are presenting:
    – RORO indicator of HSBC
    – Absorption ratio of Kritzman

    Cheers,
    Roman

    *: The two measures cited are using explicitely the eigenvalues of the covariance/correlation matrix to do their magic, the measure you are presenting here is using them implicitely as determinant = product of eigenvalues, so that in effect, the SGV applied to the covariance matrix is the average of its eigenvalues.

    Liked by 1 person

    • Hi Roman,

      thanks for your comment. I haven’t heard of the absorption ratio yet but will definitely check it out and compare it to SGV (judging from a quick glance at the paper it seems to perform similarly). If you have an implementation and are willing to share, please let me know.

      Best,
      Quantbear

      Like

  4. V Interesting post. Have you looked at how this compares to the VIX as a leading indicator? Eyeballing the two it seems the VIX might just have the edge on rolling SGV.

    Liked by 1 person

    • Hi kamal,

      thanks for your comment. It entirely depends on the application and your goal. Compared to VIX, SGV measures something entirely different. However, I agree with you that their realized paths through time look quite similar (correlation is around 70%).

      Best,
      Quantbear

      Like

      • Hi, I think the SGV is a very useful addition to the toolbox so thank you very much for your analysis on it. I only mentioned the VIX because to me the VIX is also the (implied) covar matrix of S&P components transformed into a scalar. Given that the main application seems to forecast bear markets, then calculating determinants is marginally more computationally demanding than eyeballing the VIX. I guess I need to do more research to figure out alternative applications for the SGV of which I am sure there are some 🙂

        Liked by 1 person

      • Hi kamal,

        I will give an overview of possible usages for SGV in one of my upcoming posts for sure.

        Regarding the VIX, it is calculated from option prices on the SPX, not on its components so it is a measure of future expected volatility and not a measure of the implied covariance matrix of the index components. There are, however, correlation indices on the SPX (KCJ, ICJ and JCJ) which would be closer to what you meant.

        I would be glad to discuss this further, as there are many ways/indicators/etc out there to measure the same thing 🙂

        Best,
        Quantbear

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s