跳转至

7.1   假设检验的思想

暑假里,小率把一张生活实践作业拿来找均哥:社区团购的盒装牛奶标着“净含量 250 mL”,他随机买了 10 盒,用量杯一盒盒倒出来,平均只有 247 mL。

牛奶编号 1 2 3 4 5 ...
容量(mL) 246 249 248 247 245 ...

这 3 mL 的差距,到底是测量和抽样带来的小波动,还是灌装机真的偏少?假设检验要回答的不是“真实平均值是多少”,而是:

如果厂家说的 250 mL 真的没问题,现在这组样本会不会显得太反常?

图 7.1.0 小率带来牛奶灌装量作业

上章我们一直在估“平均值大概是多少”。这章为什么忽然变成“检验”了?
估计是给一个答案范围;检验是判断某个说法能不能被数据反驳。

7.1.1   先保护一个默认说法

假设检验一开始不会直接相信“牛奶少了”。它先保护一个默认说法,叫 原假设(Null Hypothesis)

\[ H_0:\mu=250 \]

意思是:灌装机没有系统性偏少,真实平均容量仍然是 250 mL。

小率真正怀疑的是另一件事,叫 备择假设(Alternative Hypothesis)

\[ H_1:\mu<250 \]

意思是:真实平均容量小于 250 mL。

为什么不直接证明 H1

因为我们通常能计算的是“如果 \(H_0\) 为真,样本会怎样波动”。先设定一个参考世界,再看当前数据在这个参考世界里是否罕见,这就是假设检验的基本反证法。

所以不是先证明“它真的少装”,而是先问“如果没少装,看到 247 mL 奇不奇怪”?
对。假设检验的语气很克制:证据足够反常,才拒绝默认说法。

7.1.2   五步走完一次检验

假设检验可以压缩成五步:

图 7.1.1 假设检验的五步流程

  1. 写出 \(H_0\)\(H_1\)
  2. 假设 \(H_0\) 为真,确定统计量应该怎样分布。
  3. 把样本结果换成检验统计量。
  4. 计算 p 值,或比较临界值。
  5. 根据预先设定的显著性水平 \(\alpha\) 做决定。

以牛奶为例,若我们知道灌装过程长期标准差约为 \(\sigma=5\) mL,抽样 \(n=10\),样本均值 \(\bar x=247\),就可以把“少 3 mL”换成:

\[ z=\frac{\bar x-\mu_0}{\sigma/\sqrt n} =\frac{247-250}{5/\sqrt{10}} \approx -1.90 \]

它的意思不是“少了 1.90 mL”,而是:

样本均值比 250 mL 低了约 1.90 个标准误。


7.1.3   p 值回答“有多罕见”

p 值(p-value)问的是:

\[ P(\text{看到当前或更极端的数据}\mid H_0\text{ 为真}) \]

如果 p 值很小,说明当前数据在 \(H_0\) 世界里很罕见,\(H_0\) 就站不太住。

不拒绝不等于证明正确

若 p 值不小,我们只能说“证据不足以反驳 \(H_0\)”。这不等于证明 \(H_0\) 正确,也不等于证明牛奶一定足量。

那最后为什么总说“拒绝”或者“不拒绝”,不说“接受”?
因为检验只是在看证据够不够反驳默认说法。证据不够,不代表默认说法已经被证明。

7.1.4   单侧和双侧取决于问题

备择假设决定拒绝域在哪边。

问法 备择假设 检验方向
是否偏少 \(H_1:\mu<250\) 左侧检验
是否偏多 \(H_1:\mu>250\) 右侧检验
是否不等于标称值 \(H_1:\mu\ne250\) 双侧检验

如果小率在抽样前只关心“有没有少装”,左侧检验合理;如果他只是怀疑“标称值不准”,不管偏多偏少都算问题,就应该用双侧检验。

不要看完数据再选方向

先看到样本均值偏低,再把双侧改成左侧,会人为降低 p 值。检验方向必须在看主要结果前定好。


7.1.5   Python 走一遍牛奶检验

from scipy import stats
import math

mu0 = 250
xbar = 247
sigma = 5
n = 10

z = (xbar - mu0) / (sigma / math.sqrt(n))
p_left = stats.norm.cdf(z)

print(f"z = {z:.2f}")
print(f"左侧 p 值 = {p_left:.4f}")
print("决策:", "拒绝 H0" if p_left < 0.05 else "不拒绝 H0")

完整脚本见:

# docs/assets/scripts/ch07_hypothesis_testing/01_idea_of_hypothesis_testing/main.py

7.1.6   检验和置信区间是一枚硬币两面

若做双侧检验,显著性水平为 \(\alpha\),那么:

\(\alpha\) 水平下不拒绝 \(H_0:\mu=\mu_0\),等价于 \(\mu_0\) 落在 \(1-\alpha\) 的置信区间里。

所以报告中常同时给出:

  • 点估计:样本均值是多少。
  • 置信区间:合理范围有多宽。
  • p 值:原假设下当前结果有多罕见。
原来检验不是新魔法,只是把“估计的不确定性”换成了一次判断。
对。第 6 章给范围,第 7 章教你如何基于范围和证据做判断。

小率的笔记本

假设检验先写 \(H_0\)\(H_1\),再假设 \(H_0\) 为真,计算当前数据是否罕见。p 值小,说明数据与 \(H_0\) 不合拍;p 值不小,只能说证据不足。检验方向要事先确定,不要看完数据再改。