# How to detect regime change when estimating asset correlation from historical time series?

Suppose I have two asset time series, $X_t$ and $Y_t$, and I'm estimating their correlation from historical data. I'd like to apply some systematic criterion to estimate what time window I should use to estimate the correlation reliably, and also to spot "regime changes" (when the correlation jumps suddenly) after which I should discard old data completely (as opposed to rolling the window in a continuous manner). Can you recommend some approaches which have a decent theoretical background?

-

## 3 Answers

You can use changepoint analysis to identify regime change.

You can also look at large angle differences in the eigenvectors between your most up-to-date/recent covariance matrix and the covariance matrix from the prior window.

Another way to identify regime change is using a factor model. If the returns on a particular set of factors is X standard deviations from its usual terrain for a sustained period then you can call this regime change.

I do not believe you will find a single time window that is best. Regime duration is variable. Key here is identifying an estimation procedure for a covariance matrix that produces reasonable out-of-time forecasts. You will need to do some empirical testing, or develop a rule to re-estimate your model based on the how you identify regimes, or use Garch (or other dynamic model) as Patrick suggests.

Technical side note: You probably don't want to discard old data completely but instead weight more recent data with exponential weighting, or re-scale the covariance matrix to reflect current volatility. The eigenvectors of the correlation matrix (after the 1st eigenvector which is the market factor) will correspond to sector and industry groups. These correlations will persist. When market flip from bull to bear market (let's call this a 1st order approximation of regime - as opposed to style and industry changes) what is happening is that the variance explained by the largest eigenvector has increased substantially.

-
Do you have any references about changepoint analysis? – quant_dev Oct 14 '11 at 6:50

1
– strimp099 Oct 14 '11 at 15:32
Yep - those links look great – Quant Guy Oct 14 '11 at 17:47
@strimp099 Are there any resources in these search results you find particularly instructive and interesting? Introductions, surveys, papers, books? – vanguard2k Dec 27 '12 at 15:38
@vanguard2k I found the first two links interesting but in fair disclosure have done very little in the field area. I have not seen any papers either... – strimp099 Jan 7 at 18:23

I would suggest a multivariate garch model as a possibility. We aren't exactly overrun with wonderful software for that, but with just bivariate data I would think that the in-sample correlation estimates would be reasonably robust over models and estimation.

It would be good to try two or three ways of doing it to make sure I'm right about that.

You may find that the garch route is good enough to use as your solution if you aren't forecasting very far ahead.

-
Could I use R for that? – quant_dev Oct 12 '11 at 15:14

1
of course, garch is implemented in several R packages – RockScience Oct 13 '11 at 7:05

One approach would be Engle (2002) dynamic conditional correlations.

Taking your $Y_t$ and $X_t$, I will make the simplifying assumption that the mean equation of these is:

$$\boxed{Y_t = \mu_y + \varepsilon_{y,t}}$$

$$\boxed{X_t = \mu_x + \varepsilon_{x,t}}$$

with $\varepsilon_{y,t} = z_{y,t} \sigma_{y,t} \sim N(0,\sigma_{y,t})$, $\varepsilon_{x,t} = z_{x,t} \sigma_{x,t} \sim N(0,\sigma_{x,t})$.

In practice you might want to specify a GARCH-M, or a GARCH with exogenous variables inside the mean equation. For example if $Y_t$ and $X_t$ are individual stocks in the same market, you might want to include $R_{M,t}$ so that you don't detect any correlation due to this shared factor. If you're looking across borders GARCH-M terms may become important if you want to control for portfolio rebalancing due to changing relative risks or something. The mean equations can be written in vector form as:

$$\boxed{ Z_t = \mathbf{\mu} + \mathbf{\varepsilon}_t}$$

with $Z_t := [Y_t,X_t]'$, $\mathbf{\varepsilon} \sim N(0,H_t)$, $H_t := D_t R_t D_t$. Here, $R_t$ is the (possibly) time-varying correlation matrix and $D_t$ is simply $\text{diag}(\sigma_{y,t},\sigma_{x,t})$ when we assume no news or variance spillovers in the variance equation.

The DCC estimator in the `rmgarch` package will provide you with the dynamics of $R_t$ with no effort on your part. You can then visually inspect for a break in the correlation.

However, for an objective approach withing the DCC framework, take a look at this paper for the ability to hypothesis test structural breaks in the correlation.

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 16, "mathjax_display_tex": 3, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9419596791267395, "perplexity_flag": "middle"}