知道一件事以后:条件概率与贝叶斯
目标:用条件概率和完整分组计算更新后的概率,避免把条件方向弄反。
「用券的会员多不多」可能指会员中多少人用券,也可能指用券的人中多少是会员。词语很相似,分母却不一样。先把 100 位顾客整理成表:
| 顾客 | 用券 C | 不用券 | 合计 |
|---|---|---|---|
| 会员 M | 20 | 20 | 40 |
| 非会员 | 12 | 48 | 60 |
| 合计 | 32 | 68 | 100 |
从全体随机选一位,会员且用券概率为 P(M∩C)=20/100=0.20。如果已经知道是会员,剩下的范围只有 40 人,故 P(C|M)=20/40=0.50。竖线读作「在……条件下」。反过来,P(M|C)=20/32=0.625。
一般公式是 P(A|B)=P(A∩B)/P(B),前提为 P(B)>0。移项就有乘法规则 P(A∩B)=P(B)P(A|B)。只有独立时,才可以把条件概率替换为原来的 P(A)。
本例 P(C|M)=0.50,不等于总体用券概率 0.32,所以在这张表所定义的抽取模型中,会员与用券不独立。这仍不证明办会员导致用券增加:可能爱领券的人更愿意办会员。
贝叶斯:沿着另一方向读表
门店用设备筛查有瑕疵的咖啡豆包装。假设瑕疵率为 2%,设备对瑕疵包装报警概率为 90%,对正常包装误报警概率为 5%。报警后,真的有瑕疵的概率是多少?
先想象 10000 包,这样每条分支都能用数量说明:
10000 包
├─ 瑕疵 200 包:报警 180,未报警 20
└─ 正常 9800 包:报警 490,未报警 9310
报警总共 180+490=670 包,真的有瑕疵的占 180/670≈26.87%。90% 是「瑕疵时报警」,不是「报警时瑕疵」。正常包装的基数很大,即使误报率只有 5%,也贡献了很多报警。
用符号写,D 表示瑕疵,A 表示报警:
P(A) = P(A|D)P(D)+P(A|Dᶜ)P(Dᶜ)
= 0.90×0.02+0.05×0.98 = 0.067
P(D|A) = P(A|D)P(D)/P(A) = 0.018/0.067 ≈ 0.2687
第一行是全概率公式:把总体分成不重叠且完整的分组,分别算对目标事件的贡献。第二行是贝叶斯公式。在这里,它只是交集概率有两种写法所得到的重新排序,不需要神秘的新规则。
跟着做:设备没变,来货变了
- 只把瑕疵率从 2% 改为 10%。
- 仍以 10000 包画出两条报警分支。
- 算新的报警后瑕疵概率,解释为什么设备一样,答案却变化。
核对推导
瑕疵 1000 包中报警 900;正常 9000 包中报警 450。后验概率为 900/(900+450)=2/3≈66.67%。先验瑕疵率升高,报警的组成随之改变。如果仍得到 90%,说明又把两个条件方向混在了一起。
独立练习
从本课顾客表随机选一位,已知他没有用券,求他是会员的概率。再判断事件「是会员」和「不是会员」是否独立,说明依据。
参考答案
P(M|Cᶜ)=20/68≈29.41%。会员与非会员互斥且概率均非零,不独立:交集概率 0,不等于 0.4×0.6=0.24。知道属于一组就排除了另一组。
如果概率树的叶子加起来不是 1,检查各节点的两条分支是否相加为 1。实际应用还要问输入概率来自哪里:把一次小样本观察比例当成精确已知概率,计算再精确也不能消除输入的不确定性。