Simulating Correlated Economic Scenarios with Cholesky Decomposition
Summary
The document asks how to generate monthly forecasts for interest rates, inflation, and unemployment while preserving their relationships in Monte Carlo simulations. It describes using a covariance matrix to represent the variables’ joint dependence, then applying its Cholesky decomposition to vectors of random normal draws. Multiplying each draw vector by the resulting lower triangular matrix produces simulated variables with the specified covariance structure.
This is a basic way to create correlated inputs for scenario analysis, rather than sampling each series independently. The document gives no empirical demonstration or guidance on fitting the covariance matrix, matching historical distributions, or modeling time dependence across months. The generated scenarios therefore reflect the assumptions encoded in the matrix and the random draw distribution; preserving covariance alone may not capture more complex relationships or dynamics.
Key ideas
- A covariance matrix summarizes the pairwise dependence among the input variables.
- Cholesky decomposition factors a positive definite covariance matrix into a lower triangular matrix and its transpose.
- Multiplying independent normal draws by the Cholesky factor induces the specified covariance structure.
- The method alone does not model changing dependence or serial patterns across forecast months.
Tags
Full text
# Generate scenarios of multiple related parameters # Generate scenarios of multiple related parameters Assume I have three industry datasets: interest rates, inflation and unemployment. Data contains information of last ten years and it's monthly. Now, I would like to create N possible scenarios of the next year, also monthly. The idea is to run a Monte Carlo simulation that calculates a function that has interest rates, inflation and unemployment as input parameters. So I would like to create possible scenarios, but since there's a relationship between the parameters I cannot randomly select values. Is there a method to generate random data of multiple parameters taking into account that they are related? ## Answer by Karl L (score 1, accepted) https://quant.stackexchange.com/a/45590 This is a common occurrence in monte carlo models. I suggest you look into Cholesky decomposition. The basic idea is that if you have a covariance matrix M that describes the relationship between your data, the cholesky decomposition will produce a lower triangular matrix L such that M = L * L' Now if you generate a vector X of random normals you can take L * X to get a matrix of simulated variables that preserves the covariance structure. I recommend reading https://www.r-bloggers.com/simulating-data-following-a-given-covariance-structure/ which it explains why this is true.
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.