跳到正文

随机变量与概率分布

随机变量为随机过程的每个结果分配一个数值。理解随机变量及其分布对于建模金融收益和风险很重要。

第 5 篇 · 共 5 篇 约 4 分钟

从结果到数字

当你抛硬币时,结果是”正面”或”背面”,这是文字,不是数字。随机变量将这些结果转换为数值,这样我们才能用数学方法处理它们。

随机变量 XX 是一个函数,它为样本空间中的每个结果分配一个实数。你可以把它想象成测量随机事物的规则。符号 X=xX = x 表示”随机变量 XX 取值为 xx”。

随机变量有两大类。

离散随机变量取有限可数集合中的值——通常是整数。10次硬币抛掷中正面的数量是离散的。一天执行交易的数量是离散的。这些变量有一个概率质量函数(PMF),告诉我们每个可能值的 P(X=x)P(X = x)。

连续随机变量可以取某个范围内的任何值。股票的日收益率、明天的温度、期权的价格——这些都是连续的。对于连续变量,落在任何精确值的概率在技术上为零;相反,我们使用区间并借助概率密度函数(PDF)。

概率质量函数

对于离散随机变量,概率质量函数(PMF)给出每个结果的概率:

P(X=x)=p(x)P(X = x) = p(x)

该函数必须满足两个性质:所有 xx 有 p(x)≥0p(x) \geq 0,且所有可能值的 p(x)p(x) 之和等于1。

例子:掷一枚公平的六面骰子。对于 x∈{1,2,3,4,5,6}x \in \{1, 2, 3, 4, 5, 6\},PMF 为 p(x)=16p(x) = \frac{1}{6},其他情况 p(x)=0p(x) = 0。

概率密度函数

对于连续随机变量,概率密度函数(PDF)f(x)f(x) 与 PMF 有不同的解释。落在区间 [a,b][a, b] 内的概率为:

P(a≤X≤b)=∫abf(x) dxP(a \leq X \leq b) = \int_a^b f(x) \, dx

PDF 必须满足所有 xx 有 f(x)≥0f(x) \geq 0 且 ∫−∞∞f(x) dx=1\int_{-\infty}^{\infty} f(x) \, dx = 1。关键的是,f(x)f(x) 本身不是概率——它在某些区域可以大于1。只有在区间上积分后,它才产生有效的概率。

累积分布函数

离散和连续随机变量都有累积分布函数(CDF):

F(x)=P(X≤x)F(x) = P(X \leq x)

CDF 给出变量小于或等于某个值的概率。它总是非递减的,范围从0到1。对于离散变量,F(x)=∑t≤xp(t)F(x) = \sum_{t \leq x} p(t)。对于连续变量,F(x)=∫−∞xf(t) dtF(x) = \int_{-\infty}^x f(t) \, dt。

CDF 很有用,因为它适用于任何类型的随机变量,而且可以轻松回答”股票收益低于-5%的概率是多少?“这类问题。

期望值

期望值(或均值)是随机变量的长期平均值——即分布的重心。

对于离散随机变量:

E[X]=∑xx⋅P(X=x)E[X] = \sum_{x} x \cdot P(X = x)

对于连续随机变量:

E[X]=∫−∞∞x⋅f(x) dxE[X] = \int_{-\infty}^{\infty} x \cdot f(x) \, dx

可以把 E[X]E[X] 想象成分布的平衡点。如果你无限次重复底层随机过程并平均结果,你就会得到 E[X]E[X]。

期望值有一个非常有用的线性性质:E[aX+b]=aE[X]+bE[aX + b] = aE[X] + b,无论 XX 和 aa 是否独立。

方差与标准差

期望值告诉你分布的中心在哪里。方差告诉你数据有多分散:

Var(X)=E[(X−μ)2]\text{Var}(X) = E[(X - \mu)^2]

其中 μ=E[X]\mu = E[X]。方差是到均值距离平方的平均值。因为我们对距离进行了平方,所以方差总是非负的,并且以原始变量的平方单位来衡量——这通常很不方便。

标准差 σ=Var(X)\sigma = \sqrt{\text{Var}(X)} 让我们回到原始单位。对于正态分布,大约68%的观测值落在均值的一个标准差内,95%在两个标准差内,99.7%在三个标准差内。

离散例子:三次抛掷中的正面数

假设你抛三次公平的硬币,设 XX 为正面的数量。样本空间有8个等可能的结果(HHH, HHT, HTH, THH, HTT, THT, TTH, TTT),XX 可以取0、1、2或3。

PMF 为:

xxP(X=x)P(X = x)
018\frac{1}{8}
138\frac{3}{8}
238\frac{3}{8}
318\frac{1}{8}

期望值为 E[X]=0⋅18+1⋅38+2⋅38+3⋅18=128=1.5E[X] = 0 \cdot \frac{1}{8} + 1 \cdot \frac{3}{8} + 2 \cdot \frac{3}{8} + 3 \cdot \frac{1}{8} = \frac{12}{8} = 1.5。平均而言,三次抛掷中你期望有1.5个正面——这是合理的,因为每次抛掷有50%的概率是正面,且有三次抛掷,所以 3×0.5=1.53 \times 0.5 = 1.5。

连续例子:资产收益

在量化金融中,日资产收益被建模为连续随机变量。一个常见的模型是假设收益 R∼N(μ,σ2)R \sim N(\mu, \sigma^2)——服从均值为 μ\mu、方差为 σ2\sigma^2 的正态分布。我们会在下一篇文章中详细研究正态分布。

在这个模型下,P(R<−0.05)P(R < -0.05) 是损失超过5%的概率。这类风险问题正是量化模型所要回答的问题。

用 Python 模拟随机变量

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

np.random.seed(42)


mu = 0.0005      # 日均收益率(例如 ~12% 年化)
sigma = 0.02     # 日波动率(例如 ~32% 年化)
n_days = 10_000

returns = np.random.normal(mu, sigma, n_days)

# 绘制模拟收益率的直方图
plt.figure(figsize=(10, 5))
plt.hist(returns, bins=50, density=True, alpha=0.6, label='Simulated returns')

# 叠加理论正态 PDF
x = np.linspace(mu - 4*sigma, mu + 4*sigma, 100)
plt.plot(x, stats.norm.pdf(x, mu, sigma), 'r-', label='Theoretical N(μ, σ²)')
plt.xlabel('日收益率')
plt.ylabel('密度')
plt.title('模拟与理论的日收益率正态分布对比')
plt.legend()
plt.grid(alpha=0.3)
plt.show()

# 计算样本统计量
sample_mean = np.mean(returns)
sample_std = np.std(returns)
print(f"样本均值: {sample_mean:.6f} (理论值: {mu:.6f})")
print(f"样本标准差:  {sample_std:.6f} (理论值: {sigma:.6f})")

提示词

用 numpy 和 matplotlib 演示正态分布:模拟 1 万个日收益率,用直方图和理论正态曲线对比,验证样本均值和标准差。

注意模拟收益率的直方图是如何紧密跟随理论正态曲线的。随着模拟次数的增加,这种吻合度会提高,这是大数定律的结果,我们在这个系列的后续文章中会进一步展开。

参考文献

Ross, S. M. A First Course in Probability, Chapters 2–3. Pearson. Papoulis, A. and Pillai, S. U. Probability, Random Variables, and Stochastic Processes, Chapter 5. McGraw-Hill.