Wiener Process

Table of Contents

1. Summary

A Wiener process — also called standard Brownian motion and written \(W_t\) or \(dW\) in differential form — is the continuous-time analogue of a random walk: a path that accumulates independent, normally-distributed increments over infinitesimally small time steps. It has no drift and no memory of its own history beyond its current value, which makes it the simplest possible building block for randomness in continuous time — every process in the Stochastic Processes cluster uses a Wiener process as its source of noise, scaled by a volatility parameter and, for the mean-reverting processes, combined with a drift term pulling the path back toward a target level.

2. Layperson's mental model

Picture a tiny cork bobbing on choppy water: every instant it gets knocked a random, tiny amount left or right, and each knock is completely unrelated to the last one — no momentum, no memory, no pattern. Track the cork's position over time and that path is a Wiener process. Two consequences fall straight out of that picture: it can drift arbitrarily far in either direction (nothing is pulling it back to where it started), and knowing its entire history up to now tells you nothing about which way the next knock will push it beyond what its current position already tells you.

In code, a "knock" is just a draw from a standard Normal distribution, scaled by however big the knocks are meant to be (sigma, σ):

const double z = normal_(rng_);              // the "knock", z ~ N(0, 1)
price_ = price_ + sigma_ * z;                 // one Wiener-driven step

Every process in this cluster is built by taking exactly this sigma_ * z term and adding a rule for how much the state should also drift, deterministically, in between knocks.

3. Detail

3.1. Brownian motion vs. the Wiener process

The two names are used interchangeably in this cluster, but they originate from different things, and it is worth knowing why:

  • Brownian motion is the name of a physical phenomenon: the erratic, jittery movement of a small particle (pollen grains, in Robert Brown's 1827 observation) suspended in a fluid, buffeted by unseen molecular collisions. It is an empirical observation, not a mathematical object.
  • The Wiener process is the rigorous mathematical model of that phenomenon: the specific random process satisfying the four defining properties below. Norbert Wiener gave the first rigorous mathematical construction proving such a process exists at all (1923) — a genuinely hard problem, since a path with property 4 below (continuous everywhere, differentiable nowhere) was, at the time, a mathematical object nobody had shown could be constructed rigorously.

So "Brownian motion" names the phenomenon (and, by extension in mathematical finance, is used as a synonym for its model), while "Wiener process" names the specific mathematical construction that models it rigorously. This document uses the two names interchangeably from here on, following the standard convention in the field — but the Wiener process is properly the mathematical model of Brownian motion, not merely another word for the same physical phenomenon.

Contrast this with the random walk: a random walk is discrete from the outset — a finite or countable sequence of individually distinct steps, each one a fully formed event you could point to and count. Brownian motion, and the Wiener process modelling it, is continuous from the outset — a jittery physical particle path, not a sequence of discrete jumps. The two do not start from the same kind of object — one is inherently step-by-step, the other inherently unbroken — but they are intimately related: a Wiener process is the continuous-time limit of a random walk as the step size shrinks to zero while the number of steps grows to keep total variance fixed (Donsker's theorem) — see the Random Walk doc for the discrete object itself and the precise sense of that limit.

3.2. Defining properties

A process \(W_t\) is a standard Wiener process if:

  1. \(W_0 = 0\).
  2. Increments are independent: for any \(0 \le s < t\), \(W_t - W_s\) is independent of the path up to time \(s\).
  3. Increments are normally distributed with variance equal to the elapsed time: \(W_t - W_s \sim N(0, t - s)\).
  4. Paths are continuous (almost surely), but nowhere differentiable — the path is a continuous curve with no well-defined instantaneous slope anywhere, a genuinely strange property with no everyday analogue.

Property 3 is the one every discretisation in this codebase reduces to: a single tick's increment \(dW\) over a unit time step is simply \(Z \sim N(0, 1)\), a draw from the standard Normal distribution. This is exactly why ornstein_uhlenbeck_process, vasicek_process, and the other processes in this cluster all update state with a term of the form \(\sigma Z\): it is \(\sigma \, dW\) for a unit-length tick.

3.3. Why "no memory" matters

Property 2 above is a statement of the Markov property: the distribution of the next increment depends only on the current state, never on how the path got there. Every process built from a Wiener process inherits this unchanged — see the Markov Property doc for the general statement and why it is what makes exact tick-by-tick simulation possible.

3.4. The discrete-time counterpart

The random walk is the discrete object this process is the limit of. It is the sequence formed by summing independent and identically distributed steps, \(S_n = S_0 + \sum_{i=1}^{n} X_i\), and it carries the no-memory property in its plainest form, since each step is drawn independently of every earlier step and no continuous-time subtlety is involved.

Two of its properties belong beside the continuous process.

  • The increments are stationary while the level is not. The law of one change does not depend on the index, and the variance of the level grows in proportion to the number of steps, \(\operatorname{Var}(S_n) = n\,\sigma^2\). Uncertainty widens with the horizon instead of settling to a fixed spread.
  • The recursion puts a coefficient of exactly one on the previous level, so a shock never decays and the level is \(I(1)\). The Ornstein-Uhlenbeck process is the contrast, where a restoring force makes each shock's influence fade geometrically.

The limit that turns one object into the other is a rescaling. Send each step to \(1/\sqrt{n}\) in size and the spacing between steps to \(1/n\) of a unit of time, then let \(n\) grow without bound, and the rescaled walk converges to the Wiener process. That statement is Donsker's theorem, also called the functional central limit theorem, and it is the precise sense in which a Wiener process is a continuous-time random walk rather than an analogue of one.

The relation also runs the other way in practice. A simulated Wiener process advances in discrete ticks, so a computer's version of it is already an approximating random walk aimed at the continuous idealisation rather than at the continuous object itself.

This section absorbs the note Random Walk, which stays in the graph until the disposal step removes it.

4. See also

4.1. Further reading

  • Wiener, N. (1923). "Differential-Space." Journal of Mathematics and Physics, 2(1-4), 131-174. The original rigorous construction of the process (as a model of physical Brownian motion, following Einstein's 1905 and Bachelier's 1900 earlier, less rigorous treatments).
  • Bachelier, L. (1900). "Théorie de la spéculation." Annales Scientifiques de l'École Normale Supérieure, 3(17), 21-86. The first application of Brownian motion to finance — modelling stock prices — predating both Einstein's physics paper and Wiener's rigorous construction by years.
  • Karatzas, I., & Shreve, S. E. (1991). Brownian Motion and Stochastic Calculus (2nd ed.). Springer. The standard modern graduate reference for the properties stated above.
  • Wikipedia: Wiener process and Brownian motion.

Emacs 29.3 (Org mode 9.6.15)