随机变量与概率分布
随机变量为随机过程的每个结果分配一个数值。理解随机变量及其分布对于建模金融收益和风险很重要。
从结果到数字
当你抛硬币时,结果是”正面”或”背面”,这是文字,不是数字。随机变量将这些结果转换为数值,这样我们才能用数学方法处理它们。
随机变量 是一个函数,它为样本空间中的每个结果分配一个实数。你可以把它想象成测量随机事物的规则。符号 表示”随机变量 取值为 ”。
随机变量有两大类。
离散随机变量取有限可数集合中的值——通常是整数。10次硬币抛掷中正面的数量是离散的。一天执行交易的数量是离散的。这些变量有一个概率质量函数(PMF),告诉我们每个可能值的 。
连续随机变量可以取某个范围内的任何值。股票的日收益率、明天的温度、期权的价格——这些都是连续的。对于连续变量,落在任何精确值的概率在技术上为零;相反,我们使用区间并借助概率密度函数(PDF)。
概率质量函数
对于离散随机变量,概率质量函数(PMF)给出每个结果的概率:
该函数必须满足两个性质:所有 有 ,且所有可能值的 之和等于1。
例子:掷一枚公平的六面骰子。对于 ,PMF 为 ,其他情况 。
概率密度函数
对于连续随机变量,概率密度函数(PDF) 与 PMF 有不同的解释。落在区间 内的概率为:
PDF 必须满足所有 有 且 。关键的是, 本身不是概率——它在某些区域可以大于1。只有在区间上积分后,它才产生有效的概率。
累积分布函数
离散和连续随机变量都有累积分布函数(CDF):
CDF 给出变量小于或等于某个值的概率。它总是非递减的,范围从0到1。对于离散变量,。对于连续变量,。
CDF 很有用,因为它适用于任何类型的随机变量,而且可以轻松回答”股票收益低于-5%的概率是多少?“这类问题。
期望值
期望值(或均值)是随机变量的长期平均值——即分布的重心。
对于离散随机变量:
对于连续随机变量:
可以把 想象成分布的平衡点。如果你无限次重复底层随机过程并平均结果,你就会得到 。
期望值有一个非常有用的线性性质:,无论 和 是否独立。
方差与标准差
期望值告诉你分布的中心在哪里。方差告诉你数据有多分散:
其中 。方差是到均值距离平方的平均值。因为我们对距离进行了平方,所以方差总是非负的,并且以原始变量的平方单位来衡量——这通常很不方便。
标准差 让我们回到原始单位。对于正态分布,大约68%的观测值落在均值的一个标准差内,95%在两个标准差内,99.7%在三个标准差内。
离散例子:三次抛掷中的正面数
假设你抛三次公平的硬币,设 为正面的数量。样本空间有8个等可能的结果(HHH, HHT, HTH, THH, HTT, THT, TTH, TTT), 可以取0、1、2或3。
PMF 为:
| 0 | |
| 1 | |
| 2 | |
| 3 |
期望值为 。平均而言,三次抛掷中你期望有1.5个正面——这是合理的,因为每次抛掷有50%的概率是正面,且有三次抛掷,所以 。
连续例子:资产收益
在量化金融中,日资产收益被建模为连续随机变量。一个常见的模型是假设收益 ——服从均值为 、方差为 的正态分布。我们会在下一篇文章中详细研究正态分布。
在这个模型下, 是损失超过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.