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风险复核中,分布选择的正确性直接影响资本计量结果。以下为标准化复核步骤:

  1. 数据探索: 绘制历史数据的直方图与Q-Q图,初步判断分布形态。
  2. 分布拟合: 使用最大似然估计(MLE)拟合候选分布参数。
  3. 拟合优度检验: 执行K-S检验、A-D检验或卡方检验,量化分布适配度。
  4. 尾部敏感性分析: 对比正态分布与t分布下的99% VaR差异,评估尾部风险影响。
  5. 模拟稳定性验证: 使用不同随机种子重复模拟,确保分布参数估计的稳健性。
复核案例: 某投资组合使用正态分布模拟日收益率,99% VaR为120万元。改用t分布(ν=4)后,99% VaR上升至185万元,增幅54%。复核结论:原正态假设低估尾部风险,需采用t分布重新计量。

4.8 四种分布的概率密度对比(SVG)

四种分布概率密度对比(标准化参数) 均匀分布 U(0,1) 正态分布 N(0,1) 对数正态分布 LN(0,0.25) t分布 ν=3 随机变量取值 概率密度 t分布尾部明显高于正态分布,对数正态分布呈右偏形态

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)

风险建模分布选择决策流程 风险因子数据输入 数据是否非负且右偏? 是 → 对数正态分布 否 → 尾部是否厚尾? 资产价格 / LGD 建模 是 → t分布(ν=3~5) 否 → 正态分布 决策依据:数据探索 → 分布拟合 → 拟合优度检验 → 尾部敏感性分析

4.11 本章小结

  • 均匀分布是随机数生成的基础,用于参数敏感性分析和无信息先验。
  • 正态分布适用于对称、薄尾的收益率和残差项,但需警惕尾部低估风险。
  • 对数正态分布是资产价格和损失率的标准模型,天然满足非负和右偏约束。
  • t分布通过自由度控制尾部厚度,是极端风险建模和VaR回测的必备工具。
  • 风险复核中必须进行分布假设检验和尾部敏感性分析,避免因分布选择不当导致资本计量偏差。