均值假设检验:从「平均数看起来不一样」到「有证据说不一样」
这份讲义像上课一样,从一个最朴素的问题出发:样本平均数差了一点,到底是真的有差别,还是抽样运气?
每章先讲直觉,再讲公式,最后用一道小题检查你是否真的懂了。算例可以点「下一步」逐步展开,交互实验可以自己拖动参数。
1为什么需要假设检验?
一句话:因为样本会「抖动」,光看平均数分不清「真差异」和「运气」。
想象你是一家工厂的质检员。零件的设计标准长度是 50.0 mm。今天你随手抽了 5 个零件,量出来平均是 50.2 mm。
问题来了:机器是不是真的偏了,需要停机校准?还是机器其实没问题,只是这 5 个刚好偏长一点?
直觉告诉我们:只抽 5 个,平均数本来就会上下晃。哪怕机器完美地以 50.0 为中心生产,每次抽 5 个算出的平均数也不会正好是 50.0。下面亲手验证一下。
假设机器完全没问题:总体均值 μ = 50.0 mm,标准差 σ = 0.3 mm。每次随机抽 5 个零件,算一次平均。
多抽几次你会发现:即使真实均值就是 50.0,样本均值也常常落在 49.8~50.2 之间,偶尔更远。所以「看到 50.2」本身说明不了问题。我们需要一把尺子来衡量:
如果可能性非常小,我们就有理由怀疑「机器没问题」这个说法。这就是假设检验要做的事。
生活和经济里到处是这样的问题:
- 某城市今年家庭平均月支出,和去年相比真的变了吗?(单个均值 vs 一个参考值)
- 两种教学方法,学生平均成绩真的不同吗?(两个独立组的均值)
- 参加减重计划的人,前后体重真的下降了吗?(同一批人前后配对)
它们的共同点:我们关心的是总体的平均水平,但手里只有样本。
2总体 vs 样本,参数 vs 统计量
先把“我们想知道的”和“我们手里有的”分清楚。
总体(population)
你真正关心的全部对象。例如:这台机器能生产的所有零件;全市所有家庭。描述总体的数字叫参数:总体均值 \(\mu\)、总体标准差 \(\sigma\)。参数是固定的,但通常不知道。
样本(sample)
你实际观测到的那一部分。例如:今天抽检的 12 个零件;调查到的 50 户家庭。由样本算出的数字叫统计量:样本均值 \(\bar x\)、样本标准差 \(s\)。统计量会随样本变化。
两个最常用的统计量
样本均值(样本的“中心”):
\[\bar x=\frac{1}{n}\sum_{i=1}^{n}x_i\]样本标准差(数据围绕均值的“分散程度”):
\[s=\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar x)^2}\]“总体”也可以是想象中的无限总体:例如“这台机器在当前状态下会生产出的所有零件”。
3抽样分布、标准误 SE、中心极限定理
这是整套方法的地基:样本均值到底会抖多厉害?
第 1 章我们看到 \(\bar x\) 每次都不一样。如果把“反复抽样、每次算一个 \(\bar x\)”做成千上万次,所有 \(\bar x\) 组成的分布就叫样本均值的抽样分布。它有三个非常重要的性质:
- 中心在 \(\mu\):样本均值不偏不倚,平均来说正好等于总体均值。
- 宽度 = 标准误(Standard Error):\(\displaystyle SE(\bar x)=\frac{\sigma}{\sqrt n}\)。样本越大,\(\bar x\) 抖得越少。
- 形状接近正态(中心极限定理 CLT):只要 \(n\) 足够大,不管总体长什么样(哪怕严重偏态),\(\bar x\) 的分布都近似正态。
试试:选“右偏”总体,把 n 从 1 拖到 5、30、100。直方图会① 越来越像钟形(CLT)② 越来越窄(SE = σ/√n 变小)③ 始终以 10 为中心。
为什么是 \(\sqrt n\),不是 \(n\)?
样本量翻 4 倍,SE 只减半。这就是为什么“多收点数据”的边际收益递减:从 25 个增加到 100 个,精度提高一倍;要再提高一倍,得增加到 400 个。
4假设检验的逻辑:H₀、H₁ 与“疑罪从无”
假设检验是一种“反证法”:先假设没差别,再看数据和这个假设有多冲突。
两个假设
- 原假设 \(H_0\)(null hypothesis):“没有差别 / 没有变化 / 机器没偏”。它总是带等号,例如 \(H_0:\mu=50\)。
- 备择假设 \(H_1\)(alternative):你想找证据支持的说法,例如 \(H_1:\mu\neq 50\)。
法庭类比
| 法庭 | 假设检验 |
|---|---|
| 被告假定无罪 | 先假定 \(H_0\) 为真 |
| 检方提交证据 | 收集样本,算检验统计量 |
| 证据“超出合理怀疑” → 判有罪 | p 值足够小(\(p<\alpha\))→ 拒绝 \(H_0\) |
| 证据不足 → 判“无罪”(≠ 证明清白) | p 值不够小 → 不能拒绝 \(H_0\)(≠ 证明 \(H_0\) 为真) |
反证思路的四步
- 假设 \(H_0\) 成立(例如机器以 50.0 为中心)。
- 在这个假设下,推出样本均值应该怎样分布(第 3 章:中心 50,宽度 SE)。
- 看实际观测到的 \(\bar x\) 落在这个分布的什么位置。
- 如果落在极端位置(在 \(H_0\) 下很少见),说明“\(H_0\) + 数据”很难同时成立 → 拒绝 \(H_0\)。
5检验统计量 \(t\),t 分布与自由度
把“差了多少”换算成“差了几个标准误”。
样本均值离 \(\mu_0\) 差了 \(\bar x-\mu_0\)。但“差 0.3”是大是小,取决于抖动幅度。所以我们用标准误做单位:
\[t=\frac{\bar x-\mu_0}{s/\sqrt n}=\frac{\text{观察到的差距}}{\text{抽样波动的典型大小(SE)}}\]为什么是 t,而不是 z?
如果总体 \(\sigma\) 已知,\(z=(\bar x-\mu_0)/(\sigma/\sqrt n)\) 服从标准正态分布。但现实中 \(\sigma\) 几乎总是未知,只能用样本的 \(s\) 代替。\(s\) 本身也在抖,这给统计量带来额外的不确定性,于是它的分布比正态尾巴更厚——这就是 t 分布(Student's t)。
- t 分布由自由度决定,单样本时 \(df=n-1\)。
- df 越小,尾巴越厚,同样的 |t| 越“不稀奇”,需要更大的 |t| 才能拒绝 \(H_0\)。
- df 越大,\(s\) 越接近 \(\sigma\),t 分布越接近标准正态。
常用临界值(由 scipy 计算)
| 自由度 df | 2 | 5 | 10 | 11 | 20 | 30 | 60 | 1000 | z(∞) |
|---|---|---|---|---|---|---|---|---|---|
| 双侧 α=0.05:\(t_{0.025}\) | 4.303 | 2.571 | 2.228 | 2.201 | 2.086 | 2.042 | 2.000 | 1.962 | 1.960 |
| 单侧 α=0.05:\(t_{0.05}\) | 2.920 | 2.015 | 1.812 | 1.796 | 1.725 | 1.697 | 1.671 | 1.646 | 1.645 |
6p 值是什么、不是什么;α、拒绝域;单侧 vs 双侧
p 值把“t 有多极端”翻译成一个概率。
p 值越小 → 数据和 \(H_0\) 越冲突 → 反对 \(H_0\) 的证据越强。
α(显著性水平)与拒绝域
在看数据之前,先定一个门槛 \(\alpha\)(常用 0.05)。规则:
\[p<\alpha\;\Longrightarrow\;\text{拒绝 }H_0\qquad\qquad p\ge\alpha\;\Longrightarrow\;\text{不能拒绝 }H_0\]等价地:把 t 分布两端面积合计为 \(\alpha\) 的区域叫拒绝域,t 落进去就拒绝。“比较 p 与 α”和“看 t 是否落入拒绝域”永远给出同一结论。
单侧 vs 双侧
| 备择假设 | 类型 | p 值怎么算 | 适用情形 |
|---|---|---|---|
| \(H_1:\mu\neq\mu_0\) | 双侧 | 两边尾巴:\(2P(T\ge|t|)\) | 不预设方向,任何偏离都关心(默认选择) |
| \(H_1:\mu>\mu_0\) | 右侧 | 右尾:\(P(T\ge t)\) | 事先有充分理由只关心“变大” |
| \(H_1:\mu<\mu_0\) | 左侧 | 左尾:\(P(T\le t)\) | 事先只关心“变小” |
\(SE=600/\sqrt{25}=120\),\(t=(6240-6000)/120=2.00\),\(df=24\)。
• 右侧检验(\(H_1:\mu>6000\)):\(p=0.0285\) < 0.05 → 拒绝 \(H_0\);临界值 1.711。
• 双侧检验(\(H_1:\mu\neq6000\)):\(p=0.0569\) > 0.05 → 不能拒绝;临界值 2.064。
默认就是上面家庭支出的例子(t = 2.00,df = 24)。切换“双侧/右侧”,看看 p 值如何翻倍。
p 值不是什么(高频误区)
✘ p 值不是“结果由偶然造成的概率”。
✘ p 值不衡量差距的大小或重要性。很小的 p 可能对应很小的、无关紧要的差距(第 11 章)。
✘ p = 0.049 和 p = 0.051 的证据强度几乎一样,0.05 不是魔法分界线。
✘ p > 0.05 不说明“没有差别”,只说明“证据不足”。
7第一类错误、第二类错误与检验力
任何根据样本做的判断都可能出错,关键是知道会错在哪、错的概率有多大。
| 真实情况:\(H_0\) 为真(没差别) | 真实情况:\(H_0\) 为假(有差别) | |
|---|---|---|
| 决定:拒绝 \(H_0\) | 第一类错误(误报,“冤枉好人”) 概率 = \(\alpha\) | 正确 ✔ 概率 = 检验力 \(1-\beta\) |
| 决定:不拒绝 \(H_0\) | 正确 ✔ | 第二类错误(漏报,“放走坏人”) 概率 = \(\beta\) |
- 质检例子:机器没偏,却判定偏了 → 无谓停机(第一类);机器真偏了,却没查出来 → 次品流出(第二类)。
- \(\alpha\) 由你事先设定;把 \(\alpha\) 调小能减少误报,但会增加漏报(\(\beta\) 变大)。
检验力(power)由什么决定?
检验力 = 当差别真实存在时,检验能把它“抓出来”的概率。它随以下因素变大:
- 样本量 n 越大(SE 越小);
- 真实差距(效应)越大;
- 数据噪声 σ 越小;
- \(\alpha\) 越大(但代价是更多误报)。
把“真实差距”拖到 0:此时 H₀ 为真,拒绝比例应在 5% 左右——这正是 α 的含义。
下表是单样本双侧 t 检验(α = 0.05)的理论检验力(用 scipy 的非中心 t 分布精确计算),可以和模拟结果对照:
| n \ 真实差距(σ 为单位) | 0.2(小) | 0.5(中) | 0.8(大) |
|---|---|---|---|
| 5 | 6.4% | 14.1% | 28.1% |
| 10 | 8.8% | 29.3% | 61.6% |
| 20 | 13.6% | 56.5% | 92.4% |
| 30 | 18.5% | 75.4% | 98.8% |
| 50 | 28.4% | 93.4% | ≈100% |
| 100 | 50.8% | 99.9% | ≈100% |
注:检验力的精确计算超出课程范围,这里只用来建立直觉;表中数值用 scipy 计算。
8单样本 t 检验:完整算例
回到第 1 章的工厂:零件的平均长度是否符合 50.0 mm 的标准?
50.3, 49.8, 50.6, 50.4, 50.1, 50.7, 49.9, 50.5, 50.2, 50.8, 50.0, 50.3
我们关心偏长或偏短都算不合格,用双侧检验: \[H_0:\mu=50.0\qquad H_1:\mu\neq 50.0\qquad \alpha=0.05\]
统计结论:在 α = 0.05 下拒绝 \(H_0\)。
业务表述:样本提供了较强的证据,表明这台机器生产的零件平均长度不等于 50.0 mm,估计偏长约 0.3 mm(95% 置信区间 50.10~50.50 mm,见第 10 章)。是否需要停机校准,还要看 0.3 mm 相对于工艺公差是否重要(第 11 章)。
以上数值均用 Python(scipy.stats.ttest_1samp)复核:t = 3.2863,df = 11,p = 0.00725。
9两样本 t 检验(Welch)与配对 t 检验
比较两组的均值。关键先问:两组数据是独立的两批人/物,还是同一批对象的两次测量?
9.1 两独立样本 t 检验(Welch)
两组独立样本,比较总体均值 \(\mu_1\) 和 \(\mu_2\)。思路和单样本完全一样:“差距 ÷ 差距的标准误”。
\[t=\frac{(\bar x_1-\bar x_2)-0}{SE},\qquad SE=\sqrt{\frac{s_1^2}{n_1}+\frac{s_2^2}{n_2}}\]这个 SE 不要求两组方差相等,称为 Welch 检验。它的自由度由软件按公式算出(通常不是整数),Minitab 会直接给出。
方法 A(10 人):78, 85, 82, 88, 75, 90, 84, 80, 86, 83
方法 B(12 人):72, 80, 68, 85, 77, 74, 79, 70, 83, 76, 81, 73
| n | 均值 | 离差平方和 | 方差 \(s^2\) | 标准差 s | |
|---|---|---|---|---|---|
| A | 10 | 831/10 = 83.10 | 186.9 | 186.9/9 = 20.767 | 4.557 |
| B | 12 | 918/12 = 76.50 | 307.0 | 307.0/11 = 27.909 | 5.283 |
因为学生是随机分班的,可以比较有底气地说差异与教学方法有关;如果是学生自己选班,就只能说“两班平均成绩不同”,不能直接归因于方法。
复核:scipy.stats.ttest_ind(A, B, equal_var=False) → t = 3.1456,df = 19.962,p = 0.00510。
9.2 配对 t 检验 = 差值的单样本 t 检验
如果两组数据来自同一批对象(同一个人减重前后、同一家门店改版前后),两次测量天然相关,不能当成独立的两组。做法非常简单:
| 参加者 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 前 | 82.4 | 76.8 | 91.2 | 68.5 | 88.0 | 73.6 | 95.1 | 79.3 |
| 后 | 80.1 | 76.2 | 88.4 | 68.9 | 85.6 | 72.0 | 92.3 | 77.8 |
| d = 前 − 后 | 2.3 | 0.6 | 2.8 | −0.4 | 2.4 | 1.6 | 2.8 | 1.5 |
注意:这里没有对照组,体重下降可能来自计划本身,也可能来自季节、自然波动等。检验只说明“前后有差异”,不能单凭它说“计划导致了减重”。
“前”组均值 81.86,“后”组均值 80.16,Welch 检验 t = 0.395,p = 0.699——完全不显著!
原因:每个人体重本身差别很大(68~95 kg),这个“人与人之间”的波动淹没了“前后”变化。配对做差后,个体差异被抵消,只剩下我们关心的变化,检验力大大提高。
复核:scipy.stats.ttest_rel(前, 后) → t = 4.2548,df = 7,p = 0.00377。
9.3 该用哪个检验?决策图
(零件 vs 50 mm;今年支出 vs 去年参考值)
→ 单样本 t 检验
\(df=n-1\)
(同一人前后;同一门店改版前后)
→ 配对 t 检验
= 差值 d 的单样本 t,\(df=n-1\)
(A 班 vs B 班;男 vs 女)
→ 两样本 t 检验(Welch)
\(SE=\sqrt{s_1^2/n_1+s_2^2/n_2}\)
10置信区间与假设检验:一枚硬币的两面
检验回答“是不是 \(\mu_0\)”;置信区间回答“大概在哪个范围”。
\[\text{95\% 置信区间}=\bar x\;\pm\;t_{0.025,\,df}\times SE\]单样本零件例子:\(50.30\pm2.201\times0.0913=50.30\pm0.201\Rightarrow[50.10,\;50.50]\)。
零件:区间 [50.10, 50.50] 不含 50.0 ⇔ p = 0.0073 < 0.05。
| 算例 | 估计值 | 95% 置信区间 | 包含 0(或 μ₀)吗? | p 值 |
|---|---|---|---|---|
| 零件长度(μ₀ = 50) | 50.30 | [50.10, 50.50] | 不含 50 | 0.0073 |
| 教学方法 A − B | 6.60 分 | [2.22, 10.98] | 不含 0 | 0.0051 |
| 减重 前 − 后 | 1.70 kg | [0.76, 2.64] | 不含 0 | 0.0038 |
置信区间比单个 p 值信息更多:它同时告诉你方向、大小和不确定性。实践中推荐“p 值 + 置信区间”一起报告。
11实际意义:统计显著 ≠ 实际重要
学会检验之后,更重要的是学会不被 p 值牵着走。
11.1 样本够大,什么都“显著”
\(SE=600/\sqrt{40000}=3\),\(t=8/3=2.67\),\(p=0.0077\)——“高度显著”!
但差距只有 8 元,约为月支出的 0.13%,对任何实际决策几乎没有意义。
原因:p 值同时受差距大小和样本量影响。n 极大时 SE 极小,再微小的差距都会被判“显著”。
11.2 所以要同时看“效应大小”
- 首选:用原始单位报告差距和置信区间,例如“平均多 8 元(95% CI …)”“平均减重 1.7 kg”。业务人员最容易判断它重不重要。
- 也可以把差距除以标准差,看它相当于“几个标准差”:零件例子 \(0.30/0.316\approx0.95\),是相当大的偏移;支出例子 \(8/600\approx0.013\),微乎其微。(这种标准化差距在课外常称为效应量,了解即可。)
11.3 “不显著” ≠ “没差别”
小样本、噪声大时,检验力低,真实存在的差别也可能“不显著”(第 7 章)。正确说法:“现有数据不足以证明存在差异”,最好附上置信区间,让读者看到可能的范围有多宽。
11.4 在商业与经济决策中的用法
质量控制
抽检判断生产线均值是否偏离标准(单样本 t)。同时要问:偏离量相对于公差是否要紧?误报(无谓停机)与漏报(次品流出)哪个代价大?据此选 α。A/B 测试
用户随机分到新旧两版页面,比较平均消费额(Welch t)。因为随机分组,差异才比较能归因于页面改动。还要看提升的金额是否覆盖改版成本。政策 / 项目评估
比较实施前后(配对 t)或参与/未参与群体(两样本 t)。但观察数据中两组往往本来就不同(自选择),检验只能说明“有差异”,不能直接说政策“导致”了差异。报告时的好习惯
① 事先定好假设、方向和 α;② 报告均值、差距、置信区间和 p 值;③ 说明样本怎么来的;④ 区分“统计显著”和“业务上重要”;⑤ 不做超出设计的因果解读。12Minitab 操作路径与输出解读
三个检验都在 Stat > Basic Statistics 菜单下。
| 检验 | 菜单路径 | 关键设置 |
|---|---|---|
| 单样本 t | Stat > Basic Statistics > 1-Sample t | 选数据列;勾选 Perform hypothesis test,在 Hypothesized mean 填 \(\mu_0\)(如 50);Options 里设置置信水平与备择方向(≠ / < / >) |
| 两样本 t(Welch) | Stat > Basic Statistics > 2-Sample t | 选择数据排列方式(两组各在一列,或一列数值 + 一列分组);Options 里不勾选 Assume equal variances,即为 Welch 检验 |
| 配对 t | Stat > Basic Statistics > Paired t | 分别选“前”“后”两列(注意顺序:差值 = 第一列 − 第二列);Options 里假设差值通常为 0 |
如何读输出(字段含义)
Minitab 的输出通常分为“描述统计 / 估计”和“检验”两块。常见字段:
| 字段 | 含义 | 对应本讲义 |
|---|---|---|
| N | 样本量 | \(n\) |
| Mean | 样本均值 | \(\bar x\)(配对时为 \(\bar d\)) |
| StDev | 样本标准差 | \(s\) |
| SE Mean | 均值的标准误 | \(s/\sqrt n\) |
| 95% CI | 95% 置信区间(均值、差值或配对差值) | 第 10 章 |
| Difference | 两样本均值之差的估计 | \(\bar x_1-\bar x_2\) |
| Null / Alternative hypothesis | 软件所检验的 \(H_0\) 与 \(H_1\),核对方向是否正确 | 第 4、6 章 |
| T-Value | 检验统计量 | \(t\) |
| DF | 自由度(Welch 时由软件计算,可能显示为整数) | 第 5、9 章 |
| P-Value | p 值,与 α 比较 | 第 6 章 |
练习:把第 8、9 章的示例数据输入 Minitab,你应得到与讲义一致的 t 值和 p 值(Welch 例子的 DF 显示可能略有不同)。
13综合小测与速查卡
最后做几道综合题,再把整套方法压缩成一张卡片。
速查卡
通用思路
\(\displaystyle t=\frac{\text{估计值}-\text{H}_0\text{ 下的值}}{SE}\)|t| 大 → p 小 → 证据强。
\(p<\alpha\) → 拒绝 \(H_0\);否则“不能拒绝”(≠ 证明无差别)。
单样本 t
\(t=\dfrac{\bar x-\mu_0}{s/\sqrt n}\),\(df=n-1\)CI:\(\bar x\pm t_{0.025,df}\,s/\sqrt n\)
Minitab:1-Sample t
两独立样本(Welch)
\(t=\dfrac{\bar x_1-\bar x_2}{\sqrt{s_1^2/n_1+s_2^2/n_2}}\),df 由软件给出Minitab:2-Sample t(不勾 equal variances)
配对 t
\(d_i=\text{前}_i-\text{后}_i\),\(t=\dfrac{\bar d}{s_d/\sqrt n}\),\(df=n-1\)本质:差值的单样本 t
Minitab:Paired t