Skip to content

第五章 假设检验基础 ​

5.1 统计推断与假设检验的基本思想 ​

手里攥着一份样本,心里却惦记着总体——这是数据分析里最寻常的张力。我们不可能、也不必要把每一个个体都测量一遍,于是只能从样本出发,去推断总体的模样。假设检验,就是这套"由局部看全局"的推理工具中最核心的一件。

它始终在比较两种说法。一种是保守的、现状式的断言,称为零假设(null hypothesis,记作 H0);另一种是研究者真正想支持的、带有变化意味的断言,称为备择假设(alternative hypothesis,记作 H1)。举个例子:药厂声称某种胶囊的平均装量为 500 毫克,质检员怀疑实际偏少。这时 H0 就是"平均装量等于 500 毫克",H1 则是"平均装量不等于(或小于)500 毫克"。检验不预先相信哪一边,它只是问:如果 H0 真的成立,我们眼前这份样本出现的概率,大到让人安心,还是小到令人起疑?

背后的逻辑叫小概率原理:一件概率极小的事件,在一次试验中几乎不该发生。倘若在"H0 成立"的前提下,当前样本的出现概率小到了预先划定的门槛以下,我们就有理由怀疑 H0 本身站不住脚,从而转而支持 H1。注意,这不是"证明了"H1,而是"H0 难以解释眼前的数据,所以暂且放下它"。

被反复提及的 p 值,就是上面的"概率"本身。更准确地说,p 值是在 H0 成立的前提下,观察到当前样本、或更极端样本的概率。把它想成一份"意外程度报告"最贴切:p 值很小,意味着"若 H0 为真,眼前这般甚至更离谱的结果本不该轻易撞见";p 值很大,则意味着"这个结果在 H0 的世界里稀松平常,没什么好大惊小怪"。p 值小到什么程度才算"离谱"?这个门槛由研究者事先定下,正是下一节要谈的显著性水平。

检验本身还分"双侧"与"单侧"两种姿态。若 H1 只笼统地说"两者不相等",我们得两侧都提防,这叫双侧检验;若 H1 带着明确方向,例如"装量低于标准"或"新法得分更高",只需盯着那一侧,这叫单侧检验。单侧把全部 α 押在一边,自然更容易在那一端达到显著,但方向必须在事前就有充分依据,不能等数据出来、看见哪边差异大再临时改口——那样等于悄悄挪动了门槛。

这里有个容易绊倒初学者的地方:p 值衡量的是"证据 against H0 的强弱",而不是"H1 为真的概率",更不是"差异有多大"。一个 tiny 的 p 值只说明"不太可能纯属巧合",至于差异在现实里是否有意义,还得看效应量与专业判断。把这点想通,后面五花八门的 t 检验与非参数检验,其实都是同一套思想的不同化身。

5.2 显著性水平与第一、二类错误 ​

判定"p 值小到离谱"的那条红线,叫做显著性水平,习惯用 α 表示,最常用的值是 0.05。它的含义朴素直白:我们允许自己在 H0 明明为真时,却错误地把它拒之门外的风险不超过 5%。一旦 p ≤ α,就称结果"在 α 水平下显著",于是拒绝 H0;反之 p > α 则"未能拒绝 H0"——请留意,是"未能拒绝"而非"接受了 H0",就像法庭上"证据不足"不等于"被告清白"。

任何判断都有走眼的可能,假设检验也不例外,且走眼分两种:

  • 第一类错误(Type I):H0 本为真,我们却拒绝了它。它发生的概率,恰恰就是 α。把 α 定得越低,犯这类错的可能就越小,但代价是更难发现问题。
  • 第二类错误(Type II):H0 本为假,我们却没拒绝它。它发生的概率记作 β。与 α 相反,α 压得越低,β 往往越高——太谨慎地不肯冤枉 H0,就容易放过真正存在的差异。

检验功效(power)等于 1 − β,即"当 H0 确实为假时,我们成功把它揪出来的概率"。理想状态下,我们希望 α 小而功效大;现实中二者需要权衡,而增大样本量、减少测量误差、或选用更贴合数据结构的检验,都是抬高功效的正道。

样本量在这场权衡里举足轻重。效应量既定的情况下,样本越大,标准误越小,检验功效越高,越容易把真实存在的差异辨认出来;样本太小则常导致功效不足,即便差异客观存在,也可能因 p 值卡在门槛之外而被误读为"没有差异"。这也提醒我们:同样的 p 值,出现在大样本里未必令人振奋,出现在小样本里却要谨慎——后者常常只是"证据还不够多",而非"真的无差异"。

把两类错误放进现实,意义立刻浮现。医学筛查里,宁可多喊几次"假警报"(第一类错误)也不愿漏掉真病人;司法定罪则极力压低"冤枉好人"的概率,宁可放过某些疑犯。这些取向,本质上都是在 α 与 β 之间做取舍。

还要提醒一句:显著性 ≠ 重要性。p 值很小,往往只是因为样本足够大,连微乎其微的差异也能被检出;此时真正该看的是效应量(effect size),它独立于样本规模,回答"差异到底有多大"。后文每一类 t 检验,我们都顺带给出效应量的线索,正是为了避免"显著却无足轻重"的误读。

5.3 单样本 t 检验 ​

当我们手握一组观测值,又知道某个参考总体的均值,想判断"这份样本是不是来自那个总体"时,单样本 t 检验正合适。它的命令形态由一个 TESTVAL= 子命令触发,写法固定而简洁:

text
T-TEST TESTVAL=值 /VARIABLES=变量.

TESTVAL= 后面填的是那个已知的参考均值(待检验的 H0 值),/VARIABLES= 指定要检验的变量。通用子命令如 /CRITERIA=CI(0.95) 可调整置信区间的覆盖水平,/MISSING 控制缺失值的处理方式。图形界面的入口在 Analyze → Compare Means → One-Sample T Test(界面推断,手册未逐项文档化)。

下面构造一份数据:某次考试中,往届学生的总体平均分稳定在 75 分,这届抽了 10 名学生,想看看他们的水平是否偏离了这条基准线。H0 为"均值等于 75",H1 为"均值不等于 75"。

text
DATA LIST LIST /score.
BEGIN DATA.
78
82
71
76
80
73
85
79
74
77
END DATA.

T-TEST TESTVAL=75 /VARIABLES=score.

PSPP 会输出一张单样本检验表,关键栏目包括样本均值、与检验值的差、t 值、自由度 df、双尾 p 值,以及均值差的 95% 置信区间。把上面这份数据的输出按栏目铺开,大致长这样:

变量样本均值与检验值之差tdf双尾 p95% CI 下限95% CI 上限
score77.52.51.86090.09674.4680.54

就上面的数据而言,样本均值为 77.5,与 75 相差 2.5;t 值约为 1.860,自由度 df = 9,双尾 p 值约为 0.096,95% 置信区间约为 [74.46, 80.54]。

解读时先看置信区间:它整体落在 75 的上方一侧,却又跨过了 75 这个点本身。对应的 p 值 0.096 略高于常用的 α = 0.05 门槛,因此在 5% 水平上我们未能拒绝 H0——也就是说,仅凭这 10 个分数,尚不足以断言本届学生已整体偏离往届基准。这个"差一点就显著"的案例,正是提醒读者:p 值只是连续的概率,贴着门槛的解读要格外审慎,别把 0.049 与 0.051 想成天壤之别。

另需说明,PSPP 在单样本检验中报告的 p 值默认为双尾;若研究在事前已明确只关心某一方向(如"是否高于 75"),可将双尾 p 值除以 2 作为单尾参考值,但方向必须事前确定,不能看了数据再选。

5.4 独立样本 t 检验 ​

若想比较两个互不相干的组在某个连续变量上的均值,例如男女生身高、两种工艺的良率评分,就该请出独立样本 t 检验。它由 GROUPS= 子命令触发:

text
T-TEST /VARIABLES=变量 /GROUPS=分组变量(值1,值2).

/GROUPS= 后的括号里填分组变量的两个取值,PSPP 据此把个案切成两组再做比较。图形界面入口在 Analyze → Compare Means → Independent-Samples T Test(界面推断,手册未逐项文档化)。

这份检验最贴心的设计,是输出中自动附带 Levene 方差齐性检验。t 检验默认要求两组方差相当;Levene 检验正是先替你确认这一点。它给出两行 t 检验结果:第一行"假定方差齐性",第二行"不假定方差齐性"。判读口诀很清楚——先看 Levene 的 p 值:若 p > α,认为两组方差无显著差异,采用第一行;若 p ≤ α,方差不齐,改看第二行。

构造一组对照实验数据:实验组(group=1)与对照组(group=2)各 5 例,观测某项得分。

text
DATA LIST LIST /score group.
BEGIN DATA.
70 1
72 1
74 1
75 1
73 1
68 2
66 2
70 2
67 2
65 2
END DATA.

T-TEST /VARIABLES=score /GROUPS=group(1,2).

本例 Levene 检验的 p 值约为 0.85,远大于 0.05,说明两组方差齐性成立,于是读取第一行:t 值约为 4.60,df = 8,双尾 p 值约为 0.002,两组均值差为 5.6,其 95% 置信区间约为 [2.80, 8.40]。p 远小于 0.05,拒绝 H0,认为两组得分存在显著差异,且效应量 Cohen's d 约为 2.9,属大效应。易错点在于:务必让 GROUPS() 括号里的取值与数据集中分组变量的真实取值对上,否则 PSPP 会把不属于这两组的个案忽略或报错。

5.5 配对样本 t 检验 ​

还有一种常见情形:同一批对象在接受处理前后各测一次,或一对对匹配好的个体各测一次。这时两组数据天然成对,前后两次的个体差异才是关注焦点,应当使用配对样本 t 检验,由 PAIRS= 子命令触发:

text
T-TEST /PAIRS=变量1 WITH 变量2 (PAIRED).

这里有个务必上心的细节:WITH 连接的两个变量若不写 (PAIRED),PSPP 会生成所有可能的变量配对组合;只有加上 (PAIRED),才真正把"变量1 的第 i 个个案"与"变量2 的第 i 个个案"一一锁死,做严格的配对比较。图形界面入口在 Analyze → Compare Means → Paired-Samples T Test(界面推断,手册未逐项文档化)。

下面用一份前后测数据演示:8 名受试者训练前的指标 pre 与训练后的指标 post。

text
DATA LIST LIST /pre post.
BEGIN DATA.
60 64
62 63
59 61
61 65
58 60
63 66
57 59
60 62
END DATA.

T-TEST /PAIRS=pre WITH post (PAIRED).

配对检验的实质,是把每一对的前后差(post − pre)当作一个新的样本,再做单样本 t 检验,检验这些差值的均值是否为 0。本例 8 个差值的平均约为 2.5,t 值约为 6.614,df = 7,双尾 p 值小于 0.001,差值均值的 95% 置信区间约为 [1.61, 3.39],全程落在 0 的上方。结论明确:训练后指标显著高于训练前,效应量相当可观。若当初漏写 (PAIRED),系统可能把 pre 与 post 当成两组独立变量胡乱配对,结果便失去"同一人前后对比"的意义。

5.6 非参数检验入门 ​

t 检验虽好,却背着几项前提:数据近似正态、至少是连续定距变量、且最好两组方差齐。一旦样本量很小、分布明显偏斜、存在极端值,或者手里只是"满意/一般/不满意"这类有序分类数据,硬上 t 检验就不牢靠了。这时该转向非参数检验——它们不依赖总体的分布形状,因而更稳健,代价通常是统计功效略低。在 PSPP 里,这类方法统一收在 NPAR TESTS 命令之下。

NPAR TESTS 通过不同的子命令区分具体检验,下面逐一给出语法与适用场景。

拟合优度:/CHISQUARE。用来判断一个分类变量的频数与你预期的频数是否吻合,例如掷骰子是否公平、选民意向是否均匀。可指定取值范围与期望比例:

text
NPAR TESTS /CHISQUARE=vote(1,3) /EXPECTED=0.3,0.4,0.3.

/EXPECTED=EQUAL 表示期望各分类均等;也可像上面这样给出不等的期望权重。

符号检验:/SIGN。适用于配对资料,尤其当差值分布明显不对称、或数据为有序等级时。它只数"正差"与"负差"的个数,连差值大小都不依赖,因此极为稳健:

text
NPAR TESTS /SIGN=before WITH after (PAIRED).

Wilcoxon 配对秩检验:/WILCOXON。同样是配对资料,但它利用了差值的大小与符号、转化为秩后检验,比符号检验更敏感;代价是假定差值围绕中位数大致对称:

text
NPAR TESTS /WILCOXON=before WITH after (PAIRED).

Mann–Whitney 两独立组秩和检验:/MANN-WHITNEY。它是独立样本 t 检验的非参数替身,比较两组个案的秩和,对正态性没有要求。可缩写为 M-W:

text
NPAR TESTS /MANN-WHITNEY=score BY group(1,2).

括号里是分组变量及其两个取值;凡取值既非 g1 也非 g2 的个案会被自动忽略,这一点要留心。

沿用一组小数据感受它的用法:

text
DATA LIST LIST /score group.
BEGIN DATA.
55 1
60 1
58 1
62 1
59 2
64 2
61 2
66 2
END DATA.

NPAR TESTS /MANN-WHITNEY=score BY group(1,2).

输出会给出两组的秩和、U 统计量及对应的 p 值;若 p ≤ α,便可认为两组分布位置不同。它不告诉你差了多少,只告诉你"位置是否挪动了"——这正是非参数方法克制而诚实的一面。

正态性检验:/KOLMOGOROV-SMIRNOV。用来考察某个变量是否服从指定的理论分布,最常拿来检查"数据够不够正态",从而决定前面能不能放心用 t 检验。可缩写为 K-S,括号内声明分布类型与参数:

text
NPAR TESTS /KOLMOGOROV-SMIRNOV (NORMAL 75 10)=score.

上面以均值 75、标准差 10 的正态分布为参照;括号里还能换作 UNIFORM、POISSON、EXPONENTIAL 等分布。若对 score 与 age 同时检验正态性,可写 /KOLMOGOROV-SMIRNOV (NORMAL 3.5 2.0)=score age.,其中每个变量套用各自的 mu、sigma。

除以上五项外,PSPP 手册还实现了 BINOMIAL、COCHRAN、FRIEDMAN、KENDALL、KRUSKAL-WALLIS、MCNEMAR、MEDIAN、RUNS 等非参数过程,覆盖二项比例、多相关样本、秩相关、多组独立比较、配对四格表、中位数与随机性等诸多场景,需要时可在 NPAR TESTS 下继续探索。图形界面的非参数入口多在 Analyze → Nonparametric Tests → …(界面推断,手册未逐项文档化)。

挑选哪一类检验,归根到底要先问三个问题:数据是独立的还是配对的?是连续定距还是有序分类?分布够不够正态、样本够不够大?把这几条理顺,t 检验与非参数检验的分工便一目了然——前者锋利却挑数据,后者温和而兜底。

基于 GNU PSPP 2.0.1 手册与入门教程整理