Ran Wei/数学系列
English
计算机科学与人工智能的数学基础 — Ran Wei

概率模型、条件概率与贝叶斯法则

建立加权概率模型,证明事件恒等式,以质量及几率推Bayes,诊断独立、反向分母及选择总体。

10 小时4 个时段3 个实验12 道练习与 2 道拓展10 道自测题

完成后你能够

  • 明确样本空间、事件、质量与公理。
  • 用容斥、单调性及无需独立的并集界。
  • 按正分母推条件、链式及全概率。
  • 依明确率算Bayes及似然比几率更新。
  • 区分不交、两两、相互与条件独立。
  • 识别选择目标、混合反转与种子模拟的边界。

开始之前

模块 03及05:事件集合与明确均匀性的计数。本模块无需微积分或数值数组包。

目录

学习计划

10 小时

时间包含练习,是估计值;可按需要拆分时段。可选拓展练习额外需要 35 分钟。进度保存在当前浏览器,中英文版本共享。

1

概率从实验与模型开始

概率在明确模型中量化不确定性。相同结果标签可以具有不同概率;条件化改变事件所比较的总体。本课建立精确有限模型,证明基本恒等式,推导Bayes法则,检查独立与选择主张。二元阳性例是给定比率的合成数学模型,不针对任何实际诊断系统提供建议。

检索检查: 模块 03 提供集合、交集与补集;模块 05 提供带均匀假设的计数。不需要微积分。实验仅用Python标准库、精确有理数及局部设种子的伪随机生成器。

2

样本空间 事件与概率公理

实验有可能基本结果的样本空间Ω。结果ω是单个元素,事件A是回答是否发生问题的结果集合。概率模型指定Ω、事件族F和函数P。有限模型可让所有子集都为事件,即F为幂集。一般空间中,事件族是包含Ω、对补集及可数并封闭的σ代数。本课陈述此结构,有限计算不需要测度论工具。

公理为P(A)≥0、P(Ω)=1,以及两两不交事件的可数可加性P(∪A_i)=ΣP(A_i)。有限可加性通过补空事件得到。P(∅)=0由P(Ω)=P(Ω)+P(∅)得到;Ω=A∪Aᶜ的不交分解给P(Aᶜ)=1−P(A)。所以所有概率在零一之间。这些是模型规则,任意分数表未经非负与归一检查并非概率表。

有限Ω可赋质量p_ω≥0、总和1,定义P(A)=Σ_{ω∈A}p_ω,自动满足公理。总权W有限正的非负原始权w可归一为p_ω=w_ω/W。均匀只是特殊选择1/|Ω|,不是有限结果的必然。模型中不可能结果可具有零质量,列在Ω不强迫正概率。概率描述指定机制或信念模型,模型是否适当要另行评估。

例题详解
相同标签可以有不同质量

Ω={HH,HT,TH,TT},权重1,2,3,4,总权10。A是首符号H,B是次符号H,则P(A)=3/10、P(B)=4/10、交集1/10。HH质量为1/10而非1/4。若没有额外机制假设,这些标签不表示两枚独立公平硬币;有限加权表本身已是完整有效模型。

可数无限例Ω={1,2,…},p_n=2^{−n}因几何级数和1而归一。不可能给每个正整数相同正质量:c>0使部分和最终超过1;c=0则由可数可加得总和零。“在全部整数上均匀随机选整数”因此没有指定这种分布。有限区间均匀选择是另一个有效实验,必须给区间。

可数可加还给概率连续性。A₁⊂A₂⊂…递增到A,把A分成A₁及差集A_k\A_{k−1}的不交并,概率即部分和P(A_k)的极限。递减事件取补集得到P(∩A_k)=lim P(A_k)。这连接无限事件与有限近似,不以有限模拟代替数学极限。一般不可数并不受同一公理直接支配;连续结果可每点质量零但区间概率正,下课进一步处理。

集合恒等式决定事件运算。交集是同时,并集是至少一个,补集是不发生。“恰一个”是(A\B)∪(B\A),不是普通并。划分是不交且覆盖Ω的事件组,适合按情况条件化。先翻译实验:有放回选记录与无放回选记录使用不同结果空间及依赖机制,即使结果标签类似。

有限加权概率模型四结果HH HT TH TT质量分别十分之一、十分之二、十分之三、十分之四,条长度表示不等质量。四个标签不意味着等概率HH1/10HT2/10TH3/10TT4/10P(首H)=3/10;P(次H)=4/10;交集=1/10。
图 21.1

事件从归一模型选择结果;四个标签不意味着四个等质量,也不意味着两次独立公平抽取。

检验理解

结果与事件有何区别?有限空间可非均匀吗?为何全部正整数不能在这些公理下均匀?

查看答案

结果是元素,事件是元素集合。非负且和1的任意质量给有限模型。等正质量会超过1,等零质量总和零,都不能归一。

3

均匀性 并集 容斥与事件界

只有基本结果等可能时,计数才给P(A)=|A|/|Ω|。基本结果的选择也重要:两枚独立公平骰子的和为2至12,但十一种和不等可能;36个有序骰子对才是等可能基本结果。和7有六对,和2仅一对。分组后的质量是组内概率和,并非重新给每组相同质量。

若A⊂B,将B分为A与B\A,得P(B)=P(A)+P(B\A)≥P(A),即单调性。集合包含因此能给概率界。任意A,B的并分成不交A\B、A∩B、B\A,给P(A∪B)=P(A)+P(B)−P(A∩B)。减交集修复重复计数,不需要独立。三个事件则加单事件,减三个两两交,再加一次三重交。

并集界P(∪_{i=1}^m A_i)≤ΣP(A_i)可由丢掉非负重叠修正,或从每个A_i去掉之前已计部分证明。不交化与可数可加也扩展到可数事件。此界无需独立,可以很松。概率最多1,可报告1和求和的较小值;大于1仍是代数有效上界,但不增加有用限制。

例题详解
不需要独立故障的可靠性界

一次指定操作中三部件故障概率.01,.02,.03,没有联合模型时至少一个故障概率至多.06,并由第三事件包含得至少.03。若故障相互独立,精确概率为1−(.99)(.98)(.97)=.058906。精确表达式需要独立,区间[.03,.06]不需要;共同断电可能使独立假设不现实。

不交与独立是不同关系。不交使P(A∩B)=0,独立要求P(A∩B)=P(A)P(B)。两者概率都正时,不交必依赖,因为发生A排除B。一个事件概率零时乘积条件可以成立,但在该零事件上的基本比值条件概率仍无定义。因此不要仅用没有合法分母的条件式定义独立。

加权四符号表的并为.3+.4−.1=.6,恰一为.3+.4−2(.1)=.5。独立公平符号对应值为.75及.5。恰一相同只是巧合,不证明模型相同。少数事件概率一致不能恢复全部基本质量,除非所选事件决定整个分布。

算法若m项检查各自失败概率至多ε,即使相依,“任一失败”也至多mε。目标总失败界δ可通过各界≤δ/m充分保证;这不证明实际恰好mε。随机算法需随机位模型,通常对固定输入条件化;输入随机性是额外假设,不能由算法种子自动提供。

无放回抽样的分母随抽取改变。三红两蓝盒中抽两红:无放回为(3/5)(2/4)=3/10;独立有放回为(3/5)²=9/25。初始比例相同,实验不同。计数版本也一致:无放回十个等可能无序对中三个全红。两算法一致检查完整模型,不会使未说明的抽取过程自动合法。

检验理解

哪项假设支持有利数除总数?并集界需独立吗?两个不交正概率事件能独立吗?

查看答案

基本结果等可能才支持计数比。并集界无需独立。不交正概率事件交集零、乘积正,因此依赖。

4

条件化 链式法则与表格分母

P(B)>0时定义P(A|B)=P(A∩B)/P(B)。条件化把注意限制在B并归一:有限模型中B内每个结果质量变成p_ω/P(B),外部为零,得到限制总体的有效模型。条件事件不必时间上先发生,也不自动是干预。获知事件与外部强迫机制不同,除非因果模型证明可等同。

竖线后的事件是分母总体。P(A|B)问B中同时为A的比例;P(B|A)问反向。两者交集分子相同,分母通常不同。加权例P(A|B)=.1/.4=1/4,P(B|A)=.1/.3=1/3。这些是不同集合的条件概率,不是同一句话的随意改写。

例题详解
两个表格比率回答不同问题

合成100,000记录总体中D比例1%,D内阳性90%,非D内阳性5%。模型期望计数D+:900、D−:100、非D+:4,950、非D−:94,050。灵敏度P(+|D)=900/1,000=.9;后验P(D|+)=900/5,850=2/13≈.153846。阳性总体比D总体大,反转分母改变答案。这些是模型期望数,不是观测数据。

条件定义重排给乘法规则P(A∩B)=P(B)P(A|B)=P(A)P(B|A),需对应分母正。序列链式为P(A₁∩…∩A_k)=P(A₁)P(A₂|A₁)…P(A_k|A₁∩…∩A_{k−1}),每个条件前缀须正概率。它不需独立;独立才允许以边缘替代条件因子。概率树编码这些条件分支,正父节点下子分支和须为1。

若前缀概率零,与后续的交也为零,可把分支质量算为零而不假装零前缀条件比有定义。生成模型可能指定不可达状态的分支概率,但它不决定那些状态唯一的条件比。连续精确零质量观测需后续更高级的条件密度构造,基本事件式不能通过零除零延伸。

全概率用有限或可数划分B_i:正概率情况给P(A)=ΣP(A|B_i)P(B_i),证明是A∩B_i的不交分解。零情况用交集质量贡献零,不用未定义条件比。划分必须互斥且覆盖总体;重叠群体直接相加会重复计数。该法则按群体比例组合组内率,所以组内机制固定时,不同混合也能改变总体率。

两阶段选择例:H组质量.2、L组.8,E组内率分别.8及.1,P(E)=.2(.8)+.8(.1)=.24。H且E质量.16,P(H|E)=2/3,而初始H仅.2。改变源于明确事件过滤,不证明组别的因果效应。联合表或树使被语言模糊的基准总体变成可核查计算。

序列模型也用链式:P(t₁,…,t_k)=Π_i P(t_i|t₁,…,t_{i−1})在正概率前缀下是一般恒等式,并非词元独立假设。语言模型依参数化和训练数据近似这些条件分布;数学分解不认证近似质量,而区分概率恒等式与模型选择。

灵敏度与后验的不同分母D行900阳性100阴性,非D行4950阳性94050阴性;灵敏度分母1000,后验分母5850,阳性质量零点零五八五。每100,000记录的模型期望计数阳性 +阴性 −D900100非D4,95094,050P(+|D)=900/1,000=.9P(D|+)=900/5,850=2/13≈.153846
图 21.2

同一联合表给灵敏度与后验,但分母不同;阳性概率为.0585,而非.058。

检验理解

基本条件化何时定义?链式需独立吗?全概率用什么权重?

查看答案

条件事件须正概率。条件链因子无需独立。全概率用各不交穷尽情况的概率加权组内率。

5

Bayes法则 似然比与先验几率

Bayes由同一联合质量的两个条件方向得到P(A|B)=P(B|A)P(A)/P(B),P(B)>0且右侧条件合法。划分给分母ΣP(B|A_i)P(A_i)。先验P(A)是在知道B前的质量,似然P(B|A)是在该情况内证据的率,后验在获知B后归一乘积。它们的自变量角色不同,不能因都叫概率就交换。

P(A∣B)=P(B∣A)P(A)P(B).P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)}.

二元D先验π、灵敏度s=P(+|D)、假阳性r=P(+|Dᶜ)给阳性质量πs+(1−π)r。该值正时,后验πs/[πs+(1−π)r]。π=.01、s=.9、r=.05时真阳性.009、假阳性.0495,总和.0585,后验2/13。低基础率可使假阳性超过真阳性,即使灵敏度很高。表达式把效应转成明确质量比较,而不是模糊“准确率”口号。

例题详解
几率更新显示证据乘数

先验几率P(D)/P(Dᶜ)=1/99,阳性似然比s/r=18,后验几率18/99=2/11,概率几率/(1+几率)=2/13。阴性似然比(1−s)/(1−r)=.1/.95=2/19,后验几率2/1881,概率2/1883。本模型阴性证据和低先验都支持非D。

几率推导把P(D|B)除以P(Dᶜ|B),公共证据分母消去,得到似然比乘先验几率。需要对应分母非零,否则要谨慎处理支持或极限。r=0、πs>0时阳性后验为1;若πs+(1−π)r=0,则阳性零概率,基本后验未定义。要区分真不可能证据与舍入或无支持参数造成的数值零。

只改先验而s,r稳定时后验改变。π=.5同率给阳性后验.9/(.9+.05)=18/19≈.947368。这使用传输假设:组内回应率仍适用于新总体。真实数据变化也可改变s,r,Bayes不保证仅改流行率就修复所有部署偏移。要写明哪部分不变、哪部分重估。

重复证据无条件独立假设不能相乘。E₁,E₂在D下及Dᶜ下都条件独立时,组合似然比才分为两个比的乘积;否则需联合模型P(E₁∩E₂|D)/P(E₁∩E₂|Dᶜ)。同一观察的副本完全依赖,不增加信息:在B上条件两次仍只是在B上条件一次。把复制证据重复计数会制造不合理确信。

本课事件更新假设模型概率给定。后课估未知参数及参数先验,是额外不确定层。已知率的事件后验既非置信区间,也非某个已实现个体结果的保证;它是在模型中的条件概率。经验评估要记录总体、结果与抽样协议,再检验假设及估计率是否合理。

计算先形成非负联合质量,再归一,并检查总和正。很多因子相乘可能下溢;后续对数和稳定归一帮助算术,却不能修错条件模型。解释时用文字说分子的联合事件与分母的证据事件,比机械记忆字母次序更能捕捉反向条件错误。

交互演示

探索器改变合成二元模型的先验、灵敏度参数与假阳性参数,显示每100,000记录的期望计数、证据概率及两个条件方向。端点可使阳性证据不可能,此时必须显示后验未定义,不能写零或保留旧值。D或非D先验零时,生成机制仍可指定该分支参数,但对应联合表的条件比不再定义。

检验理解

Bayes分母是哪事件?复制阳性为何不能给两个独立似然比?后验何时未定义?

查看答案

分母是所有阳性证据的概率。副本是同一事件,不是新的条件独立抽取。证据质量零使基本条件比未定义。

6

两两 相互与条件独立

A,B独立指P(A∩B)=P(A)P(B)。分母正时等价于P(A|B)=P(A)及反向。取补保持独立:P(A∩Bᶜ)=P(A)−P(A∩B)=P(A)(1−P(B)),其他补形式类似。此精确乘积属于模型;有限经验频率通常不会精确相等,即使生成机制独立,细小偏差需统计解释。

k事件相互独立要求每个子族都乘积分解,不只每对,也不只全交。两两独立仅检查二元子族,可有高阶依赖。公平独立位X,Y,取A={X=1}、B={Y=1}、C={X xor Y=1}。每个概率1/2、每对交1/4,但三重交空,因为X=Y=1使xor零,乘积却1/8,故非相互独立。

例题详解
两两独立不能许可三因子乘积

四个等可能(0,0),(0,1),(1,0),(1,1)给A∩B={(1,1)}、A∩C={(1,0)}、B∩C={(0,1)},三对均质量1/4=(1/2)²。然而三重交空,质量零。即使每对检查通过,可靠性中乘三个边缘成功率仍会出错。

P(E)>0下条件独立指在条件模型内P(A∩B|E)=P(A|E)P(B|E)。条件化可以产生或消除独立。潜在组内两个测量可能独立,混合组却产生边缘关联;涉及两个原独立事件的选取也可在选中记录内产生依赖。条件和边缘独立互不自动蕴含。

潜组Z两值等可能,A,B在Z=1时条件独立且各率.9,在Z=0时各率.1。边缘P(A)=P(B)=.5,联合却.5(.81)+.5(.01)=.41>.25。共同组变化解释关联,虽组内独立。完整生成机制先抽Z,再按组率独立抽A,B。仅因变量名字不同就宣称独立,会删掉共同来源。

反向选择例从独立公平位A,B开始,仅保留S={A或B}。留下(1,0),(0,1),(1,1),条件质量各1/3。P(A|S)=P(B|S)=2/3,但联合1/3≠4/9。在选中记录里A=0强迫B=1。原始独立模型仍正确;选择建立另一个不再分解的条件总体。

xor两两而非相互独立公平独立二位的四行各质量四分之一;三个事件每个二分之一、每对四分之一,但没有三个都一的行。每对独立,但三重不独立结果 (X,Y)A: X=1B: Y=1C: xor=1(0,0)000(0,1)011(1,0)101(1,1)110各边缘1/2;每对交1/4;三重交0≠1/8。四个结果各质量1/4。
图 21.3

xor表通过每对测试,却失败三重测试。独立性针对指定事件族及指定条件总体。

生成结果相互独立也不同于可复现。固定种子让伪随机模拟可重复,却不会在复用同一序列并视作新数据时自动造独立实验。数学分析通常理想化具有指定独立的随机抽取;实现需记录生成器、局部种子及复用方式。相依抽取及重复证据影响概率乘积,后续课量化其不确定估计效应。

检验理解

两两独立蕴含相互独立吗?条件独立蕴含边缘独立吗?保留A或B可从公平独立位产生依赖吗?

查看答案

xor反驳第一,潜组混合反驳第二。条件于并集去掉(0,0),得到联合1/3而乘积4/9,所以选中总体依赖。

7

基准总体 选择效应与模型核查

每个率都有分母与总体。仅阳性样本估计阳性条件下比例,并非总体基础率。合成表中选中D比例2/13,总体却1/100。依结果选取改变频率的目标;扩大选中样本可能越来越精确估计错误目标,规模不能修复分母不匹配。收集或解读前说明目标事件和总体。

汇总比较还依赖组混合。A在易记录9/10成功、难记录30/100;B在易80/100、难2/10。A每组都更好:.9>.8、.3>.2;总体A=39/110≈.354545,却低于B=82/110≈.745455,因为A多数在难记录评估。这种Simpson反转是算术混合效应,不是概率矛盾。

例题详解
先用共同评估混合再比较汇总率

指定半易半难目标混合,A标准化成功.5(.9)+.5(.3)=.6,B=.5(.8)+.5(.2)=.5。这回答不同于原汇总样本的明确共同问题,并假设组内率可传输到目标。标准化或原观察比较都不单独证明换系统导致差异;因果识别需要后课的设计与假设。

可核查有限模型具有完整结果表或生成树、非负质量、归一总和、精确事件与条件。检查补分支和1、划分确实覆盖,能用有理数时精确验证恒等式。有限枚举可证明该有限模型的性质,模拟只抽取其机制。两者都不证明机制适用于全部真实应用。

实验1精确枚举加权结果和xor。实验2生成一百万局部种子合成记录,在递增检查点比较条件频率与推导后验。轨迹会波动,误差不必每次下降,本课不从一次运行推出收敛定理。大数法则、集中及蒙特卡洛误差在模块24连同假设展开。尤其小样本或稀事件,应把零分母频率标为未定义。

实验3区分灵敏度与后验,展示选择总体依赖及Simpson反转,使用已知数学质量或显式有限表。换成真实数据时,率成为未知模型估计,需要不确定分析。合成期望表可有小数计数,不承诺有限实现样本精确达到它。模型概率、期望总体和观测频率必须分开标记。

选择混合与Simpson反转A每个难易组成功更高,却原汇总更低,因为评价权重不同;共同半易半难时A零点六高于B零点五。不同混合可反转汇总比较易组0.9000.800难组0.3000.200原汇总0.3550.745共同半混合0.6000.500蓝A、橙B;A多难记录,B多易记录。
图 21.4

评估混合不同时,组内与汇总成功率回答不同问题;共同混合使分母明确。

这些检查同样用于CS和AI:可靠性需联合故障假设,随机算法需随机与输入条件,分类器需目标总体及类条件率,序列分解需正确条件前缀。Bayes连接模型内事件,却不制造模型有效、独立证据或因果解释。结业成果是完整有限模型及解释正确的条件计算,并保留对模型本身的不确定。

检验理解

大选中样本能修复错误目标总体吗?模拟能单独证明后验公式吗?共同混合比较假设什么?

查看答案

不能,选择在大规模仍改变目标。公式由公理和条件定义推出,模拟仅说明指定机制。标准化假设组内率适用于共同目标,且不单独建立因果。

8

常见误解

说法 修正
有限结果自动均匀。 需指定质量或建立均匀的机制。
不交事件独立。 不交正事件不能乘积分解。
P(A B)=P(B
链式要求独立。 条件链因子一般成立。
高灵敏度意味高阳性后验。 先验与假阳性质量也重要。
两两独立许可全部乘积。 相互独立检查全部子族。
条件化保持独立。 混合与选择可以改变它。
更多选中数据修复选择偏差。 可能更精确估另一个目标。
9

三个可复现实验

实验1 · 精确加权事件与独立

下载 lab1_exact_weighted_events.py

"""Exact finite probability models and pairwise versus mutual independence."""
from fractions import Fraction as F
from itertools import product

if __name__ == "__main__":
    weights = {"HH": 1, "HT": 2, "TH": 3, "TT": 4}
    total = sum(weights.values())
    probability = lambda event: sum((F(weights[w], total) for w in event), F(0))
    A = {w for w in weights if w[0] == "H"}
    B = {w for w in weights if w[1] == "H"}
    print("normalised masses:", {w: str(F(n, total)) for w, n in weights.items()})
    print("P(A)=%s P(B)=%s P(intersection)=%s P(union)=%s" % (
        probability(A), probability(B), probability(A & B), probability(A | B)))
    print("P(A|B)=%s P(B|A)=%s" % (
        probability(A & B)/probability(B), probability(A & B)/probability(A)))
    assert probability(A | B) == probability(A)+probability(B)-probability(A & B)
    print("independent:", probability(A & B) == probability(A)*probability(B))
    omega = list(product((0, 1), repeat=2))
    events = [set(w for w in omega if w[0] == 1),
              set(w for w in omega if w[1] == 1),
              set(w for w in omega if w[0] ^ w[1] == 1)]
    p = lambda event: F(len(event), len(omega))
    for i, j in ((0, 1), (0, 2), (1, 2)):
        joint, factor = p(events[i] & events[j]), p(events[i])*p(events[j])
        print("pair %d,%d: joint=%s product=%s" % (i+1, j+1, joint, factor))
        assert joint == factor
    triple = p(events[0] & events[1] & events[2])
    factor = p(events[0])*p(events[1])*p(events[2])
    print("triple: joint=%s product=%s" % (triple, factor))
    assert triple != factor
    print("PASS: weighting matters; pairwise independence is not mutual independence")
输出
normalised masses: {'HH': '1/10', 'HT': '1/5', 'TH': '3/10', 'TT': '2/5'}
P(A)=3/10 P(B)=2/5 P(intersection)=1/10 P(union)=3/5
P(A|B)=1/4 P(B|A)=1/3
independent: False
pair 1,2: joint=1/4 product=1/4
pair 1,3: joint=1/4 product=1/4
pair 2,3: joint=1/4 product=1/4
triple: joint=0 product=1/8
PASS: weighting matters; pairwise independence is not mutual independence

运行前写事件集、预测两个条件分母。用精确分数核查归一、容斥及xor的两两/三重区别。

实验2 · 合成基础率模拟

下载 lab2_base_rate_simulation.py

"""Seeded synthetic positive-result model; frequencies are not medical advice."""
from fractions import Fraction as F
import random

if __name__ == "__main__":
    prevalence, sensitivity, false_positive = F(1, 100), F(9, 10), F(1, 20)
    positive_mass = prevalence*sensitivity+(1-prevalence)*false_positive
    posterior = prevalence*sensitivity/positive_mass
    print("synthetic model: P(D)=1/100 P(+|D)=9/10 P(+|not D)=1/20")
    print("exact P(+)=%s P(D|+)=%s = %.8f" % (positive_mass, posterior, float(posterior)))
    generator = random.Random(20261004)
    tp = fp = fn = tn = 0
    checkpoints = {1000, 10000, 100000, 1000000}
    for n in range(1, max(checkpoints)+1):
        d = generator.random() < float(prevalence)
        positive = generator.random() < float(sensitivity if d else false_positive)
        if d and positive:
            tp += 1
        elif d:
            fn += 1
        elif positive:
            fp += 1
        else:
            tn += 1
        if n in checkpoints:
            estimate = tp/(tp+fp) if tp+fp else None
            sensitivity_estimate = tp/(tp+fn) if tp+fn else None
            print("N=%7d TP=%5d FP=%5d FN=%4d TN=%6d posterior=%s sensitivity=%s" % (
                n, tp, fp, fn, tn,
                "undefined" if estimate is None else "%.6f" % estimate,
                "undefined" if sensitivity_estimate is None else "%.6f" % sensitivity_estimate))
            assert tp+fp+fn+tn == n
    print("absolute posterior error:", "%.8f" % abs(estimate-float(posterior)))
    print("One seeded trace is a model illustration, not a convergence proof or fitted parameter claim.")
输出
synthetic model: P(D)=1/100 P(+|D)=9/10 P(+|not D)=1/20
exact P(+)=117/2000 P(D|+)=2/13 = 0.15384615
N=   1000 TP=    8 FP=   47 FN=   1 TN=   944 posterior=0.145455 sensitivity=0.888889
N=  10000 TP=   90 FP=  488 FN=  16 TN=  9406 posterior=0.155709 sensitivity=0.849057
N= 100000 TP=  914 FP= 5036 FN= 105 TN= 93945 posterior=0.153613 sensitivity=0.896958
N=1000000 TP= 9019 FP=49418 FN= 989 TN=940574 posterior=0.154337 sensitivity=0.901179
absolute posterior error: 0.00049100
One seeded trace is a model illustration, not a convergence proof or fitted parameter claim.

预测后验2/13,解释每个计数器,核查累积计数和N。区分经验条件灵敏度与后验,说明单次种子轨迹仅展示模型而非收敛证明。

实验3 · 反向条件与选择总体

下载 lab3_conditioning_and_selection_faults.py

"""Exact denominators, selected populations, and a Simpson reversal."""
from fractions import Fraction as F
from itertools import product

if __name__ == "__main__":
    # Model masses represented by expected counts in a synthetic population.
    tp, fp, fn, tn = 900, 4950, 100, 94050
    sensitivity = F(tp, tp+fn)
    posterior = F(tp, tp+fp)
    print("P(+|D)=%s P(D|+)=%s" % (sensitivity, posterior))
    print("positive-only sample disease fraction:", posterior)
    print("population disease fraction:", F(tp+fn, tp+fp+fn+tn))
    assert posterior != sensitivity
    omega = list(product((0, 1), repeat=2))
    selected = [w for w in omega if w[0] or w[1]]
    pa = F(sum(w[0] for w in selected), len(selected))
    pb = F(sum(w[1] for w in selected), len(selected))
    joint = F(sum(w[0] and w[1] for w in selected), len(selected))
    print("independent source fair bits; keep A or B")
    print("selected P(A)=%s P(B)=%s P(A and B)=%s product=%s" % (pa, pb, joint, pa*pb))
    assert joint != pa*pb
    table = {"A": {"easy": (9, 10), "hard": (30, 100)},
             "B": {"easy": (80, 100), "hard": (2, 10)}}
    for name, groups in table.items():
        easy = F(*groups["easy"])
        hard = F(*groups["hard"])
        pooled = F(sum(r[0] for r in groups.values()), sum(r[1] for r in groups.values()))
        standardised = (easy+hard)/2
        print("system %s: easy=%s hard=%s pooled=%s common-half-mixture=%s" % (
            name, easy, hard, pooled, standardised))
    print("A is better in each stratum, worse pooled; the evaluation mixtures differ.")
    print("PASS: conditioning changes denominators and selection changes the target population")
输出
P(+|D)=9/10 P(D|+)=2/13
positive-only sample disease fraction: 2/13
population disease fraction: 1/100
independent source fair bits; keep A or B
selected P(A)=2/3 P(B)=2/3 P(A and B)=1/3 product=4/9
system A: easy=9/10 hard=3/10 pooled=39/110 common-half-mixture=3/5
system B: easy=4/5 hard=1/5 pooled=41/55 common-half-mixture=1/2
A is better in each stratum, worse pooled; the evaluation mixtures differ.
PASS: conditioning changes denominators and selection changes the target population

修分母反转,推选中并集表,比较原汇总与指定共同混合。明确每个量回答哪个目标。

10

十四道练习及完整解答

练习1–12必做,选做13–14在十小时核心安排外增加35分钟。

练习 1★★★计算6 分钟

权HH:1、HT:2、TH:3、TT:4,求首H、次H及并集概率。

查看解答

总权10,边缘.3、.4,交HH为.1;并.3+.4−.1=.6。标签数不能替代不等质量。

练习 2★★★计算6 分钟

同表求P(首H|次H)及反向。

查看解答

分子同为.1,分母分别.4和.3,给1/4及1/3。条件事件均正质量,因此两比都定义。

练习 3★★★计算6 分钟

三事件概率.02,.03,.04,给不需独立的并集上下界。

查看解答

并集界至多.09,包含最大事件给至少.04。没有交集或另一联合假设,不能确定精确值。

练习 4★★★计算6 分钟

π=.01、s=.9、r=.05,算P(+)、P(D|+)及阳性似然比。

查看解答

P(+)=.009+.0495=.0585=117/2000;后验2/13≈.153846;似然比18,把先验几率1/99乘成后验几率2/11。

练习 5★★★proof14 分钟

从不交可加证明补集恒等式及事件单调性。

查看解答

Ω=A∪Aᶜ不交给1=P(A)+P(Aᶜ)。A⊂B时B=A∪(B\A)不交,P(B)=P(A)+P(B\A)≥P(A),最后用非负。

练习 6★★★proof14 分钟

证明有限划分全概率,再推带定义域条件的Bayes。

查看解答

A是不交A∩B_i的并,所以P(A)=Σ交质量=ΣP(A|B_i)P(B_i),正情况用条件比、零情况用交质量零。共享质量P(A∩B)=P(B|A)P(A)=P(A|B)P(B)在对应分母正时给Bayes。零条件事件不能相除。

练习 7★★★proof14 分钟

证明独立在将B换补集后保持,解释零事件区别。

查看解答

P(A∩Bᶜ)=P(A)−P(A∩B)=P(A)(1−P(B))=P(A)P(Bᶜ)。零边缘时乘积仍合法,但等价条件表达需正分母,因此P(B)=0时不可使用P(A|B)。

练习 8★★★application10 分钟

三红两蓝盒中,比较有放回及无放回抽两红。

查看解答

无放回(3/5)(2/4)=3/10;独立有放回(3/5)²=9/25。无放回也可用十个等可能无序对中的三个红对。机制决定计算。

练习 9★★★application10 分钟

H,L质量.2,.8,E率.8,.1,求P(E)、P(H|E)并解释分母。

查看解答

P(E)=.16+.08=.24,H且E质量.16,后验2/3。分母包含两组的E,而非全部H;这里只是条件选择,没有因果结论。

练习 10★★★application10 分钟

二元模型仅将π改为.5,s=.9、r=.05固定,算阳性后验并写传输假设。

查看解答

联合.45、.025,后验.45/.475=18/19≈.947368。假设两类条件率仍适用于新总体,真实数据变化未必仅改变基础率。

练习 11★★★diagnosis10 分钟

xor三事件每对独立,报告直接乘三个边缘。修正。

查看解答

各概率1/2、每对交1/4,但三重事件空,质量零而乘积1/8。两两不足,相互独立要求全部子族。

练习 12★★★diagnosis10 分钟

阳性样本把D比例2/13报告为总体基础率,还把复制结果当新独立证据。修正。

查看解答

选中比例估P(D|+),总体P(D)=1/100,选择改分母。副本是同一事件,再条件化不增加证据;重复乘似然比无理假定条件独立。

练习 13★★★extension15 分钟

独立公平A,B仅保留A或B,推选中联合表并反驳条件独立。

查看解答

选中质量3/4,(1,0),(0,1),(1,1)条件各1/3;条件边缘各2/3,联合1/3≠4/9。原始独立仍适用于原总体,不适用于选中总体。

练习 14★★★extension20 分钟

A易9/10、难30/100,B易80/100、难2/10,算汇总及半易半难率,解释反转。

查看解答

汇总A=39/110、B=82/110,B更高;各组A=.9,.3高于B=.8,.2;共同半混合A=.6>B=.5。组权差造成反转。标准化指定目标并假设组内传输,不单独识别因果。

11

十题自测

1
有限结果空间有四标签,什么决定概率?
2
两不交事件概率均正,独立吗?
3
P(A|B)分母是什么?
4
一般概率链式需独立吗?
5
合成π=.01、s=.9、r=.05,P(+)是多少?
6
它的阳性后验是多少?
7
两两独立蕴含相互独立吗?
8
条件化可怎样改变独立?
9
大阳性样本估什么?
查看答案

D+ .009、D− .001、非D+ .0495、非D− .9405总和1。阳性.0585给后验2/13。先验几率1/99乘似然比18得2/11,再转概率2/13。副本不是新条件独立事件,阳性样本估P(D|+)而非基础率.01。结论属于指定合成模型。

12

有目的的阅读

使用MIT 6.041SC概率模型与条件材料,以及MIT计算机科学数学离散概率选读。本课表格与示例为带明确假设的原创构造。

时间 选读及问题
第1次 · 15分钟 模型与公理:计数中何处使用均匀?
第4次 · 15分钟 条件与独立:每项主张需要何分母及分解?
13

检索 结业任务与下一步

构造完整加权模型,算并集及两个反向条件,分别以质量和几率推Bayes,反驳两两到相互独立。解释选中率前先确定总体。

结业任务: 复现四格基础率表及后验2/13,说明.9灵敏度为何回答不同问题,以及复制证据为何不许可第二次独立更新。

可以继续: 你能说明概率假设与条件分母。接下来随机变量把结果映射为数值观察,区分离散质量、连续密度及分布函数。见课程总览。

14

记号与双语术语

记号或术语 含义 English
Ω、ω、A 样本空间、结果、事件 Sample space, outcome, event
P(A B) 正质量B上的条件概率
划分、并集界 不交穷尽情况、安全并集上界 Partition, union bound
先验、似然、后验 证据前质量、证据率、更新质量 Prior, likelihood, posterior
几率、似然比 p/(1−p)、证据率比 Odds, likelihood ratio
两两、相互独立 每对乘积、全部子族乘积 Pairwise, mutual independence
选择、目标混合 条件总体、指定组权 Selection, target mixture