Skip to content
All library documents

Stress Testing Correlation Matrices in Portfolio Optimization

Article Quant Q&A · Author: NeverStopLearning

Summary

The document considers how to stress a correlation matrix used in mean-variance portfolio allocation and risk calculations. Simply multiplying every entry can make diagonal self-correlations exceed one; scaling only off-diagonal entries can still create impossible correlations or a matrix that is not positive semidefinite, a condition needed for a valid covariance structure.

Suggested alternatives are to check whether a manipulated matrix remains positive semidefinite, bootstrap correlations or volatilities from the input data, or adjust eigenvalue weights and then normalize the resulting matrix. The answer favors bootstrapping because it reflects estimation uncertainty in correlations. These are brief suggestions rather than a worked procedure or comparative empirical test, and the document does not specify a bootstrap design or eigenvalue adjustment method.

Key ideas

  • Multiplying correlation entries can produce values outside the valid range and a non-positive-semidefinite matrix.
  • Keeping diagonal entries at one does not guarantee that a stressed matrix remains valid.
  • Bootstrapping correlations or volatilities can represent uncertainty in their estimates.
  • Eigenvalue adjustments offer another way to alter overall correlation while rebuilding a normalized matrix.
  • Check matrix validity before using a stressed correlation matrix in portfolio calculations.

Tags

Full text
# How to stress test a correlation matrix


# How to stress test a correlation matrix












As part of a mean variance portfolio task, I am calculating portfolio risk and optimal allocations between assets given required level of return. Input: expected returns, volatility and correlation matrix. So far so good.

As a second part, I am supposed to stress input correlation matrix by some multiplier (say 1.3) and see how to it impacts the allocations and portfolio risk.

The question I have is: can I just multiply all fields in the correlation matrix by the given multiplier? It seems wrong to me as I would end up with "self correlation" > 1 on the diagonal, which makes no sense? Should I just keep diagonal as 1s and only multiply the rest? What if the multiplier is such that correlation between i and j will be >1 anyway? Any ideas appreciated, thank you.

NOTE: No risk free asset in this scenario, but it shouldn't matter.

## Answer by Kermittfrog (score 2, accepted)

https://quant.stackexchange.com/a/51483

As the correlation matrix will most probably become non-positive-semi-definite with such an ad hoc manipulation, you may try one of the following:

- Still run that algorithm and check that the resulting matrix is still positive (semi) definite.

- Bootstrapp the correlation matrix, or the volatilities, or both, from your input data.

- Manipulate the eigenvalues of your correlation matrix, e.g. by shifting more weight to the first eigenvalues (increasing correlations, overall) and then normalise the hypothetical correlation matrix obtained by multiplying your original eigenvectors with your shifted eigenvectors.

IMHO, option 2 has the most merit as it incorporates the empirical variability of the correlation matrix estimation into your portfolio selection process.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.