📈 第5章 假设检验
📄 一句话概括

假设检验的核心不是证明,是证伪:把明显站不住的假设先剔掉,剩下那个否定性最小的。 一条证据值不值钱,看它让几个假设的可能性拉开多远——这叫诊断性。全都差不多的证据,等于没说。 证据一条条乘上去,排序会变,但未必翻盘。一条够硬的证据能把差距从 7 倍压到 1.8 倍,压不翻。

📝 本章和前面几章的关系

上一篇算出结论很脆,脆在「准时概率」这一个参数上。这一篇用新证据去动这个参数。 这一篇用的乘法和归一化,是第 6 章贝叶斯规则的雏形——先把这一步走通,下一章才不突然。

一、假设检验的核心是证伪

三个假设:H1 第 39 周准时发布,H2 推迟四周,H3 取消。 数据的本事只有一样:把某个假设的可能性压下去。它不能把某个假设顶上来。 所以整个流程是「减法」:先给每个假设一个起点(先验),再看证据把谁压得最狠。

这不是消极,是唯一诚实的做法。能被数据推翻的判断,才叫判断;不能被推翻的,只是态度。

二、诊断性:一条证据值不值钱

备忘录写第 39 周发布这条证据,在 H1 下面很自然(0.90),在 H3 下面很反常(0.10)。 「在几个假设下面差别大」这件事,就叫诊断性高。 反过来,如果一条证据在三个假设下面都是 0.5,那它什么都没告诉你——不管它听起来多权威。

证据 H1 下出现 H2 下出现 H3 下出现 诊断性
备忘录写第 39 周 0.90 0.40 0.10 高
屏幕订单 12 万台 0.80 0.50 0.20 中
行业明年整体下滑 0.50 0.50 0.50 零

第三行那种证据最常见:听着像那么回事,摊开一看对三个假设一样友好。

三、一条条乘上去

先验乘第一条似然,再乘第二条,得到三个「未归一化」的数:0.432、0.060、0.002。 加起来是 0.494,用它去除,得到后验:87.4%、12.1%、0.4%。 这一步是贝叶斯规则的核心动作:乘似然、再归一化。第 6 章会把它的道理讲透。

结果里最值得注意的是 H3。它从 10.0% 掉到 0.4%,几乎被剔出局。

四、剩下的是否定性最小,不是被证明

H3 掉到 0.4%,不等于「取消」这件事被证明不会发生。它只是「在现有证据下最不该相信」。 H1 拿到 87.4%,也不等于「第 39 周一定发布」。它只是「目前否定性最小」。 差别在于:新证据进来,这个排序随时能变。

所以「最强的假设」这个说法很准确——强是相对的,不是绝对的。

五、图片短信与那句「即将上市」

故事的最后,来了一条图片短信:某供应商车间里拍到新机开模的照片,日期戳指向第 43 周。 第三条证据的似然设成 H1 0.20、H2 0.80、H3 0.10。乘上去之后:H1 64.2%、H2 35.7%、H3 0.1%。 H1 还是第一,可领先的倍数从 7 倍缩到 1.8 倍。一条够硬的证据能大幅缩小差距,但一条不够翻盘。

这就是分析的常态:证据一点点累积,结论一点点挪,很少有「一拍桌子真相大白」这回事。 第 5 章到此结束。下一章把这一套乘法讲成一套能反复用的规则——贝叶斯统计。

六、动手 Demo:证伪:找出否定性最小的假设

三个假设各给一个先验,两条证据各给三个似然,乘起来归一化。 再补一条指向推迟的证据,看排序会不会翻。

PRIOR = [0.6, 0.3, 0.1]     # H1 准时、H2 推迟、H3 取消
L1 = [0.9, 0.4, 0.1]        # 看到备忘录写的日期
L2 = [0.8, 0.5, 0.2]        # 看到屏幕订单 12 万台

def norm(v):
    s = sum(v)
    return [x / s for x in v]

post = [PRIOR[i] * L1[i] * L2[i] for i in range(3)]
print("乘完:%s" % "  ".join("%.3f" % x for x in post))
for i, p in enumerate(norm(post), 1):
    print("H%d 后验 %.1f%%" % (i, p * 100))

L3 = [0.2, 0.8, 0.1]        # 开模照片指向第 43 周
post3 = [post[i] * L3[i] for i in range(3)]
print()
for i, p in enumerate(norm(post3), 1):
    print("H%d 后验 %.1f%%" % (i, p * 100))
print()
print("H1 仍第一,但领先从 %.1f 倍缩到 %.1f 倍"
      % (norm(post)[0] / norm(post)[1], norm(post3)[0] / norm(post3)[1]))

实跑输出:

--------------------------------------------------------------------
证伪:找出否定性最小的假设
--------------------------------------------------------------------

  ① 三个假设,先各给一个先验
  --------------------------------------------------------------------
  在没看任何证据之前,凭行业经验给出的判断,就是先验概率。

  ② 两条证据,各自有多「挑食」
  --------------------------------------------------------------------

| 假设 | 先验 | 看到备忘录日期 | 看到屏幕订单量 |
|---|---:|---:|---:|
| H1 第 39 周准时发布 | 0.60 | 0.90 | 0.80 |
| H2 推迟四周 | 0.30 | 0.40 | 0.50 |
| H3 取消 | 0.10 | 0.10 | 0.20 |

  「挑食」的意思是:这个假设下,看到这条证据的可能性有多大。
  H1 下面看到「备忘录写第 39 周」很自然(0.90);H3 下面就很奇怪(0.10)。
  ! 一条证据的诊断性,看的是它让几个假设的似然拉开多远。全都差不多的证据,等于没说。

  ③ 一条条乘上去
  --------------------------------------------------------------------

| 假设 | 先验 × 两条似然 | 后验概率 |
|---|---:|---:|
| H1 第 39 周准时发布 | 0.432 | 87.4% |
| H2 推迟四周 | 0.060 | 12.1% |
| H3 取消 | 0.002 | 0.4% |

  三条乘完再归一化:H1 87.4%、H2 12.1%、H3 0.4%。

  ④ 被证伪的是哪一个
  --------------------------------------------------------------------
  H3(取消)从 10.0% 掉到 0.4%,它没有被「证明是假」,只是被证据压到了几乎可以忽略。
  这就是证伪的实际做法:不是去找「哪个对」,是把明显站不住的先剔掉。
  ! 剩下来的假设未必是真的,只是「否定性最小」——这是假设检验能给的最强结论。

  ⑤ 一条新证据进来会怎样
  --------------------------------------------------------------------
  假设又来一条:某供应商泄露了一张新机开模照片,指向第 43 周。
  乘上第三条似然后:H1 64.2%、H2 35.7%、H3 0.1%。
  H1 还是第一,但 H2 从 12.1% 涨到 35.7%,领先的倍数从 7 倍缩到 1.8 倍。
  要真把 H1 压下去,还得再来一条同样硬的证据——一条不够。

归一化那一步别省:不归一化,三个数加起来不等于 1,就不是概率,也没法跟先验比。 先验、似然都是主观给的,这一点必须承认。 贝叶斯给的不是「客观答案」,是「在你这套判断下,证据把你带到哪」。

30 秒实验

  1. 把 H2 的先验从 0.3 提到 0.5,最终后验会变成多少?结论会翻吗?
  2. 如果第三条证据的似然改成 H1 0.30、H2 0.35、H3 0.10(几乎不含信息),排序会变吗?为什么?
  3. 想一想:这一篇的似然全是人为设的。那这套方法比「拍脑袋」强在哪?

常见误区

  1. 把后验当真相:87.4% 只是「在当前证据与当前先验下最该相信」,不是「一定」。
  2. 用没有诊断性的证据:对三个假设一样友好的证据,乘上去等于乘 1,白忙。
  3. 忘记归一化:三个乘积加起来不等于 1,就没法和别的结论比。
  4. 只跑一轮:证据是一条条来的,跑一轮就停,等于只看了一眼。
自测三问(点开对答案) 1. 为什么说假设检验的核心是证伪? —— 因为数据只能压低某个假设的可能性,不能把某个假设顶上来。流程是减法不是加法。 2. 诊断性看的是什么? —— 一条证据在不同假设下出现的可能性拉开多远。拉得越开,诊断性越高。 3. 为什么「否定性最小」比「被证明」准确? —— 因为剩余假设随时可能被新证据推翻。强是相对的,不是绝对的。

第 5 章收尾。 第 6 章把「乘似然、再归一化」讲成一套完整规则:贝叶斯统计,从一个医生带来的坏消息开始。

相关笔记