收益分布与厚尾
正态假设为何失败
Section titled “正态假设为何失败”教科书定价与经典组合理论都以正态收益为前提,但日频金融收益的峰度普遍在 3–10 之间(正态为 3),标普 500 单日超过 5 个标准差的下跌在正态假设下应几百万年出现一次,实际几十年内就有数次。厚尾不是统计噪声,而是市场结构的真实特征:杠杆、流动性传染与信息的不连续到达。
偏度与峰度的估计
Section titled “偏度与峰度的估计”样本偏度与峰度的定义:
关键在于这两个估计量自身的方差极大,且随样本长度收敛极慢(峰度估计的方差按 收缩,但受极端值主导)。这意味着:单凭几百家公司的样本断言"该因子收益显著左偏"并不可靠。实践建议:
- 至少用 5 年以上的日频数据估计高阶矩;
- 先做 QQ 图目视诊断,再谈数值;
- 报告峰度时同时报告其置信区间(可用自助法,见自助法与蒙特卡洛)。
用什么分布替代正态
Section titled “用什么分布替代正态”| 分布 | 适用 | 直觉 |
|---|---|---|
| 学生 t(–) | 日频收益拟合的首选 | 用一个自由度参数刻画尾部厚度 |
| 广义误差分布(GED) | GARCH 族的标准搭配 | 与 GARCH 组合时残差厚尾更好处理 |
| 混合正态 | 区分"平静日"与"恐慌日" | 直觉清楚,但参数估计不稳定 |
| 稳定分布 | 理论兴趣为主 | 方差无穷大,与实际风险度量难衔接 |
拟合时用最大似然并检查 QQ 图,而不是只比较似然值。
import numpy as npimport pandas as pdfrom scipy import stats
def tail_report(r: pd.Series) -> dict: r = r.dropna() z = (r - r.mean()) / r.std() return { "偏度": stats.skew(z), "超额峰度": stats.kurtosis(z), # 正态为 0 "t 自由度": stats.t.fit(z)[0], ">4σ 天数占比": float((z.abs() > 4).mean()), }厚尾的直接后果
Section titled “厚尾的直接后果”- VaR 系统性低估:按正态算的 99% VaR 在厚尾下会被频繁突破,应改用期望损失 ES 或直接用历史/模拟分布,见回撤、VaR 与止损。
- 夏普比率高估:SR 只用均值与方差,完全不看尾部;两条 SR 相同的策略,左偏的那条实质风险更大,见夏普比率。
- 对数收益与简单收益的差别被放大:对数正态假设本身在厚尾下失效,复利换算与波动率换算都要重新审视。
量化中的用法
Section titled “量化中的用法”- 仓位约束按 ES 或最差 5% 情景设定,而非 ;
- 回测报告固定包含偏度、峰度、最大单日亏损三项;
- 蒙特卡洛压力测试用学生 t 或 bootstrap 生成路径,不用正态。
- 样本峰度、偏度的估计及其自身的巨大方差
- QQ 图是最直观的厚尾诊断工具
- VaR 在厚尾下系统性低估,应配合 ES 使用
- 对数收益与简单收益在厚尾下的差别会被放大