本节摘要:概率空间由样本空间、事件域与概率测度三件套构成,它回答"概率值定义在哪些对象上"这个根本问题。本节解释三件套各自的分工、事件域为什么必须是 σ-代数、概率公理为何这样设,并说明这套框架在随机过程研究中扮演的地基角色。
为什么掷骰子这件事也要写成三元组?直接说"每个面六分之一"不行吗?单个骰子确实可以,可一旦问题变成"连掷无数次骰子时正面出现的比例是否收敛"或者"股价路径是否触碰某条警戒线",我们面对的对象就从"一个事件的概率"变成了"无穷多个事件的联合行为"。这时候必须先说清楚:概率这个函数,它的定义域到底装了哪些东西,不然"无穷"会把含糊性放大成悖论。概率空间就是给概率函数圈定的合法地盘。
样本空间 Ω 收纳所有可能的基本结果。掷一枚骰子,Ω 取 1 到 6;观察一天内某客服中心收到的来电数,Ω 取非负整数;追踪一个布朗粒子在区间里的位置,Ω 取一段实数区间上的全体函数——注意最后这种情况,一个"样本点"本身就是一条完整的时间轨迹,这正是随机过程的舞台比初等概率论大的地方。
事件域 F(也记作 σ-代数)是 Ω 的一个子集族,规定了"哪些子集有资格谈概率"。它必须满足三条:包含全空间 Ω;对补运算封闭(一个集合有了概率,它的补集也得有);对可数并封闭(可数个事件的并仍是事件)。初学者容易觉得这是学究气,其实它挡住的是真问题:当 Ω 不可数时(比如连续区间),如果允许所有子集都谈概率,利用选择公理可以构造出无法一致指派概率的病态集合,著名的 Vitali 集合就是例子——用平移不变性可以推出它的概率既是零又不是零。划定 F,就是宣布"我们只在可信的范围内做运算"。
概率测度 P 是定义在 F 上的函数,满足三条公理:非负性(P 不小于零)、规范性(全空间的概率为一)、可数可加性(互不相交的可数个事件,概率可以逐个相加)。可数可加性是整个体系的承重墙,后面所有极限定理——大数定律、中心极限定理——的证明都靠它,有限可加推不出它们。

用一个具体场景体会事件域的筛选作用。设 Ω 是某城市一天的气温曲线(一个从零点到二十四点的连续函数),若我们只关心"当天最高温是否超过三十度"这类有限个问题,事件域可以只由这几个问题的"原子事件"生成——不必装下所有能想到的子集。生成的方式叫"由一族集合生成的 σ-代数":把感兴趣的最小事件放进去,反复做补、并、交,直到封闭为止。
随机过程里最常见的 σ-代数是由过程自身生成的信息流:记 F_t 为"到时刻 t 为止,路径的行为能区分出来的所有事件"构成的 σ-代数。它随 t 增大而变大(信息只增不减),这族递增的 σ-代数叫滤流。第 4 章讲鞅时,"适应性"——即 X_t 的取值只依赖截至 t 的信息——就是用滤流语言写的。这里先把感受建立起来:σ-代数就是"信息量"的数学化身。
σ-代数的三条封闭规则对应三种合法的信息操作:知道 A 就知道"非 A"(补封闭);能逐条列出的事件序列就能问"至少一件发生"(可数并封闭)。交与差都能从补和并推出来,所以不用单列。
⚠️ 常见误解:把事件域当成"全部子集"。在离散有限样本空间里两者恰好相等,于是很多人带着这个印象进入连续情形,遇到"不可测集"时就会困惑。记住:连续情形下"全部子集"恰恰是走不通的路,F 通常严格小于幂集。
概率公理一共只有三条,但常用结论都能从这里推出来,推一遍胜过背十遍:
单调性:若 A 包含于 B,则 P(A) 不超过 P(B)。证明:写 B 为 A 与 B 减 A 的不交并,用可加性,再由非负性即得。
容斥公式:P(A 并 B) = P(A) + P(B) − P(A 交 B)。证明:把 A 并 B 拆成 A 与"B 减 A 交 B"两块不交区域,分别求概率再合并。
连续性:若事件序列单调递增趋于 A,则 P(A) 等于概率序列的极限。这是从有限走向无穷的桥,博雷尔-坎泰利引理、博雷尔强大数定律的证明都要踩过这座桥。
动手验证一次:设某系统由两个独立部件串联而成,部件失效率分别为 0.1 与 0.2(指一段时间内的失效概率)。系统失效事件是"至少一个部件失效"。用容斥公式:P = 0.1 + 0.2 − 0.1×0.2 = 0.28。若改为并联(两个都能独立支撑系统),失效需要两个同时失效:P = 0.1×0.2 = 0.02。这两行算术就是"冗余设计降低风险"的定量版本。
初等概率论的样本空间往往有限或可数,"给每个点指派概率"就够用。随机过程的样本空间是不可数的函数空间——一条连续时间的路径有无穷多个时刻,每个时刻的取值都要指定。此时"给点指派概率"的思路彻底失效(单个路径的概率通常是零,有意义的是路径集合的概率),必须换成测度论的思路:指定路径集合的测度。
Kolmogorov 在二十世纪三十年代完成的公理化,本质就是这一次地基改造:把概率定义为满足三条公理的测度,把随机变量定义为可测函数,把期望定义为对测度的积分。从此"无穷多个随机变量的联合行为"有了严格的讨论场地,随机过程作为一门学科才站稳了脚跟。本教程后续章节不再深挖测度论细节,但每次遇到"几乎必然""可测""适应"这类词,你应当意识到它们都是这座地基上的构件。
下面用数值实验验证容斥公式在大样本下的表现,同时体验"事件 = 样本的子集"这一操作化理解:
import numpy as np rng = np.random.default_rng(42) n = 200_000 # 模拟两个独立部件:1 表示一段时间内失效 A = rng.random(n) < 0.10 # 部件一失效事件 B = rng.random(n) < 0.20 # 部件二失效事件 union = A | B # 至少一个失效(事件 = 布尔掩码) p_emp = union.mean() # 用频率估计概率 p_theory = 0.10 + 0.20 - 0.10*0.20 # 容斥公式 print(f"模拟频率 P(A并B) = {p_emp:.4f}") print(f"容斥公式理论值 = {p_theory:.4f}") # 典型输出:模拟频率 P(A并B) = 0.2801 ;理论值 = 0.2800 # 频率围绕理论值小幅波动,样本越大波动越小——这正是大数定律的日常形态
问:事件域为什么不干脆取"全体子集",省得讨论? 答:离散有限空间里可以,全体子集就是合法的 σ-代数。但连续空间里全体子集大得惊人,允许对每个子集指派概率后,可数可加性与平移不变性等自然要求会互相矛盾,Vitali 集合就是矛盾体。取生成的 σ-代数是主动收缩战场,保住一致性。
问:概率为零的事件"不可能发生"吗? 答:不是。在连续分布里任何单点的概率都是零,但抽样总会落在某一个点上——零概率事件天天发生。正确说法是"几乎必然":概率为一地发生。随机过程的许多定理(路径连续、大数定律)都是几乎必然式的陈述,读定理时看清这个限定词。
问:测度论的这套框架对编程实现有什么用? 答:直接的用处是把"事件"落实为样本集合上的判定函数——本节代码里用布尔掩码表示事件、用均值估计概率,正是公理体系的操作化版本。抽象框架保证这些操作在无穷维推广时不自相矛盾,比如第 4 章在路径空间上谈"路径连续"这一事件,仍是同一套语法。
下一节把镜头从事件移到随机变量:期望与方差的计算有哪些固定套路、哪些隐蔽的坑。