Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Can we interchangeably use Cholesky decomposition of covariance and correlation matrix to generate simulations? If not, in which situations do we use one or the other and why? Thanks in advance.

share|improve this question
The usual approach is to decompose the correlation matrix. See e.g. here sitmo.com/article/generating-correlated-random-numbers Given the relationship between correlation and covariance $\rho_{XY}=\frac{cov(X,Y)}{\sigma_X \sigma_Y}$ you can always turn a covariance matrix into the correlation one. – Probilitator Mar 23 '14 at 9:25

You can use the either, as both necessarily are symmetric positive definite; covariance is a personal preference. It's really just a matter of scaling, as $\mathcal{N}(0,\Sigma)$ is distributionally $\sqrt{\Sigma} \mathcal{N}(0,1) $.

Correlation would require additional scaling (i.e. multiplication of every $\mathcal{N}(0,\rho)$ element by its respective volatility, and therefore requires more operations).

Glasserman (p. 72-74) also uses the covariance matrix for his introduction to Cholesky factorization, so I suspect it is not unusual, however I have also seen correlation (e.g. example of @Probilitator).

share|improve this answer
+1 for pointing to Glasserman's approach – Probilitator Mar 23 '14 at 13:52
Yes, ideally, we should be able to use either of those to generate the random samples. But are there any practical implications? Like while I was discussing the same thing with someone who works as a market risk consultant, he told me that some of the implementations only calculate correlation matrix once a month and calculate daily covariance matrix based on daily variances and the correlation matrix. I guess this approach would save some computation time but is this a correct approach? – user3212376 Mar 27 '14 at 7:20

I think Cholesky on correlation matrix is better because it makes code apply more generally in case we don't have full rank.

For example, suppose we want to simulate three correlated normals with covariance matrix [[a^2,0,0], [0,b^2,0], [0,0,c^2]]

i.e. variables are uncorrelated and have vols a, b, and c. Because this is positive definite, we can do Cholesky no problem, with result also [[a,0,0], [0,b,0], [0,0,c]]

However, if we get new data in telling us that b = c = 0, the Cholesky decomposition will fail because of non positive definiteness. Hence we'd need to modify our code to handle this case.

If however we'd done our coding in terms of a [diagonal] matrix S of volatilities and a correlation matrix K, we would perform Cholesky on K (to get matrix A say) and it would run fine even in zero volatility cases. The covariance matrix is the given by (SA)^2.

The underlying reason is that a correlation matrix is positive definite whenever the covariance matrix is, but the converse is false.

share|improve this answer

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.