Probability & Stats · 第2章

概率基础

用数学量化不确定性

2.1

样本空间与事件

概率论研究的是随机现象——在相同条件下重复试验,结果不确定的现象。要严谨地讨论概率,我们需要先建立一套精确的语言。

样本空间(Sample Space)

样本空间 S 是一个试验所有可能结果的集合。样本空间中的每个元素称为一个样本点基本事件

试验样本空间 S
抛一枚硬币{正面, 反面}
掷一颗骰子{1, 2, 3, 4, 5, 6}
检测产品是否合格{合格, 不合格}
测量灯泡寿命(小时)[0, +∞)

事件(Event)

事件是样本空间的子集,即某些可能结果的集合。事件A发生,当且仅当试验结果属于A。

核心洞察:事件是集合

概率论建立在集合论之上。事件的"并"对应"或",事件的"交"对应"且",事件的"补"对应"非"。这一对应关系让我们能用集合运算处理复杂的概率问题。

2.2

概率三公理

柯尔莫哥洛夫(Kolmogorov)在1933年为概率论建立了公理化基础。概率是定义在事件集合上的函数 P,满足以下三条公理:

概率三公理

公理1(非负性):对任意事件 A,P(A) ≥ 0

公理2(规范性):P(S) = 1

公理3(可列可加性):若 A₁, A₂, ... 是两两互斥的事件,则 P(A₁ ∪ A₂ ∪ ···) = P(A₁) + P(A₂) + ···

从这三条公理出发,可以推导出概率论的所有基本性质:

P(∅) = 0      P(Aᶜ) = 1 - P(A)      若 A ⊆ B,则 P(A) ≤ P(B)
P(A ∪ B) = P(A) + P(B) - P(A ∩ B)
为什么 P(A ∪ B) 要减去 P(A ∩ B)?

想象两个有重叠的圆圈。当你把A的面积和B的面积相加时,重叠部分被计算了两次。减去一次交集,就得到了并集的准确面积。如果A和B互斥(无重叠),则 P(A ∩ B) = 0,公式简化为 P(A) + P(B)。

工程应用:系统失效概率的初步估算

可靠性工程:一个系统有两个独立模块A和B,任一模块失效都会导致系统失效。若 P(A失效) = 0.01,P(B失效) = 0.02,则系统失效概率不是简单相加,因为两个模块同时失效被重复计算。正确计算:P(A∪B) = 0.01 + 0.02 - P(A∩B)。若独立,P(A∩B) = 0.0002,故 P(系统失效) = 0.0298。

2.3

条件概率

现实世界中的概率往往依赖于已知信息。条件概率回答的问题是:在已知事件B发生的条件下,事件A发生的概率是多少?

P(A|B) = P(A ∩ B) / P(B) ,其中 P(B) > 0

条件概率的本质是"缩小样本空间"——从原来的全集S缩小到B的范围,然后计算A在B中所占的比例。

乘法公式

将条件概率定义变形,得到概率的乘法公式:

P(A ∩ B) = P(A|B) · P(B) = P(B|A) · P(A)

对于多个事件,乘法公式可以推广为:

P(A₁ ∩ A₂ ∩ ··· ∩ Aₙ) = P(A₁) · P(A₂|A₁) · P(A₃|A₁∩A₂) ··· P(Aₙ|A₁∩···∩Aₙ₋₁)
条件概率的直觉

条件概率就像"重新设定场景"。想象你在人群中随机选一个人,他戴眼镜的概率是 P(A)。但如果已知这个人是大学生(事件B),那么他戴眼镜的概率 P(A|B) 可能会显著提高。信息改变了概率——这就是贝叶斯思维的核心。

工程应用:医学检测与假阳性

医学检测:假设某疾病在人群中的患病率是0.1%。检测的灵敏度(真阳性率)为99%,特异度(真阴性率)为98%。如果一个人检测呈阳性,他实际患病的概率是多少?

许多人直觉认为答案是99%,但实际上需要用条件概率计算。这个问题将在例题和贝叶斯定理部分详细解答——答案是约4.7%!假阳性在稀有疾病中占主导地位。

2.4

独立事件

如果事件A的发生与否不影响事件B的概率,则称A和B相互独立。独立性是概率论中最重要的简化假设之一。

A 与 B 独立 ⟺ P(A ∩ B) = P(A) · P(B) ⟺ P(A|B) = P(A)

注意区分互斥独立

概念定义关系
互斥(互不相容)A ∩ B = ∅,即不能同时发生P(A ∩ B) = 0
独立发生与否互不影响P(A ∩ B) = P(A)·P(B)
互斥与独立的关系

如果两个事件都有正概率且互斥,它们一定不独立!因为A发生意味着B一定不发生——这强烈地影响了B的概率。只有在 P(A)=0 或 P(B)=0 的平凡情况下,互斥事件才可能独立。

多个事件的独立性

三个事件A、B、C相互独立,要求满足:

仅满足两两独立不一定满足三者联合独立——这是一个经典反例存在的领域。

2.5

全概率公式与贝叶斯定理

全概率公式和贝叶斯定理是概率论中最强大的工具之一,广泛应用于推断、学习和决策。

全概率公式

设 B₁, B₂, ..., Bₙ 是样本空间的一个划分(互斥且并为S),则对任意事件A:

P(A) = Σᵢ₌₁ⁿ P(A|Bᵢ) · P(Bᵢ)

全概率公式的本质是"分情况讨论"——将复杂事件A的概率分解为在不同场景Bᵢ下的条件概率之和。

贝叶斯定理(Bayes' Theorem)

贝叶斯定理描述了如何根据新证据更新信念:

P(B|A) = P(A|B) · P(B) / P(A) = P(A|B) · P(B) / [Σ P(A|Bᵢ) · P(Bᵢ)]
贝叶斯术语

先验概率 P(B):在看到证据A之前,对B的信念程度。

似然 P(A|B):在B成立的条件下,观察到A的概率。

后验概率 P(B|A):在看到证据A之后,更新了对B的信念。

贝叶斯思维的本质

贝叶斯定理告诉我们:信念不是静态的,而是随证据不断更新的。一个好的先验可以加速学习,一个坏的后验会随着数据积累而被修正。在工程实践中,贝叶斯方法让系统能够从经验中学习——垃圾邮件过滤器、推荐系统、医学诊断AI都基于这一框架。

工程应用:垃圾邮件过滤与网络安全

垃圾邮件过滤:朴素贝叶斯分类器是早期垃圾邮件过滤的核心算法。它计算 P(垃圾邮件|包含"免费"),根据邮件中的词汇不断更新邮件是垃圾邮件的后验概率。尽管假设词汇之间相互独立("朴素"之处),该算法在实践中表现优异。

入侵检测:网络安全系统利用贝叶斯网络建模不同安全事件之间的依赖关系。当观察到异常登录行为时,系统计算 P(攻击|异常登录) 的后验概率,自动调整告警级别。

2.6

联合分布与边缘分布

现实世界中的随机现象往往涉及多个变量。联合分布描述多个随机变量同时取值的概率规律,是理解多元统计的基石。

联合概率分布

设 X 和 Y 是两个离散型随机变量,其联合概率质量函数(Joint PMF)定义为:

P(X = x, Y = y) = p(x, y)

它满足两条基本性质:所有联合概率非负,且所有可能取值的概率之和为 1:

Σₓ Σᵧ p(x, y) = 1

对于连续型随机变量,则用联合概率密度函数(Joint PDF)f(x, y) 描述,满足:

∫∫ f(x, y) dx dy = 1,且 P((X, Y) ∈ D) = ∬D f(x, y) dx dy

边缘分布:从联合到单独

已知两个变量的联合分布,如何求其中某一个变量的分布?这就是边缘分布(Marginal Distribution)的核心问题。

对于离散型变量,将另一个变量的所有可能取值"求和消去":

P(X = x) = Σᵧ p(x, y)    (对 Y 的所有取值求和)

对于连续型变量,则对另一个变量积分:

fX(x) = ∫-∞+∞ f(x, y) dy
为什么叫"边缘"分布?

在早期的概率表中,联合分布 p(x, y) 被排列成一个二维表格,而单个变量的分布值写在表格的边缘(行总和与列总和)上,由此得名。边缘分布本质上就是"忽略其他变量后,某一个变量自身的分布"。

独立性的判断

两个随机变量 X 与 Y 相互独立的充要条件是:联合分布等于边缘分布的乘积。

X ⊥ Y ⟺ p(x, y) = pX(x) · pY(y)   (对所有 x, y 成立)

这一性质是朴素贝叶斯分类器的理论基础——假设特征之间相互独立,从而将联合概率分解为边缘概率的乘积。

条件分布与联合分布的关系

联合分布、边缘分布和条件分布三者之间存在一个完美的循环关系:

p(x, y) = p(x | y) · pY(y) = p(y | x) · pX(x)

从联合分布出发,可以求出边缘分布和条件分布;反之,如果知道条件分布和边缘分布,也可以重构联合分布。

工程应用:联合分布无处不在

1. 医学诊断中的联合概率:血压(收缩压/舒张压)的联合分布比单个指标更能反映心血管风险。边缘分布只能告诉你"收缩压偏高的概率",而联合分布能识别"收缩压高但舒张压正常"与"两者都高"这两种截然不同的风险模式。

2. 金融投资组合风险:两只股票的收益率各自有边缘分布,但投资组合的真实风险取决于它们的联合分布——特别是相关性。即使单只股票风险可控,若两者高度正相关,组合并不能有效分散风险。

3. 机器学习的特征联合分布:生成模型(如高斯混合模型、变分自编码器)直接建模特征 X 与标签 Y 的联合分布 P(X, Y),从而可以生成新样本或进行概率推断。理解联合分布是掌握生成式 AI 的数学前提。

计算方法

由联合分布求边缘分布的步骤:

  1. 确认联合分布表格或公式给出的 p(x, y)。
  2. 求 X 的边缘分布:对每一行(固定的 x),将所有 y 对应的概率相加。
  3. 求 Y 的边缘分布:对每一列(固定的 y),将所有 x 对应的概率相加。
  4. 验证:边缘概率之和应为 1。

判断独立性:检查是否对所有 (x, y) 都有 p(x, y) = pX(x) · pY(y)。若存在任何一组不满足,则两变量不独立。

Ex

例题精讲

例1:掷骰子概率

掷两颗均匀的六面骰子,求:

(a) 点数之和为7的概率

(b) 至少有一颗骰子为6的概率

(c) 已知点数之和为7,其中一颗骰子为6的概率

(a) 点数之和为7

样本空间共有 6×6 = 36 个等可能结果。

和为7的组合:(1,6), (2,5), (3,4), (4,3), (5,2), (6,1) —— 共6种。

P(和=7) = 6/36 = 1/6 ≈ 0.1667

(b) 至少一颗为6

用补集计算更方便:P(至少一颗6) = 1 - P(两颗都不是6)

P(两颗都不是6) = (5/6)×(5/6) = 25/36

P(至少一颗6) = 1 - 25/36 = 11/36 ≈ 0.3056

(c) 条件概率

设 A="点数之和为7",B="至少一颗为6"。注意 B 在(a)的样本中对应的集合是 {(1,6), (6,1)}。

A ∩ B = {(1,6), (6,1)},共2个结果。

P(B|A) = P(A ∩ B) / P(A) = (2/36) / (6/36) = 2/6 = 1/3 ≈ 0.3333

(a) 1/6;(b) 11/36;(c) 1/3。注意 (c) 不是简单的 (b) 结果,因为已知条件改变了样本空间。
例2:医学检测与贝叶斯定理

某疾病在人群中的患病率(先验概率)为0.1%。检测灵敏度(患病者检测阳性)为99%,特异度(未患病者检测阴性)为98%。若某人检测呈阳性,求他实际患病的概率。

第一步:定义事件

D = "患病",T⁺ = "检测阳性"

已知:P(D) = 0.001,P(T⁺|D) = 0.99,P(T⁺|Dᶜ) = 1 - 0.98 = 0.02

第二步:用全概率公式计算 P(T⁺)

P(T⁺) = P(T⁺|D)·P(D) + P(T⁺|Dᶜ)·P(Dᶜ)

= 0.99×0.001 + 0.02×0.999 = 0.00099 + 0.01998 = 0.02097

第三步:用贝叶斯定理计算 P(D|T⁺)

P(D|T⁺) = P(T⁺|D)·P(D) / P(T⁺)

= 0.99 × 0.001 / 0.02097 = 0.00099 / 0.02097 ≈ 0.0472 = 4.72%

检测阳性后实际患病概率仅约 4.7%。因为疾病本身罕见,假阳性(健康人误检为阳性)的数量远超真阳性。
例3:系统可靠性

一个通信系统由三个串联组件A、B、C组成,只要任一组件失效,系统就失效。各组件独立工作,失效概率分别为 P(A)=0.05,P(B)=0.10,P(C)=0.08。求系统正常工作的概率。

第一步:转换思路

直接计算 P(系统失效) = P(A∪B∪C) 较复杂,用补集和独立性更简便。

系统正常工作 ⟺ A、B、C 都正常。

第二步:计算各组件正常概率

P(A正常) = 1 - 0.05 = 0.95

P(B正常) = 1 - 0.10 = 0.90

P(C正常) = 1 - 0.08 = 0.92

第三步:利用独立性

因为组件独立,P(系统正常) = P(A正常) × P(B正常) × P(C正常)

= 0.95 × 0.90 × 0.92 = 0.95 × 0.828 = 0.7866

系统正常工作的概率约为 78.7%,失效概率约为 21.3%。串联系统可靠性远低于单个组件。
例4:贝叶斯更新

工厂有两台机器生产同一种零件:M₁ 产量占60%,次品率2%;M₂ 产量占40%,次品率5%。现从全部产品中随机抽取一件发现是次品,求它来自 M₁ 的概率。

第一步:定义已知

P(M₁) = 0.60,P(M₂) = 0.40

P(次品|M₁) = 0.02,P(次品|M₂) = 0.05

第二步:全概率求 P(次品)

P(次品) = P(次品|M₁)·P(M₁) + P(次品|M₂)·P(M₂)

= 0.02×0.60 + 0.05×0.40 = 0.012 + 0.020 = 0.032

第三步:贝叶斯更新

P(M₁|次品) = P(次品|M₁)·P(M₁) / P(次品)

= 0.012 / 0.032 = 0.375 = 37.5%

直观解释

M₁ 产量更高(60%),但次品率更低(2%);M₂ 产量较低(40%),但次品率更高(5%)。虽然 M₁ 生产了更多产品,但次品中来自 M₂ 的比例反而更高——因为 M₂ 的次品率是 M₁ 的2.5倍。

次品来自 M₁ 的概率为 37.5%,来自 M₂ 的概率为 62.5%。即使 M₁ 产量更高,质量优势使其"责任占比"低于产量占比。
例5:联合分布与边缘分布

某工厂同时监测产品的尺寸偏差 X(mm)和重量偏差 Y(g),离散化后的联合分布如下表所示(概率值已乘以100):

p(x, y)Y = -1Y = 0Y = +1
X = -10.150.100.05
X = 00.100.200.10
X = +10.050.100.15

求:(a) X 和 Y 的边缘分布;(b) 判断 X 与 Y 是否独立。

(a) 求边缘分布

对每一行求和得 X 的边缘分布:

P(X = -1) = 0.15 + 0.10 + 0.05 = 0.30

P(X = 0) = 0.10 + 0.20 + 0.10 = 0.40

P(X = +1) = 0.05 + 0.10 + 0.15 = 0.30

对每一列求和得 Y 的边缘分布:

P(Y = -1) = 0.15 + 0.10 + 0.05 = 0.30

P(Y = 0) = 0.10 + 0.20 + 0.10 = 0.40

P(Y = +1) = 0.05 + 0.10 + 0.15 = 0.30

(b) 判断独立性

检验是否对所有 (x, y) 都有 p(x, y) = pX(x) · pY(y)。

取 p(-1, -1) = 0.15,而 pX(-1)·pY(-1) = 0.30 × 0.30 = 0.09。

因为 0.15 ≠ 0.09,所以 X 与 Y 不独立

直观解释:尺寸偏大(X=+1)时,重量也偏大(Y=+1)的概率(0.15)高于独立假设下的期望(0.09),说明两者存在正相关。

X 和 Y 的边缘分布均为 {0.30, 0.40, 0.30},但联合分布不等于边缘分布的乘积,因此 X 与 Y 不独立。这说明产品的尺寸偏差和重量偏差存在关联——在质量控制中需要同时监控这两个指标。
ML

MATLAB 代码演示

以下 MATLAB 代码通过模拟验证概率理论结果,帮助你建立对概率的直觉。

dice_simulation.m
% 第2章:掷骰子概率模拟 % 理论:P(和=7) = 1/6 ≈ 0.1667 N = 100000; % 模拟次数 die1 = randi([1, 6], N, 1); die2 = randi([1, 6], N, 1); sum_dice = die1 + die2; % 估计概率 p_sum7 = mean(sum_dice == 7); p_at_least_one6 = mean((die1 == 6) | (die2 == 6)); fprintf('P(和=7) 模拟值: %.4f (理论: %.4f)\n', p_sum7, 1/6); fprintf('P(至少一个6) 模拟值: %.4f (理论: %.4f)\n', ... p_at_least_one6, 11/36); % 条件概率:P(至少一个6 | 和=7) idx_sum7 = sum_dice == 7; p_conditional = mean((die1(idx_sum7) == 6) | ... (die2(idx_sum7) == 6)); fprintf('P(至少一个6 | 和=7): %.4f (理论: %.4f)\n', ... p_conditional, 1/3);
bayes_medical.m
% 第2章:医学检测贝叶斯计算 % 先验、似然、后验 P_D = 0.001; % 患病率 P_T_given_D = 0.99; % 灵敏度 P_T_given_notD = 0.02; % 假阳性率 % 全概率求 P(T+) P_T = P_T_given_D * P_D + P_T_given_notD * (1 - P_D); % 贝叶斯:后验概率 P_D_given_T = P_T_given_D * P_D / P_T; fprintf('先验 P(患病) = %.4f\n', P_D); fprintf('后验 P(患病|T+) = %.4f (%.2f%%)\n', ... P_D_given_T, P_D_given_T * 100); % 结果:仅约 4.72%
reliability_simulation.m
% 第2章:系统可靠性蒙特卡洛模拟 N = 100000; P_fail = [0.05, 0.10, 0.08]; % 模拟各组件状态(1=正常,0=失效) A = rand(N, 1) > P_fail(1); B = rand(N, 1) > P_fail(2); C = rand(N, 1) > P_fail(3); % 串联系统:全部正常才正常 system_ok = A & B & C; P_system_ok = mean(system_ok); fprintf('系统正常概率(模拟): %.4f\n', P_system_ok); fprintf('系统正常概率(理论): %.4f\n', ... prod(1 - P_fail)); % 结果:约 0.7866
← 上一章:第1章 统计与数据的直觉 下一章:第3章 排列组合与计数 →