第2章:概率论基础回顾:随机变量、概率分布与期望方差

各位同学,欢迎来到蒙特卡洛模拟的第一块基石——概率论基础。

说实话,我刚开始做量化风控那会儿,觉得概率论就是考试用的。直到有一次,我负责一个信用评分卡项目,模型在回测时表现完美,上线第一天就崩了。后来排查原因,发现是底层资产的相关性结构我没搞对,说白了就是概率分布选错了。从那以后,我再也不敢小瞧这些基础概念了。

今天咱们就把这些「老朋友」重新请出来,聊聊它们在蒙特卡洛模拟里到底怎么用。


2.1 随机变量:不确定性的数学化身

随机变量,说白了就是一个函数。它把随机试验的结果映射成一个数字。

举个例子:你抛一枚硬币,结果可能是「正面」或「反面」。我定义一个变量 X,正面=1,反面=0。这个 X 就是随机变量。

在量化风控里,我们关心的随机变量通常是:

  • 某只股票明天的收益率
  • 某个贷款组合未来30天的违约数量
  • 某笔衍生品在到期日的价格

随机变量分两种:

  • 离散型:取值可数。比如违约笔数,只能是0,1,2,...
  • 连续型:取值不可数。比如收益率,可以是-3.14159...%
我的经验:在蒙特卡洛模拟中,我们绝大多数时候处理的是连续型随机变量。但如果你做的是信用风险中的违约计数模型,离散型就派上用场了。

2.2 概率分布:随机变量的「性格画像」

知道了随机变量是什么,接下来要问:它取某个值的可能性有多大?这就是概率分布要回答的问题。

我个人习惯把概率分布分成三类来记,因为蒙特卡洛模拟里最常用的就这三类。

2.2.1 正态分布:金融世界的「万有引力」

正态分布,也叫高斯分布。它的概率密度函数长这样:

f(x) = (1 / (σ * √(2π))) * exp(-(x - μ)² / (2σ²))

其中 μ 是均值,σ 是标准差。

为什么它这么重要?

  • 中心极限定理:大量独立随机变量的和趋近于正态分布。这是蒙特卡洛模拟的理论根基之一。
  • 资产收益率:很多金融模型假设日收益率服从正态分布(虽然实际有肥尾,但这是后话)。
避坑指南:我曾经在模拟一个期权组合时,直接用正态分布模拟标的资产价格。结果发现极端行情下的风险被严重低估。后来改用t分布才解决问题。记住:正态分布是起点,不是终点。

2.2.2 均匀分布:蒙特卡洛的「随机种子」

均匀分布 U(a,b) 在区间 [a,b] 内每个点出现的概率相同。

它的概率密度函数很简单:

f(x) = 1 / (b - a),  a ≤ x ≤ b

为什么它重要?

  • 随机数生成的基础:几乎所有编程语言的随机数生成器,最初产出的都是 [0,1] 上的均匀分布。
  • 逆变换法:通过均匀分布可以生成任意其他分布的随机数。这是蒙特卡洛模拟的核心技术。

你想想看,如果没有均匀分布,我们连最基础的正态分布随机数都生成不了。

2.2.3 对数正态分布:资产价格的「天然模型」

如果一个随机变量 X 的对数 ln(X) 服从正态分布,那么 X 就服从对数正态分布。

它的概率密度函数:

f(x) = (1 / (x * σ * √(2π))) * exp(-(ln(x) - μ)² / (2σ²)),  x > 0

为什么金融里常用它?

  • 价格不能为负:对数正态分布只取正值,符合资产价格的基本特征。
  • 收益率可加性:连续复利收益率服从正态分布,价格就服从对数正态分布。
我的习惯:在做蒙特卡洛模拟时,我通常先假设资产价格服从对数正态分布。如果模型表现不好,再考虑加入跳跃扩散或随机波动率。从简单开始,逐步复杂,这是工程思维。

2.3 期望与方差:分布的「数字指纹」

概率分布描述了随机变量的全貌,但有时候我们只需要几个关键数字来概括它。期望和方差就是最重要的两个。

2.3.1 期望:长期平均的「锚点」

期望 E[X] 是随机变量所有可能取值的加权平均,权重就是概率。

对于离散型:

E[X] = Σ x_i * P(X = x_i)

对于连续型:

E[X] = ∫ x * f(x) dx

在蒙特卡洛模拟中,期望就是我们要估计的目标。比如:

  • 期权定价:模拟到期收益的期望,再折现
  • 风险价值(VaR):模拟组合损失的期望,再找分位数

2.3.2 方差:不确定性的「度量尺」

方差 Var[X] = E[(X - E[X])²],衡量随机变量偏离期望的程度。

标准差 σ = √Var[X],和原始数据同量纲,更直观。

为什么方差重要?

  • 风险度量:方差越大,不确定性越高,风险越大。
  • 模拟精度:蒙特卡洛模拟的误差与方差直接相关。方差越大,需要模拟的次数越多才能达到同样的精度。
注意:我曾经犯过一个低级错误——直接用样本方差公式计算蒙特卡洛模拟的方差,忘了除以 n-1。结果导致置信区间偏窄,差点让风控模型通过了不该通过的风险敞口。记住:样本方差用 n-1,总体方差用 n。

2.4 知识体系总览

下面这张图是我自己梳理的本章知识结构,方便你建立整体认知:

概率论基础:蒙特卡洛模拟的知识体系 概率论基础 随机变量 离散型 连续型 概率分布 正态分布 均匀分布 对数正态 期望与方差 期望 E[X] 方差 Var[X] 蒙特卡洛模拟应用:期权定价 / 风险价值(VaR) / 信用风险建模 三者关系:随机变量描述现象 → 概率分布刻画规律 → 期望方差提炼特征 → 蒙特卡洛模拟求解

2.5 代码实战:用Python生成三种分布

光说不练假把式。下面我用Python演示如何生成这三种分布的随机数,并计算它们的期望和方差。

import numpy as np
import matplotlib.pyplot as plt

# 设置随机种子,保证结果可复现
np.random.seed(42)

# 1. 正态分布:均值0,标准差1
normal_samples = np.random.normal(loc=0, scale=1, size=10000)
print(f"正态分布 - 期望: {np.mean(normal_samples):.4f}, 方差: {np.var(normal_samples):.4f}")

# 2. 均匀分布:区间[0, 1]
uniform_samples = np.random.uniform(low=0, high=1, size=10000)
print(f"均匀分布 - 期望: {np.mean(uniform_samples):.4f}, 方差: {np.var(uniform_samples):.4f}")

# 3. 对数正态分布:底层正态均值0,标准差0.2
lognormal_samples = np.random.lognormal(mean=0, sigma=0.2, size=10000)
print(f"对数正态 - 期望: {np.mean(lognormal_samples):.4f}, 方差: {np.var(lognormal_samples):.4f}")

# 理论值对比
print("\n理论值:")
print(f"正态分布 N(0,1) - 期望: 0, 方差: 1")
print(f"均匀分布 U(0,1) - 期望: 0.5, 方差: 0.0833")
print(f"对数正态 LN(0,0.2) - 期望: {np.exp(0 + 0.2**2/2):.4f}, 方差: {(np.exp(0.2**2)-1)*np.exp(2*0+0.2**2):.4f}")
运行结果解读:你会发现模拟值非常接近理论值。这就是蒙特卡洛模拟的精髓——用大量随机样本逼近真实分布。样本量越大,误差越小。但要注意,误差的收敛速度是 1/√n,想提高一位精度,需要增加100倍样本量。

2.6 本章小结

嗯,到这里概率论基础就回顾完了。我帮你捋一下重点:

  • 随机变量:把不确定性变成数字,是建模的起点
  • 三种分布:正态(万有引力)、均匀(随机种子)、对数正态(价格模型)
  • 期望与方差:一个管中心,一个管离散度,是蒙特卡洛模拟的评估指标

这些概念看着简单,但我在实际项目中见过太多人栽在基础不牢上。比如有人用正态分布模拟信用损失,结果忽略了损失分布的左偏特征,导致资本计提不足。记住:基础不牢,地动山摇。

下一章,我们会把这些知识串起来,真正开始写蒙特卡洛模拟的代码。到时候你会发现,今天这些「枯燥」的概念,全都会活起来。


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