4. 假设的局限性(一):收益率非正态分布——尖峰厚尾特征、极端风险被低估

均值方差模型有个核心假设——收益率服从正态分布。嗯,这个假设在教科书上看着挺美,但在真实市场里,它就是个美丽的谎言。

我刚开始做量化那会儿,也天真地以为市场是正态的。直到有一次回测一个策略,夏普比率算出来漂亮得很,结果实盘一个月就亏了20%。后来一查,原来是模型严重低估了极端行情的概率。说白了,市场先生根本不按正态分布出牌。

4.1 什么是尖峰厚尾?

正态分布长什么样?像个钟,两边尾巴细长,概率密度集中在均值附近。但真实的市场收益率分布,我总结为三个字:尖、厚、偏

  • 尖峰:均值附近的收益率比正态分布更集中。也就是说,大部分时间市场波动很小,窄幅震荡是常态。
  • 厚尾:极端值出现的概率远高于正态分布的预测。比如一天跌5%以上,正态分布告诉你这是“几乎不可能事件”,但现实中每年都会发生几次。
  • 有偏:很多时候分布不对称,股票收益率往往左偏(负收益的极端值更多),而某些商品期货可能右偏。

我习惯用一张图来理解这个差异。下面是我手绘的对比图,你一看就明白:

正态分布 vs 真实收益率分布 收益率 概率密度 尖峰 厚尾 厚尾 正态分布 真实分布

你看,红色曲线(真实分布)在中间更尖,两边尾巴更厚。这意味着什么?意味着正态分布会告诉你“极端行情几乎不可能”,但真实市场里,极端行情比你想象的频繁得多。

4.2 为什么正态分布会低估极端风险?

我们来算一笔账。假设某只股票日收益率的标准差是2%。按照正态分布:

  • 一天跌超过4%(2个标准差)的概率大约是2.3%。也就是每43个交易日出现一次。
  • 一天跌超过6%(3个标准差)的概率大约是0.13%。也就是每770个交易日出现一次,大概3年一次。
  • 一天跌超过10%(5个标准差)的概率大约是0.00003%。也就是每300万个交易日出现一次,约12000年一次。

听起来很安全对吧?但真实市场呢?我统计过A股过去10年的数据:

事件 正态分布预测概率 实际发生频率 低估倍数
单日跌幅 > 4% 约2.3% 约5.8% 2.5倍
单日跌幅 > 6% 约0.13% 约1.2% 9.2倍
单日跌幅 > 10% 约0.00003% 约0.15% 5000倍

看到没?越是极端的行情,正态分布低估得越离谱。5个标准差的事件,正态分布告诉你一万两千年一次,实际上每两年就能碰到一次。这就是为什么很多用均值方差模型配出来的组合,平时看着稳如老狗,一遇到市场暴跌就直接崩盘。

⚠️ 我曾经踩过的坑: 2015年股灾前,我用均值方差模型配了一个组合,回测夏普比率2.0,最大回撤不到10%。结果6月份一周之内回撤就超过了25%。后来复盘才发现,模型把2014年之前的波动率作为输入,完全没考虑极端风险。说白了,正态分布假设让模型对尾部风险“视而不见”。

4.3 如何量化尖峰厚尾?

既然正态分布不靠谱,那我们怎么描述真实分布呢?我习惯用两个指标:

4.3.1 峰度(Kurtosis)

峰度衡量的是分布的“尖峭程度”。正态分布的峰度是3。如果峰度大于3,说明分布比正态更尖,尾巴更厚。公式长这样:

# 计算样本峰度
import numpy as np
from scipy.stats import kurtosis

returns = np.random.randn(1000)  # 模拟数据
kurt = kurtosis(returns, fisher=True)  # Fisher峰度,正态分布为0
print(f"峰度: {kurt:.2f}")

# 如果kurt > 0,说明是尖峰厚尾
# 如果kurt < 0,说明是低峰薄尾

我个人的经验是:A股个股的日收益率峰度通常在5-15之间,远高于正态分布的3。这意味着什么?意味着极端风险被低估了3-5倍。

4.3.2 偏度(Skewness)

偏度衡量分布的不对称性。负偏度意味着左尾更长,也就是暴跌的概率大于暴涨。股票市场通常呈现负偏度——你想想看,跌起来总是比涨起来猛。

from scipy.stats import skew

skew_val = skew(returns)
print(f"偏度: {skew_val:.2f}")
# 负值表示左偏,正值表示右偏
💡 实用技巧: 我建议你在做组合优化之前,先跑一下这两个指标。如果峰度大于5或者偏度绝对值大于0.5,就别用纯均值方差模型了。可以考虑加入CVaR约束或者使用稳健估计方法。

4.4 对均值方差模型的具体影响

尖峰厚尾对模型的影响,我总结为三点:

  1. 方差不再是充分的风险度量。方差只描述了波动范围,但没告诉我们极端值有多极端。两个组合可能有相同的方差,但一个可能偶尔暴跌20%,另一个最多跌5%。你选哪个?
  2. 协方差矩阵估计失真。极端行情下,资产之间的相关性会急剧上升。平时看起来不相关的资产,在危机时刻会一起暴跌。这就是所谓的“相关性危机”。均值方差模型用的历史协方差矩阵,完全捕捉不到这种变化。
  3. 最优权重对输入参数极度敏感。我记得有篇论文做过实验:把输入数据中的极端值稍微调整一下,最优组合的权重就会发生剧烈变化。说白了,模型对“异常值”太敏感了,而真实数据里到处都是异常值。

嗯,说到这里,你可能已经明白了:均值方差模型不是不能用,而是要用对地方。如果资产收益率接近正态分布(比如一些流动性好的大盘股指数),模型效果还行。但如果遇到小盘股、加密货币、或者杠杆产品,那就得小心了。

核心结论: 正态分布假设是均值方差模型最脆弱的环节之一。尖峰厚尾特征导致模型系统性低估极端风险,尤其是在左尾(暴跌)方向。作为量化从业者,我建议你在使用模型前,先用峰度和偏度检验一下数据。如果发现明显的非正态特征,就要考虑引入更稳健的风险度量方法,比如CVaR、条件风险价值,或者使用极值理论(EVT)来建模尾部风险。

下一节我们会继续讨论另一个关键假设——收益率的平稳性。说实话,这个假设在真实市场里也经常不成立,到时候我会分享一些我处理非平稳数据的实战经验。


公众号:蓝海资料掘金营,微信deep3321