Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

Could you suggest good articles / books / online materials on correlation stress testing?

Correlation stress testing: say, we have a positive semidefinite correlation matrix. We might want to explore the impact on the results if some or all elements of the matrix are increased or a decrease by a given value/s. Of course, there are limits to stress testing due to the requirement of the correlation matrix to remain positive semidefinite.

Thank you in advance for your suggestions!

share|improve this question
add comment

2 Answers

up vote 4 down vote accepted

Of course, there are limits to stress testing due to the requirement of the correlation matrix to remain positive semidefinite.

finding these limits is, imho, the critical part of what you are trying to do.

The answer to this problem depends on how many of the correlation coefficient you want to stress test simultaneously.

if you want to stress test only one coeficient at a time (say the entry $a_{ij},i\neq j$ of your correlation matrix), then you can use the Gershgorin theorem to place explicit bounds of the values that $a_{ij}$ can take. Let $a_{ij}^+$ and $a_{ij}^-$ be these bounds. Then you can stress test by computing you measure of risk for a grid of values in $(a_{ij}^-,a_{ij}^+)$

If you want to stress test more than one (say $k>1$) coefficient simultaneously, then there is no closed form solution for the bounds on these correlations coefficients. An exact solution for this problem exists however (i.e. the $k$-dimensional ellipse inside which your $k$ correlation coefficient are allowed to reside) but this requires a higher level of mathematical sophistication. If this is the case you are interested in, let me know in the comments.


Exact solution for $k>1$: this is can be recasted as an SDP problem. say $a=(a_1,...,a_k)$ are $k$ correlation coefficients you want to vary and $w=(w_1,...,w_k)$ are strictly positive numbers and $C(a)$ is the $p$ by $p$ correlation matrix with $p\geq k$. Then,

$\underset{a|w}{\min.}\; a'w$

$s.t. C(a)\in \mathbb{R}_{++}$

where $\mathbb{R}_{++}$ is the set of all SDP symmetric matrices.

Imposing this constraint requires SDP programing. It can be shown that (via the Shur complement of $C(a)$) this is equivalent to imposing $p$ linear inequality and $p$ quadratic inequality on the values of $a$.

Now, we know the set of all solutions is a $k$ dimensional ellipse. Such ellipse is defined by $k+1$ points on it's boundary. Each solution to this SDP (corresponding to a given vector $w$) will be one point on the boundary of this ellipse.

Finally, each run of the minimization problem has time complexity $O(p^3)$ where $p$ is the number of assets.

there is a nice packages to solve SDP in Matlab. I think there is also one in R, but last i checked it was not as nice.

share|improve this answer
@kwak I would be interested in knowing the exact solution as my proposal is more of a hack rather than a principled approach. Could you provide a pointer like a reference/ a term to search for? –  user28 Sep 13 '10 at 0:15
@Srikant:> i don't think it's an 'hack' v.s. principled approach difference. Your answer is in term of eigenvalues whereas Edward's question specifically mentions individual correlation coefficients. As a statistician, i understand that eigenvalues have better statistical properties and are easier to work with than individual correlation coefficients (in this case the e.V.'s will have the positive side effect of 'pooling' the correlation coefficients). But your simulation will no longer be in terms of individual assets, which may (or may not) be important for Edward. –  user603 Sep 13 '10 at 0:28
@kwak Can you shed some light on the structure of the objective function? Why is it formulated the way it is? –  user28 Sep 13 '10 at 1:51
IMO, the above is a really helpful answer. +1 from me. –  user28 Sep 13 '10 at 2:23
@kwak that was very helpful! It is possible to estimate the limits to stress testing numerically by increasing the stress levels until the minimum eigenvalue of the matrix no longer is >= 0. I have also been exploring stress testing the entire matrix by a single parallel shift (ie each correlation +/- x stress level). Again, it is easy to estimate the limits to stress testing numerically. Rule of thumb: max upward stress is roughly equal to the smallest eigenvalue of a pos-def matrix. Max downward stress is more complicated. Is there a convenient way to solve this problem analytically? –  Edward Sep 13 '10 at 7:50
show 9 more comments

The answer may depend on why you want to do stress testing but here is one partial idea:

You can do a eigendecompostion of your current matrix, The eigenvectors are aligned with the axis of the ellipsoid corresponding to the correlation matrix and the eigenvalues are a measure of how "long" the ellipsoid is along the corresponding vector. So one way to perform stress testing is to vary the eigenvalues so that the shape of the ellipsoid changes from the original one.

share|improve this answer
Say, you have a portfolio of assets and you want to estimate the sensitivity of the diversification benefit to a severe change in correlations (therefore, the need to stress correlation matrix). Stressing the eigenvalues seems like a mathematically attractive idea, however, it doesn't necessarily reveal that much - wouldn't be more useful to stress actual correlation because you can express a view about specific variables. –  Edward Sep 12 '10 at 10:59
add comment

Your Answer


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.