# Analytical solutions to limits of correlation stress testing

Suppose I have some initial correlation matrix. I want to stress each correlation in the matrix by the same constant simultaneously (except the diagonal; lets call this global parallel stress since it affects the entire matrix by the same constant at the same time). I start with adding 0.01% to each correlation and check if the matrix is still PSD. I continue increasing the stress levels by small increments. Eventually I encounter a stress level above which the matrix would no longer be PSD. Let's call this the upper stress boundary. I repeat the same procedure for negative stresses and find the lower stress boundary.

My general observation was that the minimum eigenvalue initial correlation matrix is roughly equal to the upper stress boundary. Is there an analytical solution for this problem?

Generally, I am more interested in the upper stress boundary. I stress the entire matrix at the same time because it is a simple way to reduce diversification benefit across all market variables. However, from a theoretical point of view it would be interesting to find out how to analytically calculate both lower and upper stress boundaries.

EDIT: please see a previous thread, which might be relevant here (some brilliant idea's from kwak): http://stats.stackexchange.com/questions/2572/correlation-stress-testing

-
You may want to explicitly link to the previous question on this issue as @kwak's answer on that question may be relevant here. –  user28 Sep 13 '10 at 15:35
Good idea! Added. –  Edward Sep 13 '10 at 15:51
Also, on re-reading your question it is not clear what you mean by "minimum eigenvalue initial correlation matrix". Could you clarify what you mean by that term? –  user28 Sep 13 '10 at 15:57
Minimum eigenvalue initial correlation matrix: 1) calculate the eigenvalues of the correlation matrix prior to stress testing (i.e. initial matrix), 2) select the smallest eigenvalue, 3) this eigenvalue will be roughly equal to the upper stress boundary. –  Edward Sep 13 '10 at 17:02
Apparently a solution had been founded on the OR exchange forum (or-exchange.com/questions/695/…). Edward:> Maybe you should repost mark this question as solved –  user603 Sep 14 '10 at 14:53

This is not a complete answer but it was too long to fit in as a comment and hopefully gives you some ideas.

What I am about to say is not really a proof but more of an intuitive sketch as to why the minimum eigenvalue may matter as far as the upper stress boundary is concerned.

Every correlation matrix can be decomposed into a set of eigenvectors and a corresponding set of eigenvalues. The eigenvectors correspond to the axis of the ellipsoid associated with the correlation matrix and the eigenvalues give us a 'sense' of the length of the axis associated with the corresponding eigenvector.

Now, when you stress a correlation matrix you are essentially performing one or more of the following two operations simultaneously: 1. You are rotating the eigenvectors and 2. You are changing the eigenvalues. Notice that rotating eigenvectors simply changes the orientation of the ellipsoid but if the eigenvalues remain positive then we have a psd correlation matrix. However, as eigenvalues drop the ellipsoid shrinks in the direction of the corresponding eigenvector and eventually as the eigenvalue reaches zero the ellipsoid collapses completely in that direction resulting in a matrix that is not psd.

As you stress the correlation matrix there is less room along the axis that is shortest (i.e., the axis which has the lowest eigenvalue) to shrink and thus the minimum eigenvalue has a special role to play in stress testing.

-

As kwak has pointed out, my question was answered on another forum:

http://www.or-exchange.com/questions/695/analytical-solutions-to-limits-of-correlation-stress-testing

I did several quick calculations and the suggested analytical solution is consistent with the numerical ones. I still need to check the proof.

-
This was an OR question to begin with :), i'm glad an elegant solution was found. –  user603 Sep 14 '10 at 21:10
when you get a chance please update your answer with the proof for the benefit of future readers. –  user28 Sep 15 '10 at 3:23

The proof should be rather simple. Let $C$ be your correlation matrix (it has all ones on the diagonal). You multiply each element on the off diagonal by $(1+k)$. This is equivalent to computing the matrix $\hat{C} = (1+k) C - k \operatorname{diag}(C) = (1+k)C - k I,$ where $\operatorname{diag}$ is the diagonal part of a matrix, which in the case of $C$ is $I$, the identity matrix. It is well known that the eigenvalues of a matrix commute with a polynomial applied to the matrix, and we are computing a polynomial function of $C$, with polynomial function $f(x) = (1+k)x - k$. Thus if $\lambda$ is an eigenvalue of $C$, then $f(\lambda) = (1+k)\lambda - k$ is an eigenvalue of $\hat{C} = f(C)$. Setting $f(\lambda) \le 0$ for $\lambda$ an eigenvalue of $C$ gives the desired condition on $k$.

Note that depending on whether $k$ is positive or negative, you will want to check either $f(\lambda_1)$ or $f(\lambda_n)$, where $\lambda_1, \lambda_n$ are the smallest and largest eigenvalue of $C$. Unless $C$ is the identity matrix, you will have $\lambda_1 \lt 1 \lt \lambda_n$. This is the case because the sum of the eigenvalues equals $n$, the size of the matrix $C$.

The commutivity of eigenvalues and polynomials is easy to check, actually. First if $x, \lambda$ are eigenvector, eigenvalue of matrix $A$, show that $x, c\lambda^j$ are eigenvector, eigenvalue of $c A^j$. This holds for integer $j$, even negative integers or zero. Then show that if $x, \lambda_1$ are eigenvector, -value of $A$ and $x, \lambda_2$ are eigenvector, -value of $B$, then $x, \lambda_1 + \lambda_2$ are eigenvector, -value of $A + B$. From there, one can easily show that $x, c_0 + c_1 \lambda + c_2 \lambda^2 + \ldots c_n \lambda^n$ are eigenvector, -value of the matrix $c_0 I + c_1 A + c_2 A^2 + \ldots c_n A^n$.

-
Indeed this is the same proof as the one provided by Paul Rubin on or-exchange.com. Multiplying each correlation by a constant has a very significant drawback though - it is a very very small stress test. It is possible to apply a much larger stress test by adding a constant to each matrix, not multiplying. However, it seems the analytical solutions for that are a little less obvious. –  Edward Sep 19 '10 at 12:15
what exactly is your question, then? –  shabbychef Sep 19 '10 at 19:55
Same as before - I am looking for an analytical solution for correlation matrix stress testing. Solutions have been suggested for stress testing utilising multiplication but not addition of stress levels (addition was my original question above). Either way, thank you everyone. –  Edward Sep 19 '10 at 22:02
ah, I think I see: you want to add a fixed amount to every off-diagonal element? I think my other answer can be adapted to that case. –  shabbychef Sep 20 '10 at 4:14
I am not sure what the real question is, but suppose instead of changing every non-diagonal element, you changed just 2 (to keep the resulting matrix symmetric). That is let $\hat{C}$ be $C$ with $\hat{C_{i,j}} = C_{i,j} + \Delta C / 2= \hat{C_{j,i}},$ for some choice of $i,j$ with $i \ne j$. (alternatively, imagine $\Delta C$ is added to $C_{i,j}$ only, and so $\hat{C}$ is no longer symmetric.) I will consider the question "how small can $\Delta C$ be before $\hat{C}$ is no longer PSD?"
This question is easily solved as well, but the answer is not enlightening in my view. Let $\lambda_k, x^{(k)}$ be eigenvalue and eigenvector of $C$, where the eigenvector has unit norm. $\hat{C}$ is no longer PSD if there is index $k$ such that $\lambda_k + \Delta C x^{(k)}_i x^{(k)}_j < 0$. This can only hold if $x^{(k)}_i x^{(k)}_j < 0$, in which case we have $\Delta C > -\lambda_k / x^{(k)}_i x^{(k)}_j$. Compute the RHS for each $k$ for which the negativity condition holds and take the minimum, and that gives you the sufficient condition on $\Delta C.$