Ornstein-Uhlenbeck Process

Table of Contents

Summary

The Ornstein-Uhlenbeck (OU) process models a quantity that is pulled back toward a long-run level whenever it drifts away — the opposite behaviour to the unbounded wandering of Brownian motion. It is the general mean-reverting building block every short-rate model in this cluster specialises: Vasicek, Hull-White, and CIR are all OU with some variation on a constant mean-reversion target or the volatility term. ores::analytics::quant::service::ornstein_uhlenbeck_process implements it directly, and the exact per-tick discretisation it uses is the same one the Vasicek and Hull-White processes reduce to.

Layperson's mental model

Think of a stretched elastic band instead of a free-floating cork: the further the current value drifts from its resting length theta (θ), the harder the band pulls it back. Push it away and let go — it springs back toward theta (θ), with some random jitter added on top of the pull each tick. How stiff the band is (how fast it snaps back) is kappa (κ); how much random jitter is added on top is sigma (σ).

double ornstein_uhlenbeck_process::next() {
    const double z = normal_(rng_);
    const double decay = std::exp(-kappa_);
    const double var = (1.0 - decay * decay) / (2.0 * kappa_);
    // pulled toward theta_ by `decay`, then jittered by sigma_ * z
    price_ = theta_ + (price_ - theta_) * decay + sigma_ * std::sqrt(var) * z;
    return price_;
}

Detail

The SDE

\begin{equation} dX = \kappa(\theta - X)\, dt + \sigma\, dW \end{equation}

\(\theta\) is the long-run level \(X\) reverts toward; \(\kappa\) (also called the speed of mean reversion) controls how strongly and how fast it pulls back — a larger \(\kappa\) means a shorter half-life for any deviation from \(\theta\), and \(\kappa \le 0\) degenerates the process to a driftless random walk with no mean reversion at all (the \(\kappa \to 0\) limit of the variance term below).

The exact discretisation

Unlike GBM's log-price update, which is exact only after the Ito-lemma change of variables to \(\log S\), the OU SDE above admits a genuinely exact (not Euler-approximated) closed-form solution directly in \(X\), since the SDE is linear in \(X\):

\begin{equation} X_{t+1} = \theta + (X_t - \theta) e^{-\kappa} + \sigma \sqrt{\frac{1 - e^{-2\kappa}}{2\kappa}}\, Z, \quad Z \sim N(0, 1) \end{equation}

(with a unit tick, \(dt = 1\), matching the per-update convention the GBM/ arithmetic processes use for their increments). This is why ornstein_uhlenbeck_process never needs to fall back on an approximate discretisation the way a nonlinear SDE would: the whole transition — mean, variance, and all — is known in closed form for any tick size, not just in the limit of small ticks.

How the specialisations build on this

  • Vasicek: OU applied to a short rate \(r\) with a constant \(\theta\). Identical SDE, different application domain.
  • Hull-White: OU's \(\theta\) replaced with a piecewise-constant, time-varying \(\theta(t)\), letting the model fit an observed initial yield curve exactly rather than reverting to one fixed level.
  • CIR: keeps OU's drift shape \(\kappa(\theta-r)\) but replaces the constant volatility \(\sigma\) with a state-dependent \(\sigma\sqrt{r}\), which is what breaks the closed-form Gaussian transition above and forces the more involved non-central-chi-squared construction CIR actually uses.

See also

  • Stochastic Processes — the hub, including the comparison table across all four mean-reverting processes.
  • Wiener Process — the \(dW\) term OU is driven by.
  • Markov Property — the "no memory" property this process inherits from its Wiener-process driver.
  • Vasicek Process — OU applied to a short rate.
  • Hull-White Process — OU with a time-varying reversion target.
  • Cox-Ingersoll-Ross (CIR) Process — OU with a state-dependent volatility term.
  • Volatility — uses this process's stationary variance \(\sigma^2/2\theta\) to argue that observed volatility alone cannot distinguish a stable, mean-reverting system from one whose restoring force (\(\theta\)) is vanishing toward instability.

Further reading

  • Uhlenbeck, G. E., & Ornstein, L. S. (1930). "On the Theory of the Brownian Motion." Physical Review, 36(5), 823-841. The original paper, modelling the velocity of a Brownian particle under friction — the physical origin of the mean-reverting SDE this document describes, predating its finance application by decades.
  • Doob, J. L. (1942). "The Brownian Movement and Stochastic Equations." Annals of Mathematics, 43(2), 351-369. Gave the rigorous mathematical treatment (including the exact transition density used above) that put Uhlenbeck and Ornstein's physical argument on solid footing.
  • Wikipedia: Ornstein-Uhlenbeck process.

Emacs 29.3 (Org mode 9.6.15)