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 之间;在同样的方差下,极端事件的频率可以相差许多个数量级。这让波动率税更重、凯利杠杆更低、吸收壁更近。杠铃式配置能限定最大损失,但它的长期增长取决于高赔率部分的定价;买入保险类头寸的平均收益通常为负,杠铃因此往往是在用增长率换取有限的最坏情况。下一章把前六章的结论与《史记·货殖列传》中的治生之道并读。

参考文献

Cont, Rama. 2001. “Empirical Properties of Asset Returns: Stylized Facts and Statistical Issues.” Quantitative Finance 1 (2): 223–36.
Coval, Joshua D., and Tyler Shumway. 2001. “Expected Option Returns.” Journal of Finance 56 (3): 983–1009.
Gabaix, Xavier, Parameswaran Gopikrishnan, Vasiliki Plerou, and H. Eugene Stanley. 2003. “A Theory of Power-Law Distributions in Financial Market Fluctuations.” Nature 423: 267–70.
Mandelbrot, Benoit. 1963. “The Variation of Certain Speculative Prices.” Journal of Business 36 (4): 394–419.
Taleb, Nassim Nicholas. 2007. The Black Swan: The Impact of the Highly Improbable. Random House.
Taleb, Nassim Nicholas. 2012. Antifragile: Things That Gain from Disorder. Random House.

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).