常见概率分布
某些概率模式在金融领域反复出现。正态、对数正态、二项、泊松和指数分布各自建模不同的现实世界现象。
为什么分布在金融中很重要
每个量化模型都从对随机变量服从何种分布的假设开始。选择错误的分布,你的在险价值(VaR)估计、期权定价或投资组合优化就会系统性出错。本文介绍的分布在金融中出现的频率非常高,因此熟悉它们是必备知识。
正态分布(也称高斯分布)是统计学中最常用的分布。它的钟形曲线无处不在:测量误差、身高、IQ 分数,以及在金融领域大多数经典模型的基础假设。
均值为 、方差为 的正态随机变量 记为:
其 PDF 为:
68-95-99.7法则告诉我们,对于任何正态分布:
- 约68%的值落在均值的一个标准差内。
- 约95%落在两个标准差内。
- 约99.7%落在三个标准差内。
在金融中,股票日收益率通常被建模为正态分布。这在数学上很方便,而且对于大型投资组合在历史上也是合理的。然而,正如我们将看到的,实际金融收益具有”肥尾”——极端事件发生的频率比正态分布预测的要高。
对数正态分布
股票价格不能为负。这是一个硬约束——一家公司的价值不可能小于零。但在破产时,股票价格确实可以跌至接近零。这种不对称性意味着我们不能用正态分布直接对股票价格建模,因为正态分布对所有实数(包括负数)都赋予非零概率。
解决方案是对对数收益建模为正态。如果对数收益 服从正态分布,那么股票价格 服从对数正态分布:
为什么这很重要?当对数收益以每期算术均值 、方差 (其中 是对数收益的历史均值,而非风险中性漂移率)服从正态分布时,实际(简单)收益 具有不同的分布。更重要的是,预期股票价格 呈指数增长,这与股权市场的长期行为相符。多出的 项源于 Jensen 不等式,因为 是凸函数:对数收益的方差会在 的水平上复合成正向偏差。
二项分布
二项分布计算 次独立试验中成功的次数,每次试验成功的概率为 。记为:
PMF 为:
其中 是二项式系数。
二项分布是离散时间期权定价的基础。著名的 Cox-Ross-Rubinstein(CRR)模型构建了一个二项树来近似股票价格的演化。在每个时间步,股票上涨 倍或下跌 倍,风险中性概率为 。期权的公允价格是该风险中性概率下的折现预期收益。
例子:统计一只股票在20个交易日内有多少天收盘价高于前一天的次数,每天”上涨日”的概率为55%。这个计数服从参数为 、 的二项分布。
泊松分布
泊松分布计算在固定时间或空间间隔内发生的事件数,假设事件以常数率 发生且相互独立:
其中 是率参数(每个间隔的平均事件数)。
在金融中,泊松分布对计数数据建模:一分钟内交易的数量、一年内股票价格的跳跃次数,或某个投资组合在给定季度内的违约次数。
泊松分布有一个性质:其方差等于均值,即 。当方差大于均值(过度离散)时,你可能需要用负二项分布来代替。
指数分布
指数分布对泊松过程中连续事件之间的时间进行建模——即到下一个事件发生的等待时间。如果事件服从率为 的泊松分布,等待时间服从相同率的指数分布:
指数分布是无记忆的:,对任意 。这意味着,无论你已经等了10分钟等一笔交易,还是根本没在等,再等5分钟的概率都是一样的。
在信用风险中,具有无记忆性的指数分布有时用于建模违约时间。
t 分布
t 分布看起来像正态分布,但尾部更厚——它给极端值赋予更多概率。它出现在对小样本量且方差未知时估计正态分布总体的均值时。
随着自由度 的增加,t 分布趋近于正态分布。当 时,t 分布在大多数实际应用中与正态分布几乎无法区分。当 时,尾部明显更肥。
在金融中,t 分布有时用于建模资产收益,因为实际收益表现出比正态分布预测更多的极端事件。正态模型会低估4西格玛运动的概率。
柯西分布
柯西分布是一个值得了解的病态案例。其 PDF 为:
柯西分布没有定义的均值或方差——其尾部如此之厚,以至于定义这些矩的积分发散。然而它作为一个概率分布是完全有效的。柯西分布是无限可分的(意味着你可以把 个独立柯西变量相加,得到另一个柯西变量),这将它与高级量化金融中使用的 Lévy 过程联系起来。
Python:可视化分布
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
x = np.linspace(-5, 5, 1000)
fig, axes = plt.subplots(2, 3, figsize=(14, 8))
# 正态分布
axes[0, 0].plot(x, stats.norm.pdf(x, 0, 1), 'b-', lw=2)
axes[0, 0].set_title('Normal N(0, 1)')
axes[0, 0].grid(alpha=0.3)
# 对数正态(exp(x) 的图,其中 x ~ N(0,1))
y = np.linspace(0, 8, 1000)
axes[0, 1].plot(y, stats.lognorm.pdf(y, 1), 'g-', lw=2)
axes[0, 1].set_title('Lognormal')
axes[0, 1].set_xlim(0, 8)
axes[0, 1].grid(alpha=0.3)
# 二项分布 (PMF)
n, p = 20, 0.5
k = np.arange(0, n + 1)
axes[0, 2].stem(k, stats.binom.pmf(k, n, p), basefmt=" ")
axes[0, 2].set_title(f'Binomial(n=20, p=0.5)')
axes[0, 2].grid(alpha=0.3)
# 泊松分布 (PMF)
k = np.arange(0, 20)
axes[1, 0].stem(k, stats.poisson.pmf(k, mu=5), basefmt=" ")
axes[1, 0].set_title('Poisson(λ=5)')
axes[1, 0].grid(alpha=0.3)
# 指数分布
axes[1, 1].plot(x, stats.expon.pdf(x, scale=1), 'r-', lw=2)
axes[1, 1].set_title('Exponential(scale=1)')
axes[1, 1].set_xlim(0, 5)
axes[1, 1].grid(alpha=0.3)
# t 分布 vs 正态分布(展示肥尾)
axes[1, 2].plot(x, stats.norm.pdf(x, 0, 1), 'b-', lw=2, label='Normal')
axes[1, 2].plot(x, stats.t.pdf(x, df=3), 'r--', lw=2, label='t (df=3)')
axes[1, 2].plot(x, stats.t.pdf(x, df=10), 'g:', lw=2, label='t (df=10)')
axes[1, 2].set_title('T-Distribution vs Normal (Fat Tails)')
axes[1, 2].legend()
axes[1, 2].grid(alpha=0.3)
plt.tight_layout()
plt.show()
# 展示肥尾:极端值的概率
print("P(|X| > 3) under Normal:", 2 * (1 - stats.norm.cdf(3)))
print("P(|X| > 3) under t(df=3):", 2 * (1 - stats.t.cdf(3, df=3)))
print("P(|X| > 3) under t(df=5):", 2 * (1 - stats.t.cdf(3, df=5)))
提示词
用 matplotlib 和 scipy.stats 在 2×3 子图上画常见分布:正态、对数正态、二项、泊松、指数,以及 t 分布和正态的肥尾对比。
输出结果揭示了关键洞察:正态分布给出 ,意味着 3 西格玛事件发生的概率应低于 0.3%。但在真实金融市场中,3 西格玛甚至 4 西格玛事件发生的频率要高得多。低自由度的 t 分布能更好地捕捉这种超额峰度。
参考文献
Ross, S. M. A First Course in Probability, Chapters 4–5. Pearson. Hull, J. C. Options, Futures, and Other Derivatives, Chapter 12. Pearson.