跳到正文

什么是概率?

概率衡量某件事发生的可能性。理解概率是所有统计推断和量化建模的基础。

第 4 篇 · 共 5 篇 约 4 分钟

概率的含义

当我说”明天有60%的降雨概率”,我们真正想表达的是什么?这取决于提问者的角度。概率主要有两种解释方式,它们在不同情境下各有用途。

频率解释认为,概率是如果你无限次重复某个实验,事件发生的比例极限。抛一枚公平的硬币10000次,你会看到大约5000次正面,频率约为0.5。重复实验的次数越多,观察到的频率就越接近真实概率。这种解释对机会博弈和可重复的金融事件(如每日股票收益)建模非常有效。

主观解释将概率视为一种信念程度。一位量化分析师可能会说”我给这笔交易盈利的概率赋值为30%“——这不是因为他做了实验,而是基于分析、经验和现有信息形成的信念。主观概率是贝叶斯统计的基础,在贝叶斯框架中,你的信念会随着新证据的到来而更新。

两种观点都是有效的,在量化金融中你都会遇到。概率的数学规则——定理、公式和定律——无论你选择哪种解释都是一样的。

样本空间与事件

在讨论概率之前,我们需要先明确我们在测量什么。

样本空间 Ω\Omega 是随机实验所有可能结果的集合。如果你掷一枚六面骰子,样本空间是 Ω={1,2,3,4,5,6}\Omega = \{1, 2, 3, 4, 5, 6\}。如果你观察一只股票的日收益率,样本空间是所有实数(实际上,你可能会限制在某个范围内,如 [−0.5,0.5][-0.5, 0.5] 作为单日波动范围)。

事件是样本空间的子集。“掷出偶数”是事件 A={2,4,6}A = \{2, 4, 6\}。一个事件可以包含一个结果、多个结果,或者不包含任何结果(空集 ∅\emptyset)。

概率公理

Kolmogorov 公理由俄罗斯数学家 Andrey Kolmogorov 于 1933 年提出,是现代概率论的基础。它们出奇地简单。

第一,概率总是在0和1之间:

0≤P(A)≤10 \leq P(A) \leq 1

第二,某个事情发生——即你落在样本空间中的概率为1:

P(Ω)=1P(\Omega) = 1

第三,对于任何不能同时发生的两个事件(称为互斥事件),其中一个发生的概率等于它们各自概率之和:

P(A∪B)=P(A)+P(B)对于互斥的 A 和 BP(A \cup B) = P(A) + P(B) \quad \text{对于互斥的 } A \text{ 和 } B

从这三个公理出发,几乎概率论的所有内容都可以推导出来。例如,如果 AA 和 AcA^c(AA 的补集,即”非 AA“)是互补事件,那么 P(A)+P(Ac)=1P(A) + P(A^c) = 1。这很直观:要么 AA 发生,要么不发生——这是仅有的两种可能,它们的概率之和必须为1。

互补事件

补规则是概率中最实用的捷径之一。如果你知道某年发生市场崩盘的概率是5%,那么不崩盘的概率就是95%。与其枚举所有不发生崩盘的方式,不如找到补集的概率,然后用1减去它。

P(Ac)=1−P(A)P(A^c) = 1 - P(A)

加法规则与乘法规则

对于非互斥事件——即可以同时发生的事件——加法规则需要一个修正:

P(A∪B)=P(A)+P(B)−P(A∩B)P(A \cup B) = P(A) + P(B) - P(A \cap B)

P(A∩B)P(A \cap B) 这一项减去了被重复计算的重叠部分。想象一下统计选修数学或经济学的学生人数:如果你把学数学的学生数加上学经济学的学生数,两个都学的学生就被计算了两次,所以你需要减掉一次。

乘法规则给出两个事件同时发生的概率:

P(A∩B)=P(A)⋅P(B∣A)P(A \cap B) = P(A) \cdot P(B|A)

这里 P(B∣A)P(B|A) 是在 AA 已经发生的条件下 BB 的条件概率——我们接下来会详细讨论。

如果 AA 和 BB 是独立的(也就是说,知道 AA 是否发生并不能告诉你任何关于 BB 是否发生的信息),那么 P(B∣A)=P(B)P(B|A) = P(B),乘法规则简化为:

P(A∩B)=P(A)⋅P(B)P(A \cap B) = P(A) \cdot P(B)

条件概率

很多时候我们想知道在已知其他事件发生的前提下,某事件发生的概率。这就是条件概率:

P(A∣B)=P(A∩B)P(B)P(A|B) = \frac{P(A \cap B)}{P(B)}

读作”在 BB 发生的条件下 AA 的概率”。例如,如果你从一副标准扑克牌中抽出一张,想知道它是红桃且已知它是红色牌的概率,你求的就是 P(红桃∣红色)P(\text{红桃} | \text{红色})。

维恩图在这里是一个很有用的可视化工具。想象一个代表样本空间的矩形,其中两个重叠的圆代表事件 AA 和 BB。重叠部分——交集——就是 A∩BA \cap B。条件概率 P(A∣B)P(A|B) 问的是:在我们已知处于圆 BB 内部的前提下,圆 BB 中同时也在圆 AA 内部的比例是多少?这个比例正好是 P(A∩B)P(B)\frac{P(A \cap B)}{P(B)}。

独立性

如果知道一个事件不能改变另一个事件的概率,这两个事件就是独立的:

P(A∣B)=P(A)或等价地P(B∣A)=P(B)P(A|B) = P(A) \quad \text{或等价地} \quad P(B|A) = P(B)

由此可以直接推出独立事件的乘法规则:

P(A∩B)=P(A)⋅P(B)P(A \cap B) = P(A) \cdot P(B)

一个经典例子:如果你抛一枚公平的硬币两次,第一次的结果不会影响第二次。P(第二次正面∣第一次正面)=0.5=P(第二次正面)P(\text{第二次正面} | \text{第一次正面}) = 0.5 = P(\text{第二次正面})。

用 Python 模拟概率

Python 是通过模拟来建立概率直觉的优秀工具。大数定律(我们后面会学到)指出,你重复实验的次数越多,观察到的频率就越接近真实概率。让我们来演示一下。

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(42)


n_flips = 10_000
flips = np.random.choice([0, 1], size=n_flips)  # 0 = 背面, 1 = 正面

# 计算正面的累积比例
running_prop = np.cumsum(flips) / np.arange(1, n_flips + 1)

plt.figure(figsize=(10, 5))
plt.plot(np.arange(1, n_flips + 1), running_prop, alpha=0.7)
plt.axhline(y=0.5, color='red', linestyle='--', label='真实概率 = 0.5')
plt.xlabel('抛掷次数')
plt.ylabel('正面比例')
plt.title('大数定律:硬币抛掷模拟')
plt.legend()
plt.grid(alpha=0.3)
plt.show()

# 模拟掷10000次公平六面骰子
n_rolls = 10_000
rolls = np.random.choice([1, 2, 3, 4, 5, 6], size=n_rolls)

print(f"观察到的频率:")
for face in range(1, 7):
    freq = np.mean(rolls == face)
    print(f"  面 {face}: {freq:.4f} (真实概率: {1/6:.4f})")

提示词

用 numpy 写一段概率直觉演示:模拟 1 万次抛硬币画正面累积比例的收敛曲线;再模拟 1 万次掷骰子,统计每个面出现的频率。

这段代码表明,随着试验次数的增加,观察到的比例会收敛到真实概率。试着改变 n_flips 的值,看看不同样本量下收敛行为是如何变化的。

参考文献

Ross, S. M. A First Course in Probability, Chapter 1. Pearson. Grimmett, G. R. and Welsh, D. Probability, Chapter 1. Oxford University Press.