Markov Property

Table of Contents

Summary

A process has the Markov property ("no memory") if the distribution of its next state depends only on its current state, never on the path it took to get there. Every process in the Stochastic Processes cluster has this property, inherited from the Wiener process driving it — which is what makes exact, tick-by-tick simulation possible: each new state can be drawn from the current one alone, with no need to replay or retain the whole path history.

Layperson's mental model

Think of a video game character standing on a tile: to know every move they're allowed to make next, you only need to know which tile they're on right now — not the sequence of tiles they walked across to get there. That's the whole idea. A process "has no memory" in exactly this sense: its current state is a complete summary of everything relevant about its past, for the purpose of predicting what happens next.

In code, this shows up as a next() method that only ever reads the process's current stored state, never a history buffer:

double ornstein_uhlenbeck_process::next() {
    const double z = normal_(rng_);
    // Only price_ (the current state) and z (a fresh random draw) are
    // used below -- no earlier value of price_ is read or needed.
    price_ = theta_ + (price_ - theta_) * decay + sigma_ * std::sqrt(var) * z;
    return price_;
}

If a process were not Markovian, this function signature would be a lie: it would need to accept (or internally retain) the whole path so far, not just the current price_, to compute a correct next value.

Detail

The formal statement

For a process \(X_t\), the Markov property says:

\begin{equation} P(X_{t+1} \mid X_t, X_{t-1}, \ldots, X_0) = P(X_{t+1} \mid X_t) \end{equation}

Conditioning on the entire history up to time \(t\) gives exactly the same distribution for \(X_{t+1}\) as conditioning on \(X_t\) alone — every earlier state is redundant information once the current one is known.

Where it comes from in this cluster

The Wiener process's defining property that increments are independent of the path up to the current time is exactly a statement of the Markov property for \(W_t\) itself. Every process built by adding a drift term and scaling the diffusion term — arithmetic and geometric Brownian motion, Ornstein-Uhlenbeck and its short-rate specialisations — inherits the property unchanged: an OU path's next value depends only on its current level, not on whether it arrived there by rising steadily or by a sharp reversal.

Why it matters practically

The Markov property is the entire reason every process in this cluster can be simulated exactly, one tick at a time, without ever needing the whole path so far: the transition from \(X_t\) to \(X_{t+1}\) is a self-contained calculation depending only on the value \(X_t\) already holds. A process without this property (one whose next-step distribution depended on, say, its average over the last year) would require retaining and replaying arbitrarily long path history just to draw the next state — dramatically more expensive, and the reason genuinely non-Markovian processes are far less common in practical simulation despite being mathematically well-defined.

See also

Further reading

  • Markov, A. A. (1906). "Rasprostranenie zakona bol'shih chisel na velichiny, zavisyaschie drug ot druga" ["Extension of the law of large numbers to dependent quantities"]. Izvestiya Fiziko-matematicheskogo Obschestva pri Kazanskom Universitete, 2-ya seriya, tom 15, 135-156. The original paper introducing what are now called Markov chains, studying dependent sequences that nonetheless satisfy the law of large numbers.
  • Karatzas, I., & Shreve, S. E. (1991). Brownian Motion and Stochastic Calculus (2nd ed.). Springer. Chapter 2 gives the modern, rigorous treatment of the Markov property for continuous-time processes, including the Wiener process.
  • Wikipedia: Markov property and Markov chain.

Emacs 29.3 (Org mode 9.6.15)