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.


1 Answer 1


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}

  • $\begingroup$ So it seems that each dimension needs to be simulated separately, and that the connection between the different paths is entirely contained within how the $Z_{i,j} ,\ j > 1$ is expressed? If so, how do I change the $j > 1$ random variables as you did in the above? I think that's the last missing piece I'm not getting. $\endgroup$
    – Coolio2654
    Feb 21, 2018 at 17:17
  • $\begingroup$ Sorry - I don't understand your question. What do you mean by "change the random variables"? Each of the $Z_{i, j}$ are just standard one-dimensional random variables. $\endgroup$ Feb 21, 2018 at 17:20
  • $\begingroup$ I mean how what you multiply $\sqrt{\Delta t}\sigma_2$ by for $S_{i,2}$ is not simply the standard normal $Z_{i,j}$, but an expression of it also utilizing $\rho$. $\endgroup$
    – Coolio2654
    Feb 21, 2018 at 19:47
  • $\begingroup$ Yes - this expression itself is a standard normal random variable that is has correlation $\rho$ with $Z_{i, 1}$. $\endgroup$ Feb 21, 2018 at 19:50
  • $\begingroup$ How would I write this expression out in higher dimensions, for $S_{i, [3,4,...]}$? $\endgroup$
    – Coolio2654
    Feb 21, 2018 at 19:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.