The true logic of this world is in the calculus of probabilities. ——James Clerk Maxwell
我们平时在生活中经常使用“概率”、“机会”或“可能性”这样的词,通常我们是在做一种猜测或做一种预判。为什么我们要猜测呢?因为我们希望在不完全掌握所有信息时做出我们必须做出的决定。我们在生活中所使用的“概率”一词,指的通常是在大量重复某个观察时,用一个0到1之间的数来概括其出现的可能性。例如当我们重复了100000次抛硬币的实验,观察到有50000次实验中正面朝上,我们就说正面朝上的概率是1/2。我们只能对“可重复”的观察谈概率。概率是观察者所做出的“统计结果”,而不是事物本身的属性。概率有赖于我们的知识以及进行估计的能力。很有可能,当我们所掌握的知识发生变化后,对事物的概率的估计就会变得完全不同。
离散概率空间
“概率是大量观察以后用一个数来估计可能性”,这样的定义显然不是一种严格的数学定义。如果要想这样定义,必须先严格定义什么是“估计”,什么是“可能性”,什么是“大量观察”。所以,在“概率论”中,我们首先要从数学的观点来定义概率,然后再去看这样的定义满足什么性质,这样的性质是否与人们常识中所认识的概率相符。而这里说的“数学的观点”,就是基于集合论的语言来定义概念,描述性质。
本文所涉及的都是离散概率, 我们会在下一篇文章开始再讨论更复杂的概率。也就是说,我们不会讨论“在[0,1]实数区间里随机选一个线段”这样的情况,而只讨论“抛一个立方体骰子”“抛n次硬币”这样的“有限”的情况。我们会看到,离散概率所涉及的数学本质上来说只是一些组合计数,并不会涉及高深的分析学理论。
让我们从掷骰子的例子出发,来引入描述概率的数学语言。当我们反复完成“掷骰子”的动作时,由于每次动作都会有细微的不同,得到的点数可能各不相同。重复许多次这个动作以后,我们发现点数1,2,3,4,5,6出现的次数大约都各占总数的1/6。于是我们说“掷出6”的概率是1/6。我们还可以进一步推理出,“掷出的点数大于等于3”的概率是1/2。在这里,我们涉及到了三个关键点:骰子产生的结果是1,2,3,4,5,6中的恰好一个数字;诸如“掷出6”或“掷出的点数大于等于3”这样的表达都可以有一个概率与其对应;概率是一个0到1之间的实数。
以上三点就构成了描述概率的三个基本组件:
- 我们把掷骰子可能产生的结果的集合称为样本集(sample set),记为Ω,在这里Ω={1,2,3,4,5,6}(在离散概率中,我们总是考虑有限的样本集);
- “掷出6”或“掷出的点数大于等于3”这样的描述称为一个“事件(event)”,一个事件是样本集的一个子集,例如“掷出6”对应{6},“掷出的点数大于等于3”对应{4,5,6}。由于我们假定了Ω是有限集,那么我们可以定义事件集(set of event)为样本集的幂集,记为F=2Ω。事件是事件集的元素;
- 事件集中的每个事件对应[0,1]中一个实数。这就称为事件的概率,它是一个F→[0,1]的函数,记为P。在掷骰子的例子中,由单个样本所构成的事件集的概率都为1/6,而多个元素的事件集的概率等于这些元素的单元集的概率之和,例如设A={4,5,6}∈F,有P(A)=1/2。全集是一个事件,它的概率应当为1;空集也是一个事件,它的概率应当为0;如果A的概率为p,那么A的补集的概率应当为1−p;
基于上述观察,我们下面严格定义“离散概率空间”的概念:
离散概率空间(discrete probability space)是一个三元组(Ω,F,P)。其中Ω是一个有限集合,称为样本集。F=2Ω,称为事件集;P:F→[0,1]称为概率函数。概率函数要满足下面三个条件:
- P(∅)=0,P(Ω)=1
- ∀A∈F,P(A)+P(Ω∖A)=1
- 对于两两无交的事件序列A1,A2,⋯,An,P(i=1⋃nAi)=i=1∑nP(Ai)
Rmk. 事件是集合,因此我们可以用集合的符号来表示来表示事件的发生:例如A∪B表示“事件A或事件B发生”,A∩B表示“事件A与事件B同时发生”。我们还可以记A=Ω∖A,表示“事件A不发生”
在离散概率中,Ω中的每一个元素自身构成的单元集是一个事件,称为“基本事件(basic event)”。概率函数的条件三意味着,只要确定每个基本事件的概率,原则上就可以求出任何事件的概率。
条件概率与独立事件
条件概率的定义
在掷骰子的例子中,我们之所以认为基本事件的概率是1/6,是因为在掷骰子之前我们没有任何理由倾向于某个特定的结果。这就好像,如果把你关在一个房间里,由你的朋友在隔壁房间掷骰子,接着你的朋友让你来猜骰子的结果,这时候的你因为不掌握任何特殊信息,所以只能随便猜一个结果,你猜对的概率就是1/6。可是,如果你的朋友在让你猜之前,透露给你说“骰子的结果是一个偶数哦~”,这时候你只会在2,4,6这三个选项里猜,所以你猜对的概率变成了1/3。如果你的朋友透露给你说“骰子的结果大于4”,那么你猜对的概率就能达到1/2。
上面的例子说明,如果我们掌握了一些信息,那么就可以从样本集里排除一些样本,事件的概率就会变成这个“子概率空间”中的概率。同时,“掌握的信息”也可以用一个事件来描述。比如,朋友告诉你“骰子的结果是偶数”,这本身对应一个事件{2,4,6}。所以,新的概率是把“已知某一事件发生”作为条件时的概率,我们把这样的概率称为“条件概率(conditional probability)”。它的计算方法应当是用“已知事件发生的概率”作为分母“两事件同时发生的概率”作为分子所得的分数:
对于概率空间(Ω,F,P)中的两个事件A,B∈F,定义A事件在B事件发生下的条件概率为
P(A∣B)=P(B)P(A∩B)
例如,“掷出6”在“掷出偶数”发生下的条件概率为P({6}∣{2,4,6})= P({2,4,6})P({6})=1/21/6=31。
独立事件的定义
考虑“连续抛两次硬币”的过程,为了描述这一过程的可能结果,可以这样建立样本空间:Ω={(x,y)∣x,y∈{0,1}},每个样本是两次抛硬币结果的有序对,正面为1,反面为0。事件集是2Ω,每个基本事件的概率都是相等的,也就是1/4。对于“连续抛两次硬币”这一过程,我们有这样一个常识:“第一次抛出正面”和“第二次抛出正面”这两个事件应当是“毫无关系”的,并不会因为第一次抛出了正面而改变第二次抛出正面的概率。这一常识可以用条件概率来描述,如果对于事件A,B∈F,如果P(B)=P(B∣A),并且P(A)=P(A∣B),就说明A,B这两个事件是“毫无关系”的。根据条件概率的定义,P(B)=P(B∣A)与P(A)=P(A∣B)这两个式子是等价的,它们都等价于P(A)⋅P(B)=P(A∩B)。
我们就把这一特性作为事件的独立性的定义:在概率空间(Ω,F,P)中,两个事件A,B∈F是独立的(independent)当且仅当:
P(A∩B)=P(A)⋅P(B)
对于有限多个事件A1,⋯,An,定义它们“两两独立(pairwise independent)”当且仅当∀i,j∈[n],P(Ai∩Aj)=P(Ai)P(Aj),定义它们“互相独立(mutually independent)”当且仅当对于任何I⊆[n],P(i∈I⋂Ai)=i∈I∏P(Ai)。
Rmk. “互相独立”的要求比“两两独立”的要求更高。显然,互相独立一定意味着两两独立。下面我们来举一个两两独立但不互相独立的例子。还是考虑上面的“抛两次硬币”的例子。设事件A1是“两次结果相同”,A2是“第一次抛出正面”,A3是“第二次抛出正面”。那么P(A1)=1/2,P(A2)=1/2,P(A3)=1/2,P(A1∩A2∩A3)=P({(1,1)})=1/4 =P(A1)P(A2)P(A3),所以A1,A2,A3不是互相独立的。但是P(A1∩A2)=1/4,P(A1∩A3)=1/4,P(A2∩A3)=1/4,因此A1,A2,A3是互相独立的。
应当意识到,并不是对于所有的独立事件我们都能在脑海中建立起直观的印象。例如在掷一次骰子的例子中,“掷出1或2”与“掷出1或3或4”发生的概率分别为1/3和1/2,它们同时发生也即“掷出1”发生的概率恰好为1/6。所以根据定义,“掷出1或2”与“掷出1或3或4”这两件事是独立的。但是这个“独立”如何在直观上解释呢?其实我们并无法给出一个特别好的解释,这更像是某种数值上的巧合。在应用中,更多的是反过来——我们已经意识到某两个事件在直观上应当是独立的了(例如先后两次的抛硬币的过程),然后按照独立的定义去验证确实如此。
链式法则
我们可以把条件概率的等式变形为P(A∩B)=P(A∣B)⋅P(B)。于是我们能够得到一个求解事件的交集的概率的链式法则(chain rule):
===P(A1∩⋯∩An)P(An∣A1∩⋯∩An−1)⋅P(A1∩⋯∩An−1)⋯P(An∣A1∩⋯∩An−1)⋅P(An−1∣A1∩⋯∩An−2)⋯P(A3∣A1∩A2)⋅P(A2∣A1)⋅P(A1)
全概率公式
对于A,B∈F,可以证明P(A)=P(A∩B)+P(A∩B):因为B与B是互不相交的,因此A∩B与A∩Bˉ也互不相交,那么根据概率函数的条件三有P(A∩B)+P(A∩Bˉ)=P((A∩B)∪(A∩Bˉ))=P(A)。
在上一段中,B,B构成了全集Ω的一个partition。我们可以把以上结论推广到n个事件构成的partition上:如果Ω有partition B1,⋯,Bn,那么∀A∈F,有:
P(A)=i=1∑nP(A∩Bi)
这称为全概率公式(law of total probability)
随机变量
我们再来考虑“掷两个骰子”的例子。当我们问“两次掷骰子的点数之和是多少?”这个问题时,问题的答案不是一个确定的数字,而应该是一系列可能的数字。点数之和最小可能是2,如果两次都掷出了1,但这只有1/36的概率会发生。相比之下,点数之和是6的概率达到5/36,因为(1,5),(2,4),(3,3),(4,2),(5,1)都会产生这一结果。所以,这个问题的答案应该是一个“分布”:1/36的概率答案为2,2/36的概率答案为3,3/36的概率答案为4,4/36的概率答案为5,5/36的概率答案为6,6/36的概率答案为7,5/36的概率答案为8,4/36的概率答案为9,3/36的概率答案为10,2/36的概率答案为11,1/36的概率答案为12。
随机变量的定义
为了更好的描述这个问题,我们可以建立一个从样本空间到实数的函数X:Ω→R。在“点数之和”的例子里,我们可以令X((x,y))=x+y。例如,(2,5)这个样本会被X映射到实数7。基于一些历史的原因,这样的函数称为随机变量(random variables)。在离散概率中,任何Ω→R的函数都可以作为一个随机变量。
对于随机变量X:Ω→R,我们用符号“X=a”来表示“随机变量X的取值为a”这一事件,也即集合{s∈Ω∣X(s)=a},也即函数X在a上的原像X−1(a)。对于离散概率空间,这一集合要么存在要么为空。更一般的,对于R的子集A也可以定义事件“X∈I”,它对应集合X−1(I),也即{s∈Ω∣X(s)∈I}。
我们特别地定义一个记号1[A](其中A是一个事件),它是一个随机变量,称为事件A的indicator。它满足:1[A](ω)=1当且仅当ω∈A,否则1[A](ω)=0。它用来“指示(indicate)”事件A发生与否。
我们可以枚举基本事件来计算P(X=a):
P(X=a)=X(s)=a,s∈Ω∑P(s)
对于离散概率,可以定义两个随机变量X,Y的“和”:(X+Y)(ω)=X(ω)+Y(ω)。它依然是一个随机变量。同理,也可以定义随机变量的乘积、商等等。
随机变量的分布
对于随机变量,我们通常最关心的就是当a取各个不同值得时候P(X=a)的大小,这称为随机变量的分布(distribution)。对于离散的随机变量,我们可以定义一个R→[0,1]的函数p来描述分布,其中
p(a):=P(X=a)
p称为概率质量函数(probability mass function)。
因为样本空间是有限的,所以p只会在有限个点上有值,其余地方值都为0。显然,有a∈R∑p(a)=1。
随机变量的独立性
“随机变量等于某个值”是一个事件,我们可以把关于事件性质的描述方法迁移到随机变量上。
对于随机变量X,Y,称X与Y是独立的,当且仅当对于任意的a,b∈R成立P((X=a)∩(Y=b))=P(X=a)⋅P(Y=b),记为X⊥Y。
如果有限多个随机变量两两之间是独立的,就称这列随机变量两两独立(pairwise independent)。
称有限多个随机变量X1,⋯,Xn是“互相独立(mutually independent)”的,当且仅当对于∀a1,⋯,an∈R,∀I⊆[n],P[i∈I⋂(Xi=ai)]= i∈I∏P(Xi=ai)。
随机变量的期望
期望(expectation)是随机变量的一个重要特征,它用来描述随机变量的“平均值”。在离散概率空间中,定义:
E[X]:=a∈R∑a⋅P(X=a)
它也可以按照基本事件来给出:
E[X]=ω∈Ω∑X(ω)P(ω)
容易证明这二者是等价的。
关于期望,一个最重要的事实称为“期望的线性性(linearity)”。它指出有限个随机变量的和(依然是一个随机变量)的期望总是等于这些随机变量的期望的和。对于有限个随机变量X1,⋯,Xn,始终满足:
E[i=1∑nXi]=i=1∑nE[Xi]
我们对于两个随机变量的情况给出证明:E[X+Y]=ω∈Ω∑(X(ω)+Y(ω))P(ω)= ω∈Ω∑X(ω)P(ω)+ ω∈Ω∑Y(ω)P(ω) =E[X]+E[Y],证毕。期望的线性性重要在于,它没有对随机变量提出任何的要求,即使两个随机变量不是“独立”的,也有期望的线性性。“期望的线性性”是“期望”的性质,不是“随机变量”的性质。期望的线性性会在我们计算时提供极大的方便。
Rmk. 从更高的角度看,期望的线性性其实来自于“加权求和”这一运算的线性性。这个性质在连续世界里就是“积分的线性性”。在离散概率中,期望的线性性可以看作积分线性性的离散表达。
当然,为了完善“线性性”这一概念,我们还应当证明
∀c∈R,E[cX]=cE[X]
这是容易的,E[cX]=ω∈Ω∑cX(ω)P(ω)=cω∈Ω∑X(ω)P(ω)=cE[X]。
Rmk. 必须要指出的是,期望的线性性只对“有限个变量”成立。当变量有无穷个时,它是不正确的。从连续世界的视角看,当变量有无穷个时“变量之和”是一个极限过程,期望本身是一个积分因此也是一个极限过程,因此期望的线性性就是一个“极限符号能否交换位置的问题”(重积分能否化为累次积分的问题),我们知道这是需要额外条件的。
条件期望
我们可以仿照条件概率,定义条件期望(conditional expectation)。对于随机变量X和事件A∈F:
E[X∣A]:=a∈R∑a⋅P(X=a∣A)
这等价于
E[X∣A]=ω∑X(ω)⋅P(ω∣A)
条件期望表示“在事件A发生的条件下”随机变量X的期望。例如,如果随机变量X表示掷骰子所得的点数,那么E[X]=3.5。而当事件A为“骰子点数为偶数”时,E[X∣A]=4,因为在事件A作为前提时X取奇数的概率为0,所以1,3,5不会在统计平均数时被计入在内。
仿照全概率公式P(B)=i=1∑nP(B∩Ai),我们有:
E[X]=i=1∑nE[X∣Ai]⋅P(Ai)
证明:E[X]=a∑a⋅P(X=a)=a∑a⋅i∈[n]∑P(X=a∩Ai)=a∑a⋅i∈[n]∑P(Ai)P(X=a∣Ai) =i∈[n]∑P(Ai)a∑a⋅P(X=a∣Ai)=i∈[n]∑P(Ai)E[X∣Ai]。不妨把这称为“全期望公式”。
几类特殊的离散分布
伯努利分布
设p∈[0,1]是一个常数。如果随机变量X满足P[X=1]=p,P[X=0]=1−p,那么称X为伯努利(Bernoulli)随机变量,记为X∼Ber(p)。X的分布称为伯努利分布。例如,抛硬币的结果就是一个伯努利分布X∼Ber(1/2)。
对于伯努利分布X∼Ber(p),E[X]=1⋅p+0⋅(1−p)=p。
二项分布
把伯努利变量X∼Ber(p)独立重复n次,第i次的随机变量记为Xi,那么Y=i=1∑nXi就称为一个二项(binomial)随机变量。它满足二项分布:P(Y=k)=(kn)pk(1−p)n−k。
二项随机变量的期望E[Y]=E[i=1∑nXi],根据期望的线性性,E[i=1∑nXi]=i=1∑nE[Xi]=i=1∑np=np。
几何分布
如果把二项分布理解为抛n次硬币统计正面朝上的次数,那么几何(geometric)分布就可以理解为不停抛硬币直到第一次出现正面所需要的次数。设X∼Ber(p),如果Z满足几何分布,那么P(Z=n)=(1−p)n−1p。
如何计算几何分布的期望?从直觉上看,丢一个1/10概率出正面的硬币大约需要10次,因此我们可以猜测E[X]=p1。事实确实如此,按照定义计算即可验证。
参考资料
[1] Chihao Zhang, SJTU Combinatorics in Computer Science (Spring 2023)
[2] Michael Mitzenmacher, Eli Upfal, Probability and Computing