4. 概率分布与采样
在Monte Carlo风险模拟中,概率分布的选择直接决定了风险因子的行为特征与尾部风险暴露。本章系统梳理四种核心分布——均匀分布、正态分布、对数正态分布、t分布——的数学定义、采样方法及其在金融风险复核中的典型场景。
4.1 四种分布的核心特征对比
| 分布类型 | 支撑集 | 偏度 | 尾部厚度 | 典型风险场景 |
|---|---|---|---|---|
| 均匀分布 | [a, b] | 0 | 无尾部 | 参数敏感性、随机种子、无信息先验 |
| 正态分布 | (-∞, +∞) | 0 | 薄尾(指数衰减) | 资产收益率、利率变动、模型残差 |
| 对数正态分布 | (0, +∞) | 正偏(右偏) | 中等尾部 | 资产价格、违约损失率、波动率 |
| t分布 | (-∞, +∞) | 0 | 厚尾(幂律衰减) | 极端损失、VaR回测、压力情景 |
风险复核要点: 在Monte Carlo模拟中,若风险因子尾部被低估(如用正态分布替代t分布),会导致VaR和ES严重偏小,复核时需重点检查分布假设与历史数据的尾部拟合优度。
4.2 均匀分布:随机数生成的基础
均匀分布是Monte Carlo模拟的随机数源头。所有其他分布的随机样本,均通过均匀分布经逆变换法或Box-Muller变换生成。
- 概率密度函数: f(x) = 1/(b-a), a ≤ x ≤ b
- 采样方法: 使用伪随机数生成器(如Mersenne Twister)生成U(0,1),再线性变换至目标区间。
- 风险建模应用: 参数敏感性分析、Copula函数的边际分布、随机波动率模型的初始扰动。
import numpy as np
# 生成10000个[0,1)均匀随机数
u = np.random.uniform(0, 1, 10000)
# 变换到[100, 200]区间,模拟损失金额的均匀先验
loss_uniform = 100 + (200 - 100) * u
print(f"均值: {loss_uniform.mean():.2f}, 标准差: {loss_uniform.std():.2f}")
4.3 正态分布:中心极限定理的基石
正态分布是金融风险建模中最常用的分布,源于中心极限定理对大量独立同分布随机变量之和的近似。
- 概率密度函数: f(x) = (1/σ√(2π)) · exp(-(x-μ)²/(2σ²))
- 采样方法: Box-Muller变换或Ziggurat算法。
- 风险建模应用: 资产对数收益率、利率期限结构扰动、信用评分残差项。
常见陷阱: 正态分布尾部衰减过快,无法捕捉金融市场的极端波动(如2008年次贷危机)。在风险复核中,若模拟结果未出现足够多的极端损失,应怀疑是否错误使用了正态分布替代厚尾分布。
# 生成标准正态分布样本
z = np.random.standard_normal(10000)
# 变换为均值为0.05、标准差为0.20的日收益率
daily_return = 0.05 + 0.20 * z
print(f"收益率均值: {daily_return.mean():.4f}, 标准差: {daily_return.std():.4f}")
4.4 对数正态分布:资产价格的标准模型
对数正态分布是几何布朗运动的边际分布,广泛用于股票价格、汇率、商品价格的建模。其关键性质:若X服从正态分布,则exp(X)服从对数正态分布。
- 概率密度函数: f(x) = (1/(xσ√(2π))) · exp(-(ln x - μ)²/(2σ²)), x > 0
- 采样方法: 先采样正态分布,再取指数变换。
- 风险建模应用: 资产价格路径模拟、违约损失率(LGD)建模、波动率期限结构。
# 从正态分布生成对数正态样本
mu, sigma = 0.05, 0.20
z = np.random.standard_normal(10000)
log_return = mu + sigma * z
price = 100 * np.exp(log_return) # 初始价格100
print(f"价格均值: {price.mean():.2f}, 中位数: {np.median(price):.2f}")
工程实践提示: 对数正态分布的均值E[X] = exp(μ + σ²/2),中位数 = exp(μ)。当σ较大时,均值显著大于中位数,体现右偏特征。在风险复核中,应检查模拟路径的均值是否与理论值一致。
4.5 t分布:厚尾风险的必备工具
t分布(Student's t-distribution)通过自由度ν控制尾部厚度:ν越小,尾部越厚;ν→∞时趋近正态分布。t分布是VaR和ES回测中检验尾部风险是否被低估的标准工具。
- 概率密度函数: f(x) ∝ (1 + x²/ν)^{-(ν+1)/2}
- 采样方法: 从卡方分布和正态分布组合生成,或直接使用标准库。
- 风险建模应用: 极端损失模拟、压力测试情景生成、Copula尾部依赖建模。
# 生成自由度ν=3的t分布样本(厚尾)
df = 3
t_samples = np.random.standard_t(df, 10000)
# 与正态分布对比尾部
normal_samples = np.random.standard_normal(10000)
print(f"t分布(ν=3) 99%分位数: {np.percentile(t_samples, 99):.3f}")
print(f"正态分布 99%分位数: {np.percentile(normal_samples, 99):.3f}")
4.6 四种分布的风险建模应用对比
| 风险因子 | 推荐分布 | 理由 | 复核检查点 |
|---|---|---|---|
| 股票日收益率 | 正态分布 / t分布 | 中心极限定理近似;t分布捕捉极端波动 | Jarque-Bera正态性检验 |
| 资产价格 | 对数正态分布 | 价格非负、右偏、符合几何布朗运动 | 模拟均值 vs 理论均值 |
| 违约损失率 | 对数正态分布 / Beta分布 | 有界[0,1]或正偏连续 | 边界截断处理 |
| 利率变动 | 正态分布 | 对称、可正可负 | 自相关与异方差检验 |
| 极端损失(VaR) | t分布(ν=3~5) | 厚尾、符合实际损失分布 | Kupiec失败率检验 |
4.7 分布选择与风险复核流程
在Monte Carlo风险复核中,分布选择的正确性直接影响资本计量结果。以下为标准化复核步骤:
- 数据探索: 绘制历史数据的直方图与Q-Q图,初步判断分布形态。
- 分布拟合: 使用最大似然估计(MLE)拟合候选分布参数。
- 拟合优度检验: 执行K-S检验、A-D检验或卡方检验,量化分布适配度。
- 尾部敏感性分析: 对比正态分布与t分布下的99% VaR差异,评估尾部风险影响。
- 模拟稳定性验证: 使用不同随机种子重复模拟,确保分布参数估计的稳健性。
复核案例: 某投资组合使用正态分布模拟日收益率,99% VaR为120万元。改用t分布(ν=4)后,99% VaR上升至185万元,增幅54%。复核结论:原正态假设低估尾部风险,需采用t分布重新计量。
4.8 四种分布的概率密度对比(SVG)
4.9 采样方法在风险复核中的工程实现
以下代码展示在风险复核流程中,如何对同一组风险因子使用不同分布进行Monte Carlo模拟,并对比VaR结果:
import numpy as np
def simulate_var(dist_type, n_sim=100000, confidence=0.99):
"""根据分布类型模拟组合损失VaR"""
if dist_type == 'normal':
samples = np.random.standard_normal(n_sim)
elif dist_type == 't':
samples = np.random.standard_t(df=4, size=n_sim)
elif dist_type == 'lognormal':
samples = np.random.lognormal(mean=0, sigma=0.2, size=n_sim)
elif dist_type == 'uniform':
samples = np.random.uniform(-3, 3, n_sim)
else:
raise ValueError("Unknown distribution")
# 假设组合损失敞口为1000万,波动率20%
loss = 1000 + 200 * samples
var = np.percentile(loss, confidence * 100)
return var
# 复核对比
for dist in ['normal', 't', 'lognormal', 'uniform']:
var_99 = simulate_var(dist)
print(f"{dist:12s} 99% VaR: {var_99:8.2f} 万元")
工程注意: 实际风险复核中,应使用至少10万次模拟,并采用公共随机数(Common Random Numbers)技术,确保不同分布间的对比不受随机种子波动干扰。上述代码未固定种子,仅用于演示逻辑。
4.10 分布选择决策流程(SVG)
4.11 本章小结
- 均匀分布是随机数生成的基础,用于参数敏感性分析和无信息先验。
- 正态分布适用于对称、薄尾的收益率和残差项,但需警惕尾部低估风险。
- 对数正态分布是资产价格和损失率的标准模型,天然满足非负和右偏约束。
- t分布通过自由度控制尾部厚度,是极端风险建模和VaR回测的必备工具。
- 风险复核中必须进行分布假设检验和尾部敏感性分析,避免因分布选择不当导致资本计量偏差。