5D Library › Non-Ergodic Wealth Dynamics, the Kelly Criterion and Volatility Drag · 中文
Chapter 1 The Ensemble Average Is Not the Time Average
Ten thousand players and one player
The coin game of the preface can be worked out exactly. Each round, wealth is multiplied by 1.5 or by 0.6, each with probability one half.
The ensemble average is the average over many parallel players at the same moment, that is, the mathematical expectation: the expected factor per round is 0.5 × 1.5 + 0.5 × 0.6 = 1.05, so expected wealth grows by 5 % a round, and after a hundred rounds it is 1.05100 ≈ 132 times the start.
The time average is the average along one player’s time line. In a hundred rounds there will be roughly fifty heads and fifty tails, leaving wealth at about 1.550 × 0.650 = 0.950 ≈ 0.005, five thousandths of the start. The typical factor per round is the geometric mean √(1.5 × 0.6) ≈ 0.9487, or −5.13 % a round.
Calculation
The exact values, and a simulation in which ten thousand players each play a hundred rounds.
# The multiplicative coin game: each round wealth is multiplied by 1.5 (heads) or 0.6
# (tails), each with probability 1/2. Compare the ensemble average (the expectation, an
# average over many parallel players) with the time average (the growth one player
# experiences by playing on).
import math, random, statistics
UP, DOWN = 1.5, 0.6
ens = 0.5 * UP + 0.5 * DOWN # expected factor per round
tim = math.sqrt(UP * DOWN) # geometric mean factor per round
print(f"expected factor per round {ens:.4f} -> ensemble growth {100 * (ens - 1):+.2f} %")
print(f"time-average factor {tim:.4f} -> time-average growth"
f" {100 * (tim - 1):+.2f} %")
print(f"expected wealth after 100 rounds {ens ** 100:,.0f} x start")
print(f"typical (median) wealth after 100 rounds {tim ** 100:.4f} x start")
random.seed(1)
N, T = 10_000, 100
finals = []
for _ in range(N):
w = 1.0
for _ in range(T):
w *= UP if random.random() < 0.5 else DOWN
finals.append(w)
finals.sort()
print(f"\nsimulation: {N:,} players, {T} rounds each")
print(f" sample mean of final wealth {statistics.fmean(finals):8.2f}")
print(f" median final wealth {statistics.median(finals):8.4f}")
print(f" share ending below the start {sum(w < 1 for w in finals) / N:8.1%}")
print(f" share ending below 1 % of start {sum(w < 0.01 for w in finals) / N:8.1%}")
top = sum(finals[-N // 100:]) / sum(finals)
print(f" wealth held by the richest 1 % {top:8.0%}")
# With N players the sample mean tracks the expectation only while some player is likely
# to have had an exceptional run; for long games it falls far below the expectation, is
# set by the one or two luckiest players, and jumps around between simulations.
for T2 in (10, 100, 1000):
random.seed(2)
m = statistics.fmean(math.prod(UP if random.random() < 0.5 else DOWN
for _ in range(T2)) for _ in range(N))
print(f" T = {T2:4d}: expectation {ens ** T2:9.3g}, sample mean of {N:,} {m:9.3g}")
# expected factor per round 1.0500 -> ensemble growth +5.00 %
# time-average factor 0.9487 -> time-average growth -5.13 %
# expected wealth after 100 rounds 132 x start
# typical (median) wealth after 100 rounds 0.0052 x start
#
# simulation: 10,000 players, 100 rounds each
# sample mean of final wealth 109.53
# median final wealth 0.0052
# share ending below the start 86.4%
# share ending below 1 % of start 54.0%
# wealth held by the richest 1 % 98%
# T = 10: expectation 1.63, sample mean of 10,000 1.62
# T = 100: expectation 132, sample mean of 10,000 41.6
# T = 1000: expectation 1.55e+21, sample mean of 10,000 68.8The simulation shows every feature of the game:
- After a hundred rounds about 86 % of players are below where they started, and more than half have less than 1 % of their starting wealth; the median is about 0.5 % of the start, as the geometric mean predicts.
- The sample mean of the ten thousand players is still far above the start, but it comes almost entirely from a very few exceptionally lucky people: the richest 1 % of players hold about 98 % of all the wealth.
- The longer the game, the further the sample mean falls behind the expectation. At a hundred rounds the expectation is 132 times the start while the sample mean of ten thousand players is a few dozen and varies a lot from one simulation to the next; at a thousand rounds the expectation is of order 1021, while the sample mean is set by the one or two luckiest players. The expectation describes an ensemble of infinitely many players, and any finite group drifts ever further from it.
So “the expected value is positive” is true here, and “almost everyone loses” is also true. Mathematically, each player’s wealth tends to zero with probability one: ever closer to zero, though never exactly zero.
Ergodicity
A quantity is ergodic if its average over time equals its average over the ensemble: the average one person obtains by playing long enough is the same number as the average obtained by countless people each playing once.
Wealth itself is not ergodic in the coin game: its expectation grows by 5 % a round while its time average falls by 5.13 % a round. But the change in the logarithm of wealth is ergodic: each round’s Δln x is an independent, identically distributed random variable, and its time average equals its expectation, E[Δln x] = 0.5 ln 1.5 + 0.5 ln 0.6 ≈ −0.0527. For a multiplicative process, the right question about what will happen to one person in the long run concerns the expectation of the logarithm, not the expectation of wealth.
Evidence
Ergodicity economics. The physicists Ole Peters and Murray Gell-Mann argue that, to evaluate a gamble, one should not first ask “how much does expected wealth rise?” but “what dynamics does wealth follow?”. If gains are additive (a fixed amount won or lost each time), the time average of wealth changes equals the expectation, and the expected value is the right criterion; if gains are multiplicative, the right criterion is the expected change in log wealth, the time-average growth rate (Peters and Gell-Mann 2016). In a 2019 review Peters went further, proposing that many phenomena economics attributes to “risk preferences” can be understood as the result of maximising the time-average growth rate under non-ergodic dynamics (Peters 2019).
Bernoulli’s logarithm, and the economists’ reply
In 1738, answering the “St Petersburg paradox” (a gamble with infinite expected value that nobody will pay much to play), Daniel Bernoulli proposed that people maximise not expected wealth but the expected “utility” of wealth, and suggested the logarithm of wealth as that utility (Bernoulli 1954). This is where expected utility theory begins.
For multiplicative gambles, Bernoulli’s logarithmic utility and Peters’ time average lead to the same decisions: both require maximising E[ln x]. What differs is the reason. Bernoulli’s logarithm is an assumption about preferences (an extra coin is worth more to the poor than to the rich); Peters’ logarithm comes from the dynamics themselves (in a multiplicative world, only the log growth rate is ergodic).
Evidence
The economists’ reply. Doctor, Wakker and Wang point out that economists have long known the difference between the expected value and the long-run growth rate, and the link between logarithmic utility and the Kelly criterion; expected utility theory does not require people to maximise expected wealth, and utility functions exist precisely to describe the choices people make in a given situation, with no need for an ergodicity argument to support them (Doctor et al. 2020). Much earlier, Samuelson objected to the idea that one should maximise expected log wealth because the horizon is long: even over a long horizon, the strategy that maximises expected log wins only “on most paths”, and is not optimal for someone whose aversion to risk differs from the logarithm (Samuelson 1979).
Evidence
An experiment. Meder and colleagues had participants choose repeatedly between gambles under two conditions, one in which gains were additive and one in which they were multiplicative. The same participants showed clearly greater risk aversion under multiplicative dynamics, with choices close to those that maximise the time-average growth rate, which standard theory with a fixed utility function does not predict (Meder et al. 2021). This is a small laboratory study that still needs independent replication.
This book takes a practical position. Peters’ questions (“what dynamics does my wealth follow? do I care about the ensemble or about my own single path?”) are useful to any person or firm that lives only once; whether his view “replaces” expected utility theory is a theoretical question still under discussion, and the book does not rule on it.
Stake only part, and the outcome changes
The problem with the coin game is not that the gamble is bad, but that it stakes all of one’s wealth every round. If each round only a fraction f of wealth is staked, wealth is multiplied by 1 + 0.5f on heads and by 1 − 0.4f on tails.
Calculation
The time-average growth rate for different staking fractions, with the additive version for comparison.
# Two ways out of the coin game's paradox. (1) Dynamics: for ADDITIVE gains (win or lose
# fixed amounts) the time average equals the expectation; for MULTIPLICATIVE gains the
# time-average growth rate is the expected change in log wealth. (2) Stake only a
# fraction f of wealth each round: the factor becomes 1 + 0.5 f or 1 - 0.4 f.
import math
def g(f): # time-average (log) growth rate per round when staking fraction f
return 0.5 * math.log(1 + 0.5 * f) + 0.5 * math.log(1 - 0.4 * f)
print("additive version (+50 or -40 units a round): expected and time-average change +5")
print("multiplicative version: time-average growth per round = E[ln factor]")
print(f"{'fraction staked f':>18} {'growth per round':>18}")
for f in (0.0, 0.1, 0.25, 0.5, 0.75, 1.0):
print(f"{f:18.2f} {100 * (math.exp(g(f)) - 1):+17.3f} %")
# maximise g: 0.25/(1+0.5f) = 0.2/(1-0.4f) -> f* = 0.25
fs = [i / 1000 for i in range(1000)]
best = max(fs, key=g)
zero = min((f for f in fs if f > 0.05), key=lambda f: abs(g(f)))
gb = 100 * (math.exp(g(best)) - 1)
print(f"best fraction {best:.3f} (exactly 1/4): {gb:+.3f} % a round")
print(f"growth falls back to zero near f = {zero:.3f}, twice the best fraction")
# A Bernoulli (log-utility) decision maker declines the whole-wealth game, because
# E[ln factor] < 0, but accepts staking a quarter of wealth.
print(f"E[ln factor]: whole wealth {g(1.0):+.4f}; a quarter of wealth {g(0.25):+.4f}")
# additive version (+50 or -40 units a round): expected and time-average change +5
# multiplicative version: time-average growth per round = E[ln factor]
# fraction staked f growth per round
# 0.00 +0.000 %
# 0.10 +0.399 %
# 0.25 +0.623 %
# 0.50 +0.000 %
# 0.75 -1.893 %
# 1.00 -5.132 %
# best fraction 0.250 (exactly 1/4): +0.623 % a round
# growth falls back to zero near f = 0.500, twice the best fraction
# E[ln factor]: whole wealth -0.0527; a quarter of wealth +0.0062Staking a quarter of wealth each round turns the long-run growth rate from −5.13 % into +0.62 %; staking half makes it exactly zero, and staking more makes it negative. The best fraction, f = 1/4, is exactly what the Kelly criterion of Chapter 3 gives. It also shows that a decision maker with logarithmic utility (or one who cares about the time average) will refuse the “stake everything” game and accept the “stake a quarter” game: the same positive-expectation opportunity, depending on how one takes part.
Evidence
An empirical echo. Bessembinder studied all US common stocks in the CRSP database from 1926 to 2016 and found that about four out of every seven had buy-and-hold returns over their listed lives below those of one-month Treasury bills, while the best-performing 4 % or so (1,092 stocks) accounted for all of the stock market’s net wealth creation relative to Treasury bills (Bessembinder 2018). The average return of the market as a whole and the typical result of “buy one stock at random and hold it” are two different things. The structure resembles the coin game: the ensemble average is pulled up by a few extreme successes.
Note
What this chapter cannot show. The coin game’s parameters were chosen to make a point; real investments are neither fixed two-point gambles nor independent from one period to the next. The time-average argument requires one person to repeat the same gamble over a long time; where a gamble is taken once, or where risk can be spread across many people (an insurer, say, or several people pooling their stakes), the ensemble average may be exactly the right criterion.
Summary
In a multiplicative world the expected value describes the average of infinitely many parallel players, and the time average describes your own single path. The coin game’s expectation rises by 5 % a round while almost every player’s wealth shrinks by about 5.13 % a round. The log growth rate is ergodic and links the two; Bernoulli’s logarithmic utility and Peters’ time average give the same decisions for multiplicative gambles, and their theoretical status is still debated. Staking only part of one’s wealth turns the same gamble from certain decline into steady growth. The next chapter moves to continuous time and uses Itô’s lemma to show how volatility itself levies a tax on the growth rate.
References
Fan, Y. (2026). Non-Ergodic Wealth Dynamics, the Kelly Criterion and Volatility Drag: From Itô's Lemma on Geometric Brownian Motion and Ruin Barriers to Barbell Portfolios, Read Beside the Shiji's 'Biographies of the Money-Makers' [非遍历性财富动力学、凯利准则与波动率税] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23754709 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).