贝叶斯定理与条件概率
贝叶斯定理让你在新证据到来时更新信念。它是贝叶斯统计和许多机器学习算法的基础。
回顾:条件概率
在深入贝叶斯定理之前,让我们重温第一篇文章中的条件概率公式:
这表示”在 发生的条件下 的概率,等于 和 的联合概率除以 的概率”。直觉是:当我们把注意力限制在 已经发生的世界里,这些结果中有多大比例也有 ?
通过重新排列这个定义,我们得到乘法规则:
两种形式是等价的。从哪个开始取决于你已知什么和你想求什么。
贝叶斯定理
贝叶斯定理是乘法规则的重新排列:
用文字表达:
- 先验 :在看到任何证据之前,你对 的初始信念。
- 似然 :如果 为真,这个证据 有多大可能被发现?
- 后验 :看到证据 后,你对 的更新后的信念。
- 归一化常数 :确保后验是一个有效概率(对所有可能假设求和为1)。
归一化常数的计算方式为:
这正是全概率公式:观察到证据 的总概率是每个可能假设下似然的加权平均。
具体例子:业绩超预期
假设你正在分析一只股票。设 为”公司报告正面业绩超预期”的事件, 为”股票次日上涨”的事件。
你有历史数据告诉你:
- (40%的季度有正面超预期)
- (50%的交易日股票上涨)
- (给定正面超预期,75%的情况下股票次日上涨)
那么 ——股票上涨的条件下正面业绩超预期的概率是多少?
因此,给定股票上涨,有60%的概率存在正面业绩超预期——高于基础率40%。证据将我们的信念向上更新了。
用 2×2 表格建立直觉
| 股票上涨 () | 股票下跌 () | 合计 | |
|---|---|---|---|
| 超预期 () | 30 | 10 | 40 |
| 未超预期 () | 20 | 40 | 60 |
| 合计 | 50 | 50 | 100 |
这张表显示如果我们观察100天会发生什么。从边缘分布,40天有超预期,50天股票上涨。“超预期且股票上涨”的联合计数为 。条件概率 ,与贝叶斯定理计算的结果完全一致。
共轭先验
当先验和后验来自同一分布族时,产生了一个强大的实际简化,这被称为共轭先验。
Beta-二项共轭是一个经典例子。假设你观察到 次伯努利试验(如 个交易日中 个上涨日)中 次成功。如果你对成功概率 的先验是 Beta(),那么后验也是 Beta:
你只需将观察到的计数加到先验超参数上。无需进行复杂的积分。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
alpha_prior, beta_prior = 2, 2
# 观察到的数据:10个交易日中6个上涨日
k = 6
n = 10
# 后验:Beta(alpha + k, beta + n - k)
alpha_post = alpha_prior + k
beta_post = beta_prior + n - k
# 绘制先验和后验
theta = np.linspace(0, 1, 1000)
prior_pdf = stats.beta.pdf(theta, alpha_prior, beta_prior)
post_pdf = stats.beta.pdf(theta, alpha_post, beta_post)
plt.figure(figsize=(10, 5))
plt.plot(theta, prior_pdf, 'b--', lw=2, label=f'Prior Beta({alpha_prior},{beta_prior})')
plt.plot(theta, post_pdf, 'r-', lw=2, label=f'Posterior Beta({alpha_post},{beta_post})')
plt.axvline(x=0.6, color='gray', linestyle=':', label='MPE = 0.6')
plt.xlabel('θ (上涨日概率)')
plt.ylabel('密度')
plt.title('贝叶斯更新:Beta-二项共轭')
plt.legend()
plt.grid(alpha=0.3)
plt.show()
# 后验均值(θ 的贝叶斯估计)
posterior_mean = alpha_post / (alpha_post + beta_post)
print(f"先验均值: {alpha_prior / (alpha_prior + beta_prior):.4f}")
print(f"后验均值: {posterior_mean:.4f}")
print(f"最大似然估计 (k/n): {k / n:.4f}")
提示词
用 scipy.stats 和 numpy 演示贝叶斯后验更新:Beta(2,2) 先验,观察 6 涨 / 10 跌后变成 Beta(8,6),画先验和后验密度曲线。
后验均值(0.57)是先验均值(0.5)和最大似然估计(0.6)之间的折中。你观察到的数据越多,后验就越向数据靠拢。
在量化金融中的应用
贝叶斯方法出现在量化金融的许多地方。在信号处理中,你可以用卡尔曼滤波器在每笔新交易发生时更新对资产真实价格的估计。在机器学习中,朴素贝叶斯分类器用贝叶斯定理根据观察到的特征对文档或市场状态进行分类。在风险管理中,贝叶斯更新让你能够将新信息(信用降级、宏观冲击)纳入你对违约概率的先验估计中。
基础率谬误
贝叶斯定理还解释了一个著名的认知错误。假设一个交易信号在该信号触发时正确预测股票运动的概率是80%,且该信号在所有交易日中有10%的时间触发。当信号触发时,股票运动的概率是多少?
这看起来很简单。但当基础率(先验概率)非常低时,许多人会感到困惑。考虑一种准确率为99%的罕见疾病医学检测,但该疾病只影响0.1%的人口。检测结果呈阳性并不意味着有99%的概率患有这种疾病——因为这种疾病非常罕见,大多数阳性结果将是假阳性。贝叶斯定理计算出正确的后验概率,而且出乎意料地低。
参考文献
Gelman, A. et al. Bayesian Data Analysis, Chapter 1. CRC Press. Ross, S. M. A First Course in Probability, Chapter 3. Pearson.