How does Cholesky decomposition generate correlated random variables for Monte Carlo simulation?
I understand that Monte Carlo simulation generates independent random numbers, but real assets are correlated. My FRM textbook mentions Cholesky decomposition as the standard method for introducing correlation. Can someone explain the mechanics with a two-asset example?
Cholesky decomposition is the workhorse method for converting independent random variables into correlated ones. It works by decomposing a correlation (or covariance) matrix into a lower triangular matrix.
The Key Idea:
If C is a correlation matrix, Cholesky finds a lower triangular matrix L such that:
C = L x L^T
Then if Z is a vector of independent standard normals, the product L x Z gives correlated normals with the desired correlation structure.
Two-Asset Example:
Suppose Ashford Risk Analytics wants to simulate correlated returns for two assets with correlation rho = 0.6.
Correlation matrix:
C = | 1.0 0.6 |
Cholesky decomposition:
L = | 1.0 0 |
(Where 0.8 = sqrt(1 - 0.6^2) = sqrt(0.64))
Generating Correlated Returns:
- Draw two independent standard normals: Z1 = 0.75, Z2 = -1.20
- Apply Cholesky:
- Correlated variable 1: X1 = 1.0 x Z1 + 0 x Z2 = 0.75
- Correlated variable 2: X2 = 0.6 x Z1 + 0.8 x Z2 = 0.6(0.75) + 0.8(-1.20) = 0.45 - 0.96 = -0.51
- Convert to returns: R_i = mu_i + sigma_i x X_i
The beautiful thing: X1 and X2 will have correlation exactly equal to 0.6 across many simulations.
Three or More Assets:
For n assets, the Cholesky matrix is n x n lower triangular. Each row builds on previous variables:
- Asset 1: uses only Z1
- Asset 2: uses Z1 and Z2 (to be correlated with Asset 1)
- Asset 3: uses Z1, Z2, and Z3 (to be correlated with both)
Important Requirements:
- The correlation matrix must be positive semi-definite (all eigenvalues >= 0)
- If it's not (e.g., from mixing different estimation windows), Cholesky fails and you need to fix the matrix first
- For very large portfolios (1000+ assets), computational efficiency matters — Cholesky is O(n^3)
FRM Exam Tips:
- Know the 2x2 case cold: L[2,1] = rho, L[2,2] = sqrt(1-rho^2)
- Understand that Cholesky preserves the Normal distribution — if inputs are Normal, outputs are multivariate Normal
- For non-normal returns, Cholesky + copula methods are needed
Practice simulation problems in our FRM Part I question bank.
Master Part I with our FRM Course
64 lessons · 120+ hours· Expert instruction
Related Questions
How exactly do futures margin calls work, and what happens if I can't meet one?
How do you calculate the settlement amount on a Forward Rate Agreement (FRA)?
When should I use Monte Carlo simulation instead of parametric VaR, and how does it actually work?
Parametric VaR vs. Historical Simulation VaR — when does each method fail?
What are the core components of an Enterprise Risk Management (ERM) framework, and how does it differ from siloed risk management?
Join the Discussion
Ask questions and get expert answers.