Simulating Correlated Geometric Brownian Motion Paths with Cholesky Factors
Summary
The document explains how to simulate two correlated asset paths under geometric Brownian motion. It starts with a covariance matrix encoding each asset's volatility and their correlation, then factors that matrix with a Cholesky decomposition. Multiplying a vector of independent standard normal draws by the factor produces correlated shocks for a time step.
Those shocks enter each asset's log-price update, scaled by the square root of the time interval, alongside the drift adjusted for volatility. The response writes out the two-asset construction, including how the second shock combines the first independent draw with a residual component. This is a simulation recipe rather than an empirical study. The example is limited to two assets and a specified covariance structure; the notation in its expanded equations appears inconsistent in places, so implementations should check dimensions and drift and volatility terms carefully.
Key ideas
- A covariance matrix specifies the volatilities and correlation of asset shocks.
- Cholesky factorization maps independent normal draws into correlated shocks.
- Scale the correlated shocks by the square root of the time step in the GBM update.
- The illustrated method covers two assets and requires care when extending the matrix operations to more dimensions.
Tags
Full text
# Generally how to simulate bivariate (or multidimensional) BM sample paths?
# Generally how to simulate bivariate (or multidimensional) BM sample paths?
A topic I am struggling with is the implementation of a (for the simplest higher dimensional case) bivariate normal distribution simulation for geometric brownian motion. The clearest explanation by far I've been able to find is within Glasserman's Monte-Carlo Methods in Finance book, and this is what it says:
I understand that the covariance matrix $\Sigma$ of the two normal distributions needs to be provided (which is simple based on some sample date), and that $Z_i$ is a normal variable that needs to be numerically generated, but how would I go about incorporating the above into the standard GBM formula for generating a sample path? $$S_i = S_{i - 1} \exp\left\{ \left( r - \frac{1}{2}\sigma^2 \right) \Delta t + \sqrt{\Delta t} Z_i \right\}$$,
where $\Delta t = T / n$ and $n$ is the number of intervals.
I seriously do now know where to begin, so if some of you could give me pointers as how to approach this seemingly typical simulation demand, I would be very grateful.
## Answer by LocalVolatility (score 3)
https://quant.stackexchange.com/a/38348
For the two-dimensional case, the Cholesky decomposition of the covariance matrix
\begin{equation} \Sigma = \left( \begin{array}{c c} \sigma_1^2 & \rho \sigma_1 \sigma_2\\ \rho \sigma_1 \sigma_2 & \sigma_2^2 \end{array} \right) \end{equation}
is given by
\begin{equation} B = \left( \begin{array}{c c} \sigma_1 & 0\\ \rho \sigma_2 & \sigma_2 \sqrt{1 - \rho^2} \end{array} \right) \end{equation}
So trying follow your notation, let $Z_i \in \mathbb{R}^2$ be a 2-dimensional vector of independent univariate Gaussian random variables with elements $Z_{i, 1}$ and $Z_{i, 2}$. Then you update your spot price vector as
\begin{equation} S_i = S_{i - 1} \exp \left\{ \left( r - \frac{1}{2} \sigma^2 \right) \Delta t + \sqrt{\Delta t} B Z_i \right\}, \end{equation}
or writing it out
\begin{eqnarray} S_{i, 1} & = & S_{i - 1, 1} \exp \left\{ \left( r - \frac{1}{2} \sigma^2 \right\} \Delta t + \sqrt{\Delta t} \sigma_1 Z_{i, 1} \right\},\\ S_{i, 2} & = & S_{i - 1, 2} \exp \left\{ \left( r - \frac{1}{2} \sigma^2 \right\} \Delta t + \sqrt{\Delta t} \sigma_2 \left( \rho Z_{i, 1} + \sqrt{1 - \rho^2} Z_{i, 2} \right) \right\}. \end{eqnarray}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.