
Black-Scholes 模型假设股价服从对数正态分布。
但你有没有想过:你的数据真的符合吗?
2008年9月29日,道琼斯单日暴跌778点,跌幅7%。
按照正态分布假设,这种级别的暴跌,概率约为 10^-158。
什么概念?宇宙年龄约 1.4 × 10^10 年。即使从宇宙大爆炸那一刻开始,每个交易日都观察市场,这种暴跌也不该出现一次。
但我们亲眼看到了。
而且不仅仅是2008年。1987年黑色星期一、2020年3月熔断、2024年8月全球股灾——极端事件的频率,远超正态分布的预测。
这不是偶然,这是分布假设的系统性偏差。
正态分布太优雅了。两个参数(均值μ、标准差σ)就能刻画整个分布,数学性质完美:
难怪金融学对它爱不释手。Markowitz 均值方差模型、Black-Scholes 期权定价、VaR 风险度量——全都建立在正态假设之上。
但金融市场,从来就不是教科书。
来看一组数据:
市场 | 样本期 | 超额峰度 |
|---|---|---|
标普500 | 1950-2024 | 10.3 |
上证指数 | 1990-2024 | 6.8 |
日经225 | 1984-2024 | 8.9 |
恒生指数 | 1986-2024 | 12.1 |
超额峰度(Excess Kurtosis)= 实际峰度 - 3。
正态分布的峰度恰好等于3,所以超额峰度应该为0。
但主要市场的超额峰度普遍在5-12之间。
这意味着什么?
意味着极端事件的发生概率,被正态分布系统性低估了。峰值更高、尾部更厚——这就是著名的肥尾现象(Fat Tail)。
量化建模中,三个分布最为重要:
它是零假设,不是最终答案。
你的工作就是检验:数据偏离了多少?偏离的方向是什么?
核心参数是自由度 ν(nu):
A股日收益率拟合出的 ν 通常在 3-6 之间。 这比正态肥得多。
股价不可能为负,但对数收益率可以。
所以模型假设:
等价于:
这就是几何布朗运动(GBM),Black-Scholes 模型的核心假设。
但问题来了:如果对数收益率本身就不是正态分布呢?
分布的前四阶矩:
矩 | 含义 | 正态分布特征 |
|---|---|---|
一阶矩(均值) | 位置 | 可任意 |
二阶矩(方差) | 离散程度 | 可任意 |
三阶矩(偏度) | 不对称性 | 必须为0 |
四阶矩(峰度) | 尾部厚度 | 必须为3 |
金融数据的特点:
一个直观的对比:
分布 | 3σ以外概率 | 4σ以外概率 |
|---|---|---|
正态分布 | 0.27% | 0.0063% |
t分布(ν=5) | 1.85% | 0.50% |
A股实际 | 1.67% | 0.42% |
正态分布把3σ以外事件的概率低估了近7倍。
第一步永远是算出四个数字:
偏度 < -0.1:左偏,暴跌更常见 峰度 > 5:显著肥尾
Kolmogorov-Smirnov 检验的核心思想很直观:
比较经验累积分布函数(ECDF)和理论累积分布函数(CDF)的最大距离。
统计量:
临界值(α=0.05):
如果 ,拒绝原假设——数据不服从该分布。
但这里有个陷阱:样本量越大,任何微小偏离都会被放大。
8万个样本下,KS统计量0.0623已经足以拒绝正态假设。即使数据"看起来"很接近正态。
QQ图比任何检验都直观:
解读规则:
现象 | 含义 |
|---|---|
点在直线上 | 数据服从该分布 |
右端上翘 | 右尾比理论更肥 |
左端下弯 | 左尾比理论更肥 |
两端同时偏离 | 整体肥尾 |
A股日收益率的QQ图,两端同时飞出——标准肥尾。
已知数据不服从正态,那它服从什么分布?
MLE(最大似然估计)回答这个问题。
核心思想:找到一组参数,使观测数据出现的概率最大。
似然函数:
对数似然:
正态分布的MLE有简洁的解析解:
样本均值和样本方差,就是最优估计。
t分布没有解析解,需要数值方法。
但有一个重要性质:拟合出的自由度ν直接告诉你肥尾程度。
理论讲完了,实际影响有多大?
VaR(Value at Risk)是风险管理的核心指标:在给定置信度下,最大可能损失是多少?
假设95%置信度,比较两种分布:
指标 | 正态分布 | t分布(ν=5) | 差异 |
|---|---|---|---|
VaR | -2.50% | -2.81% | 12.4% |
3σ事件概率 | 0.27% | 1.85% | 7倍 |
用正态假设算VaR,风险准备金少准备12.4%。
在极端行情下,这12.4%的差额可能就是生与死的区别。
分布计算涉及大量循环和数学运算,Rust的零成本抽象和SIMD优化能显著提升性能:
核心crate:rand(随机数)、rand_distr(分布采样)、statrs(统计函数)、polars(向量化计算)
三个认知升级:
三个实践工具:
肥尾不是bug,是市场的feature。
承认它、量化它、修正模型——而不是假装它不存在。
下一篇:蒙特卡洛模拟——当解析解失效时,如何用随机性破解复杂定价。