5D Library › 非遍历性财富动力学、凯利准则与波动率税 · English
第六章 尾部风险、肥尾分布与杠铃策略
正态分布低估了什么
前几章大多假设收益服从正态分布(或者对数正态)。这个假设在数学上方便,却系统性地低估了极端事件。
证据
肥尾。 曼德博在 1963 年研究棉花价格的变化,发现大幅变动出现得远比正态分布预言的频繁,提出用尾部更厚的稳定分布来描述价格变化 (Mandelbrot 1963)。此后大量研究确认了资产收益的一组「典型事实」:收益分布的尾部比正态分布厚得多,尾指数通常在 2 到 5 之间;大的波动聚集在一起;收益本身几乎不相关,但收益的绝对值长期相关 (Cont 2001)。加拜克斯等人报告,股票日收益的尾部近似服从指数约为 3 的幂律,即所谓「立方反比定律」(Gabaix et al. 2003)。
推导
三种方差相同的分布:正态分布、自由度为 3 的学生 t 分布(尾指数为 3),以及尾指数为 3 的对称帕累托型尾部。按每年 252 个交易日,比较单日下跌 k 个标准差的概率与「平均多少年一次」。
# How often should a daily fall of k standard deviations happen? Three distributions with
# the SAME variance: Gaussian; Student t with 3 degrees of freedom (tail exponent 3, close
# to the "inverse cubic law" estimated for daily stock returns); and a symmetric
# Pareto-type tail with exponent 3.
import math
def gauss_tail(k): # P(Z < -k), computed without cancellation
return 0.5 * math.erfc(k / math.sqrt(2))
def t3_cdf(x): # Student t, 3 d.f., closed form
u = x / math.sqrt(3)
return 0.5 + (math.atan(u) + u / (1 + u * u)) / math.pi
def t3_tail_same_var(k): # t3 has variance 3; rescale to unit variance
return t3_cdf(-k * math.sqrt(3))
def pareto_tail_same_var(k, a=3.0):
# symmetric, |X| = xm U^(-1/a) (Pareto); E[X^2] = a xm^2 / (a - 2) = 1
xm = math.sqrt((a - 2) / a)
return 0.5 * (xm / k) ** a if k > xm else 0.5
days = 252
print("probability of a one-day fall of k s.d. (and once in how many years)")
print(f"{'k':>3} {'Gaussian':>23} {'Student t, 3 d.f.':>23} {'Pareto tail, a = 3':>23}")
for k in (3, 5, 10, 20):
cells = [f"{p:7.1e} ({1 / (p * days):9.3g} y)"
for p in (gauss_tail(k), t3_tail_same_var(k), pareto_tail_same_var(k))]
print(f"{k:3d} " + " ".join(f"{c:>23}" for c in cells))
# 19 October 1987: the S&P 500 fell about 20.5 % in one day; ASSUMING a daily s.d. of
# about 1 %, that is roughly a 20-sigma event. (The universe is about 1.4e10 years old.)
p = gauss_tail(20)
print(f"\nGaussian 20-sigma fall: {p:.1e} a day, once in {1 / (p * days):.1e} years")
# probability of a one-day fall of k s.d. (and once in how many years)
# k Gaussian Student t, 3 d.f. Pareto tail, a = 3
# 3 1.3e-03 ( 2.94 y) 6.9e-03 ( 0.573 y) 3.6e-03 ( 1.11 y)
# 5 2.9e-07 ( 1.38e+04 y) 1.6e-03 ( 2.45 y) 7.7e-04 ( 5.15 y)
# 10 7.6e-24 ( 5.21e+20 y) 2.1e-04 ( 18.9 y) 9.6e-05 ( 41.2 y)
# 20 2.8e-89 ( 1.44e+86 y) 2.6e-05 ( 150 y) 1.2e-05 ( 330 y)
#
# Gaussian 20-sigma fall: 2.8e-89 a day, once in 1.4e+86 years方差相同,差别全在尾部。按正态分布,单日下跌 5 个标准差平均一万多年才发生一次,10 个标准差的时间尺度是 1020 年,远超宇宙的年龄(约 1.4 × 1010 年);按尾指数为 3 的分布,5 个标准差的下跌几年一次,10 个标准差的下跌几十年一次。1987 年 10 月 19 日,标普 500 指数一天下跌约 20.5%。作者的粗略计算:如果假定日波动率约为 1%,这相当于约 20 个标准差,在正态分布下根本不应该出现。
这对前几章的结论有直接影响:
- 波动率税更重。 第二章的 −σ2/2 是在正态近似下得到的;收益分布左尾越厚,同样方差下对数增长率的损失越大。
- 凯利杠杆更低。 用正态分布算出的凯利杠杆,在肥尾的现实中偏于激进。
- 吸收壁更近。 第四章的破产概率在肥尾下更高,因为一次极端事件就能直接穿过缓冲。
杠铃
塔勒布提出,面对无法预测、却后果巨大的极端事件(他称为「黑天鹅」),与其持有大量中等风险的资产,不如采用杠铃式的配置:大部分资金放在极其安全的资产上,小部分资金放在损失有限、但在极端事件中可能获得巨大回报的高赔率头寸上,中间几乎不放 (Taleb 2007, 2012)。这种配置的最大损失被限定在高赔率部分的规模之内。
杠铃的说法听上去很有吸引力,但它的结果取决于一个经常被忽略的问题:高赔率的那部分是怎样定价的?
证据
保险通常不便宜。 科瓦尔与舒姆韦发现,标普 500 指数看跌期权的平均收益显著为负;零贝塔的平值跨式组合平均每周亏损约 3% (Coval and Shumway 2001)。也就是说,买入看跌期权这类「崩盘保险」的人,平均来说支付的价格高于按期望赔付计算的精算公平价值。科瓦尔与舒姆韦把这一溢价解释为市场对波动率风险(崩盘时波动率飙升)的定价,买方是在为一种真实的风险付费,而不只是被高收费。
推导
一个诚实的玩具模型(全部参数为示意性假设):股票在 95% 的年份中对数收益服从均值 8%、标准差 15% 的正态分布,5% 的年份下跌 40%;国库券每年 3%。比较全部股票、六四开、90% 国库券加 10% 的不同「高赔率部分」,以及 97% 股票加 3% 崩盘保险。高赔率部分包括:85% 的年份归零、15% 的年份获得 6 倍(期望 0.90,即定价偏高)、公平定价(6.67 倍)与有真实优势(9 倍)的「彩票」,以及只在崩盘年份支付 12 倍的崩盘保险(公平价格为 20 倍)。每年再平衡一次,30 年。
# An honest toy model of a barbell. Yearly steps, 30 years, rebalanced once a year.
# Equity: ordinary years (95 %) log-return ~ Normal(8 %, 15 %); crash years (5 %) -40 %.
# Bills: 3 % a year, no risk.
# "Lottery" sleeve: long-shot bets that lose everything in 85 % of years and pay `pay`
# times the stake in 15 %, independently of equity (6x: expected value 0.90, a bleed).
# "Crash insurance": options worthless in ordinary years, paying 12x in a crash year
# (a fair price would be 20x; buyers of protection usually pay above fair value).
# All numbers are illustrative assumptions, not estimates for any market or product.
import math, random, statistics
def year(rng, pay):
crash = rng.random() < 0.05
eq = math.exp(-0.51) if crash else math.exp(rng.gauss(0.08, 0.15)) # e^-0.51 ~ -40 %
lottery = pay if rng.random() < 0.15 else 0.0
insurance = 12.0 if crash else 0.0
return eq, lottery, insurance
def run(weights, pay=6.0, years=30, n=20_000, seed=12):
rng = random.Random(seed)
finals, worst = [], []
for _ in range(n):
w, low = 1.0, 0.0
for _ in range(years):
eq, lot, ins = year(rng, pay)
k = weights[0] * eq + weights[1] * 1.03 + weights[2] * lot + weights[3] * ins
low = min(low, k - 1); w *= k
finals.append(w); worst.append(low)
finals.sort()
return (statistics.median(finals), finals[len(finals) // 20],
statistics.median(worst), min(worst))
# weights: (equity, bills, lottery, crash insurance)
rows = (("A 100 % equity", (1, 0, 0, 0), 6),
("B 60 % equity / 40 % bills", (0.6, 0.4, 0, 0), 6),
("C 90 % bills / 10 % lottery, pays 6x", (0, 0.9, 0.1, 0), 6),
("D same, fair price 6.67x", (0, 0.9, 0.1, 0), 20 / 3),
("E same, with an edge 9x", (0, 0.9, 0.1, 0), 9),
("F 90 % bills / 10 % crash insurance", (0, 0.9, 0, 0.1), 6),
("G 97 % equity / 3 % crash insurance", (0.97, 0, 0, 0.03), 6))
print(f"{'portfolio':<37} {'median':>6} {'5th pct':>7}"
f" {'typ. worst yr':>13} {'worst seen':>10}")
for name, wts, pay in rows:
med, p5, mw, ww = run(wts, pay)
print(f"{name:<37} {med:6.2f} {p5:7.2f} {mw:13.0%} {ww:10.0%}")
# portfolio median 5th pct typ. worst yr worst seen
# A 100 % equity 4.70 0.72 -40% -47%
# B 60 % equity / 40 % bills 4.11 1.40 -23% -27%
# C 90 % bills / 10 % lottery, pays 6x 0.76 0.28 -7% -7%
# D same, fair price 6.67x 0.90 0.30 -7% -7%
# E same, with an edge 9x 1.55 0.40 -7% -7%
# F 90 % bills / 10 % crash insurance 0.24 0.10 -7% -7%
# G 97 % equity / 3 % crash insurance 3.73 0.98 -22% -49%这个模型的结果与流行的说法不同:
- 最大损失确实被限定了。 90% 国库券加 10% 高赔率部分的组合,最坏的一年也只亏约 7%;全部股票最坏的一年亏损 40% 以上。
- 但定价偏高时,杠铃在慢慢流血。 高赔率部分期望只有 0.90(彩票)或 0.60(崩盘保险)时,30 年后的中位数财富分别只有起点的 0.76 倍与 0.24 倍,远低于全部股票或六四开的组合。即使定价公平,中位数也低于起点:高赔率部分大多数年份归零,中位数的路径赢的次数少于平均。
- 只有当高赔率部分确实有优势(9 倍)时,杠铃的中位数才高于起点,但仍远低于持有股票的组合。在这个模型里,杠铃买到的是「有限的最坏情况」,付出的是增长率。
- 少量的崩盘保险(97% 股票加 3% 保险)把典型的最坏一年从 −40% 降到约 −22%,代价是中位数财富从 4.7 倍降到约 3.7 倍。这是一份价格明确的保险,而不是免费的收益。它也只保崩盘年份:在模拟中,这个组合见过的最坏一年(−49%)甚至略差于全部股票(−47%),因为那是一个没有触发崩盘、股票却大跌的普通年份,保险分文不赔,还占用了 3% 的资金。
注
这个模型不能说明什么。 真实的期权价格、崩盘的频率与幅度、彩票型头寸的收益分布都与这里的假设不同,而且会随时间变化;模型不能用来判断任何具体的期权或产品是否值得购买。它说明的是一个结构:杠铃式配置的价值在于限定最大损失、让你在极端事件之后仍然留在游戏里(第四章的吸收壁),而它对长期增长的影响取决于高赔率部分的定价,不能事先假定为正。
假说 · 尚未验证
「生存优先」假说(尚未确立)。对有刚性支出的个人与小企业,在第四章的意义上先保证足够厚的现金缓冲,再在剩余资金中按分数凯利承担风险,其十年后财富的中位数不低于、而最差 5% 的结果明显好于不设缓冲的同等风险配置。如果对真实家庭或企业的追踪数据显示,持有较厚缓冲的一组在长期中位数上明显落后、而在尾部也没有改善,这一假说就被削弱。
本章小结
资产收益的尾部比正态分布厚得多,尾指数通常在 2 到 5 之间;在同样的方差下,极端事件的频率可以相差许多个数量级。这让波动率税更重、凯利杠杆更低、吸收壁更近。杠铃式配置能限定最大损失,但它的长期增长取决于高赔率部分的定价;买入保险类头寸的平均收益通常为负,杠铃因此往往是在用增长率换取有限的最坏情况。下一章把前六章的结论与《史记·货殖列传》中的治生之道并读。
参考文献
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).