Skip to content
All library documents

Geometric Brownian Motion: Arithmetic and Log Return Parameters

Article Quant Q&A · Author: utopia

Summary

The document explains why geometric Brownian motion parameters can be confusing: arithmetic returns and log returns are calculated differently, and the same distinction affects how a price process is modeled. A price path that falls and then recovers can have zero cumulative log return while its arithmetic returns have a positive average, illustrating that averaging the two return types does not give the same result.

For the standard GBM price SDE, applying Itô’s lemma shows that log price changes have drift μ − σ²/2 and volatility σ. Thus μ is the drift parameter of the price process, not directly the expected log return; the latter includes the variance adjustment. The answer cautions that an assumed model for additive price changes is a different process and may not correspond to an SDE of the same form. When simulating and linking returns, log returns should be accumulated consistently with price ratios. The discussion is explanatory rather than a full parameter-estimation guide and does not settle every convention used in cited sources.

Key ideas

  • Arithmetic and log returns are computed differently and can produce different averages over the same price path.
  • In geometric Brownian motion, the log-price drift is μ − σ²/2, while σ is the diffusion scale.
  • The parameter μ in the price SDE is not the expected log return without adjustment.
  • Log returns compound through cumulative addition, whereas price relatives compound through multiplication.

Tags

Full text
# Parameters in the geometric brownian motion model for prices


# Parameters in the geometric brownian motion model for prices












I have asked another related question, which was too imprecise, hence the new thread.

I want to simulate returns using a geometric brownian motion model - a pretty basic thing to do, I know. Still, I am confused about the input parameters, $\mu$ and $\sigma$. I have seen different implementations: Is $\mu$ the mean of arithmetic returns, or is it the mean of logarithmitc returns? Is $\sigma$ the standard deviation of arithmetic returns or the standard deviation of log returns?

For example, Nielsen (1992), p. 11 defines $\mu$ as the logarithm of $E(P_t/P_{t-1})$. Tsay (2010), pp. 295 defines his estimate of $\mu$ in example 6.2. as the "estimated expected log return". But clearly, the logarithm of the price relative (example 1) is different than the expectation of the log return.

Another example is Blog, Gundersen (2024). The author here explicitly sets the volatility of log returns to be equal to the volatility of returns. Again, this confuses me.

## Answer by mark leeds (score 1)

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

Hi Utopia: You will already be quite familiar with what I write below ( so apologies for possibly putting you to sleep ) but I have found that one of the confusions ( or maybe the key confusion because once I realized it, it helped me a lot ) is that, when one discusses the "log returns versus arithmetic returns" topic, there are really two different pieces to the discussion and I believe this can cause confusion. I try to clarify it in what follows.

PIECE ONE:

One piece of the question is "how the two different types of returns are calculated":

By this I mean, say you have a three term series of prices: 100 50 and 100.

A) LOG RETURN:

The log return over the time interval is log(1/2) + log(2) = 0. or cumsum(log(price ratio)) = 0.

B) ARITHMETIC RETURN:

Then the arithmetic returns are -50/100 and 50/50 so -50 percent and 100 percent and the mean arithmetic return over the same time interval is 25 percent. (i.e. mean((50-100)/100, (100-50)/50)) = .25

So, the calculation method for the two types of returns is different. (and the AM-GM inequality holds).

PIECE TWO:

Piece two is the DGP interpretation to the "log returns versus arithmetic returns" question. This refers to the difference in the SDE process for $dS_t$ that causes the process for the respective type of returns to arise: log or arithmetic.

A) LOG RETURN:

In the log return case, the SDE is assumed to be $ds = \mu S dt + \sigma S dW_t$.

The solution is such that $log(S_t) - log(S_0) = (\mu - \frac{1}{2} \sigma^2)t + \sigma W_t$ where $W_t$ is $N(0,t)$

By solution, it is meant that, if you applied Ito's lemma to log(S_t) you will obtain the original SDE.

In this case, the returns are termed lognormal because the change in $log(S)$ is normal rather than the change in $S$ itself.

B) ARITHMETIC RETURN:

I don't know what the original SDE is such that the solution is

$(S_t - S_{0}) = \mu S_{0} t + \sigma S_{0} W_t$ where $W_t \sim N(0,t)$.

In fact, there probably isn't such an SDE but when that relation is assumed to hold, then the differences in prices ( divided by a constant ) are then $~N(0,t)$ rather than the differences in logs of prices.

So, my only point after this long-winded rant is that, when simulating a GBM, one has to not only generate log returns but also link them in the consistent manner which, AFAIK, is cumulative summing the log price ratios or taking the log of (the product of the price ratios).

I was unable to follow Method 2 in your other thread but Method 1 was generating arithmetic returns by exponentiating the log returns ( actually by taking the exponent you were generating price ratios which are (1 + arithmetic returns) ) and then linking those returns by doing cumprod on them. You had log returns originally before the exp so, if you wanted the linked log return, it probably should have been cumsum(log(St1). But check that of course, I've been wrong before :).

So this was just my two cents but here is a quant.stackexchange link that explains things nicely and includes R code.

Simulation of Geometric Brownian Motion in R

Also, the first part of this paper, by Vance Harwood, really helped me to understand the true difference between arithmetic returns and log returns. His use of the term "multiplicative process" was crucial for my understanding because, with log, you are "carrying the returns along" to the next return, when linking, so the variance is greater (than that of arithmetic which has no memory) and this causes a drain on the mean in the log case.

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4953845

ADDENDUM: 11-30-2024 #===================================================================

Utopia: I don't think you use R ( your code was Python ) but here's a different link to R code for geometric brownian motion. I bet you can still figure it out even if you don't use R.

https://stackoverflow.com/questions/61701138/brownian-motion-simulation-using-r

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.