Skip to content
All library documents

Simulating Correlated Geometric Brownian Motion with Cholesky Factors

Article Quant Q&A · Author: Merwin

Summary

The document explains how to simulate multiple geometric Brownian motion (GBM) processes whose Brownian drivers are correlated. It separates each process’s deterministic drift from its random component: the drift remains specific to that process, while correlation is introduced through correlated Brownian increments.

For each time step, independent standard normal draws are scaled by the square root of the step length and transformed with a Cholesky factor of the covariance matrix. The resulting increments are inserted into each process’s exponential GBM update, which includes that process’s drift and volatility. This addresses the concern that one asset’s negative drift should force another correlated asset’s drift downward: correlation links random shocks, not deterministic drift terms. The explanation assumes GBM dynamics and constant drift and volatility over the simulation horizon; it does not discuss calibration, numerical error, or how correlations may change over time.

Key ideas

  • Cholesky decomposition creates correlated Brownian increments from independent normal draws.
  • Each process keeps its own drift and volatility in the GBM update.
  • Correlation affects shared random shocks rather than deterministic drift.
  • The described setup assumes constant drift and volatility over the simulation horizon.

Tags

Full text
# GBM drift when simulating correlation betwenn GBM with Cholesky Decomposition


# GBM drift when simulating correlation betwenn GBM with Cholesky Decomposition












I am currently trying to simulate correlated GBM paths and I found the Cholesky Composition for it. From my understanding, the Cholesky Decomposition can be used to create correlated random variables from uncorrelated random variables. However, it does not take into account the drift, which is exactly where I am struggling to understand.

Lets say I have two processes $P1$ and $P2$, both follow a GBM. The correlation $\rho$ between the two is $0.8$. The drift of $P1$ is $-0.03$ and of $P2$ it is $0.02$. When using the Cholesky Decomposition to generate the correlated random variables, the negative drift of $P1$ is not considered for $P2$, meaning that $P1$ tends to go down while $P2$ still tends to go up, since the correlated random variables do not take into account the drift. Am I missing something or did I misunderstand something?

## Answer by Yoda And Friends (score 1)

https://quant.stackexchange.com/a/68061

I see a bit of confusion. Let's say you have a model of $n$ stochastic processes $X_i$. Let us assume that they follow a GBM. This means their dynamics are: $$dX_t^i = \mu^i_t X_t^i dt + \sigma^i_t X_t^i dW_t^i,$$ where $W_t^i, \ i \in \{1, ..., n\}$ are $n$ correlated standard Brownian motion.

In this setting let us assume (without loss of generality) that $\mu$ and $\sigma$ do not depend on time. We thus have a vector $$\mu = \{\mu^1, \mu^2, ..., \mu^n\}$$ and the variance covariance matrix $\Sigma$ (please spare me to write it in TeX).

Now, let us move to the simulation. Since (I believe) you have to simulate this in a computer, the setting has to be discretized. Let us fix a time horizon $[0, T]$ and let us assume to have a tenor structure $$\tau = \{t_0 = 0, \ t_1, \ t_2, ..., t_k = T \}.$$

The trick here is to observe that we can generate each process with a (composed) Euler scheme: $$X_{t_{j+1}}^i = X_{t_{j}}^i \cdot e^{(\mu^i - \frac{1}{2}\sigma^2_i)(t_{j+1} - t_{j}) + \sigma_i \Delta W^i(t_{j+1})}.$$ To clarify notation $$ \Delta W^i(t_{j+1}) = W^i_{t_{j+1}} - W^i_{t_{j}} \ \sim N(0, \ t_{j+1} - t_j)$$ is our increment for the $i$-th brownian.

As you can see, the correlation between assets is encapsulated in the brownian increments. Therefore, the problem of generating correlated assets (processes) boils down to a problem of generating correlated normal random variables.

Here it is where Cholesky decomposition is used. Indeed, call $L$ the Cholesky decomposition of $\Sigma$. It will be a $n$ square matrix. The steps to construct correlated (with $\Sigma$) brownian increments are:

- For each time step, simulate $n$ random variables $Z^I$.

- Multiply them by $\sqrt{t_{j+1} - t_j}$ to obtain the wanted variance

- You get $$\Delta W^i(t_{j+1}) = \sum_{q = 1}^nL_{i,q}Z_q.$$

As you can see, the correlation is on the stochastic driver and NOT on the drift. The drift is a deterministic movement.

Hope this clarifies.

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.