1
$\begingroup$

I'm trying to do multivariate distributions of returns on buckets where all the returns are at least 0.6 correlated at a 95% confidence level. I have the buckets, but their Sigmas cannot be decomposed and my random number generator fails.

What alternatives do I have? If I break the buckets up into smaller ones, I lose the correlation in the simulation. Or am I completely wrong?

$\endgroup$
  • $\begingroup$ Is your matrix $\Sigma$ singular? $\endgroup$ – Bob Jansen Jul 6 '16 at 18:44
  • $\begingroup$ I can only assume that it is. I'm running smaller buckets and using rolling means to try to add in some of the historical correlation. $\endgroup$ – milkmotel Jul 6 '16 at 19:02
  • $\begingroup$ I don't believe I understand your setup but you can check whether the matrix is singular and whether that is the cause of the problem. $\endgroup$ – Bob Jansen Jul 6 '16 at 19:04
  • $\begingroup$ It wasn't singular. My setup was to calculate the covariance matrix for say ACWI, SP500, MSCI EM, HFRI Direct Hedged Equity, HFRI FOF, etc. I broke them into smaller buckets to simulate the returns over time, so I lose the correlation from period to period between the buckets, but since I'm only sampling the noise, the rolling means I use for each asset class of returns should add back in some of the correlation. $\endgroup$ – milkmotel Jul 6 '16 at 19:21
1
$\begingroup$

You need to adjust your correlation matrix such that it becomes positive definite.

There is an R routine that will do this for you - link.

Or, if you want to do it yourself, i believe the general method is to do an eigen value decomposition, set any negative eigenvalues to zero, and then reconstruct the original matrix.

If you're going to go down this route though, it works better to obtain your $\Sigma^\frac{1}{2}$ matrix using the EVD rather than cholesky.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.