想象你是美食顾问,受邀检验“老张小馆”的秘密配方。老张拍胸脯说新配方能让顾客更满意,于是你请来 20 位顾客,一半吃老配方,一半吃新配方,分别打分。结果新配方桌平均 8.2 分,老配方桌 7.1 分,统计学家一看:p=0.03,“显著”!老张当场就要把新配方写进菜单、全国推广。 且慢。这个 p=0.03 到底在说什么?它说的是:“如果老张的配方根本没用,光靠随机波动,两桌差出 1.1 分甚至更多这种事,概率只有 3%。”它没有说“新配方有 97% 的概率更好”,没有说“新配方好吃了 1.1 分这么多”,更没有说“下次再试一次,结果还是显著”。而且,想把这个 p 值“做”小,办法多得很:多试几个指标、悄悄删掉打低分的顾客、吃到满意才停止统计……这就是 p 值陷阱:显著性是一根敏感的温度计,一碰就跳,却常常测不出真实的“好吃程度”。 这篇文章带你当一回“懂行的食客”,从 p 值的本来面目讲起,拆穿三大常见误读,看清 p-hacking 和多重比较如何掺水,再学会用效应量、置信区间和预注册这三把“验菜叉”守住底线。

岗位关联

AI 从业者天天和实验评估打交道:模型上线、AB 实验、效果报告都离不开显著性判断。学会识破 p 值陷阱,你就能在“看起来有效”和“真的有用”之间划清界限,避免把噪声当信号,做出更可靠的数据决策。

目录
  1. 可视化演示
  2. p值本质:显著到底在说什么
  3. 常见误读:p值不是你想的那个概率
  4. P-hacking:把不显著“做”到显著
  5. 多重比较:试吃二十道菜,总有一道惊艳
  6. 效应量:好吃多少才算真的好吃
  7. 置信区间:给效果画一个范围
  8. 规范补救:开火之前先公开配方
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示p-hacking操纵过程、大样本下微小效应显著性与多重比较假阳性膨胀,通过多模式交互理解p值常见误用与正确补救方法。

本节配有交互动效(进入视口后自动加载,约 3KB)。

p-hacking操纵过程 反复尝试不同分析直到p 选择性报告显著结果忽略不显著试验 预注册从制度上防止事后修改分析方案 P(至少一次|显著) = 1-(1-α)^m p-hacking严重膨胀假阳性率

p值本质:显著到底在说什么

城中有家“老张小馆”,老板老张号称换了秘密配方能让顾客更满意。你作为美食顾问要验证:新配方到底有没有用?于是你请了 20 位顾客,一半吃老配方,一半吃新配方,然后分别打分。两组的平均分差出 1.1 分——可万一是随机波动凑巧让新配方桌分高了呢?统计学家把“老张根本没本事”这条假设叫做原假设 \(H_0\),而 p 值回答的正是:“在 \(H_0\) 为真的前提下,靠纯运气看到'两组差这么多甚至更夸张'的概率。”

注意这句话的关键是“在 \(H_0\) 为真的前提下”。p 值不是“新配方有效的概率”,而是“如果新配方没用,这批数据会有多反常”。反常到一定程度,我们才觉得老张可能真有两下子。这个“一定程度”就是显著性水平 α,通常取 0.05——相当于允许 5% 的看走眼风险。为了把“差多少”换算成统一尺度,统计学家构造了检验统计量 \(T\),把平均分的差距除以抽样误差,得到一个标准分数。

写成公式就是:在原假设下,观测到当前统计量或更极端统计量的概率。

所以“显著”翻译成大白话是:“如果老张没本事,这桌菜打出这种分数差的概率不到 5%。”它不是奖状,只是一声哨响——提醒你“这人可能真有货,值得继续查”。

p=P(∣T∣≥∣tobs∣∣H0)p = P\big(|T| \geq |t_{\text{obs}}| \mid H_0\big)
p 值 = “假设你没本事,这桌菜差这么多分纯属运气的概率”。它衡量数据有多反常,不衡量本事有多大。
  1. 原假设 \(H_0\)先假设两组没有差异,即新配方与老配方“平手”。
    H0:μ1=μ2H_0: \mu_1 = \mu_2
  2. 检验统计量 \(T\)把两组平均分的差距换算成“标准尺度”,消除量纲影响。
    T=Xˉ1−Xˉ2SET = \frac{\bar{X}_1 - \bar{X}_2}{SE}
  3. 极端事件 \(\{|T| \geq |t_{\text{obs}}|\}\)包含“实际观测到的差距”以及“比它更离谱”的所有情况。
    ∣T∣≥∣tobs∣|T| \geq |t_{\text{obs}}|
  4. 概率计算在原假设成立的前提下,算出这个事件的概率,就是 p 值。
    p=P(∣T∣≥∣tobs∣∣H0)p = P(|T| \geq |t_{\text{obs}}| \mid H_0)

常见误读:p值不是你想的那个概率

你兴冲冲地告诉老张:“p=0.03,说明你的配方有 97% 的把握是有效的!”老张听了能乐开花。可这句话把条件方向彻底颠倒了。p 值是“数据 | 原假设”这个方向的概率,而老板们真正想要的是“原假设 | 数据”——看完证据之后,“老张是清白的”还有多大可能。前者是“假设你是清白的,这证据有多反常”,后者是“看完证据,你有多大概率是清白的”。这俩完全是两码事。

用贝叶斯公式就能看清二者的距离:想要得到 \(P(H_0 \mid \text{数据})\),除了 p 值,还必须知道研究前的先验概率 \(P(H_0)\),以及备择假设下出现这份数据的可能性。

除了颠倒条件,还有两个常见误读:其一,p 值不是“结果能重复”的概率——真实效应很微弱时,即使 p<0.05,重复实验也常常不显著;其二,p 值不是“效应大小”——样本量一大,微小的差异也能把 p 压得很低。总而言之:p 值是一根很灵敏的温度计,但它不告诉你房间里到底有多热。

P(H0∣数据)=P(数据∣H0) P(H0)P(数据∣H0)P(H0)+P(数据∣H1)P(H1)P(H_0 \mid \text{数据}) = \frac{P(\text{数据} \mid H_0)\,P(H_0)}{P(\text{数据}\mid H_0)P(H_0) + P(\text{数据}\mid H_1)P(H_1)}
想在“数据发生后”评估原假设为真的概率,光有 p 值远远不够,还得有先验。就像想判断“进急诊的人是不是都被车撞了”,光知道“被车撞的人会进急诊”是不够的。
  1. 想要的方向 \(P(H_0 \mid \text{数据})\)看完数据之后,原假设为真的概率。
    P(H0∣数据)P(H_0 \mid \text{数据})
  2. 分子里的 p 值p 值正是 \(P(\text{数据} \mid H_0)\),它是分子的一部分,但还要乘上先验 \(P(H_0)\)。
    P(数据∣H0) P(H0)P(\text{数据} \mid H_0)\,P(H_0)
  3. 分母全概率无论真相如何,能看到这份数据的总体概率。
    P(数据)P(\text{数据})
  4. 结论除非先验极端,否则 \(P(H_0 \mid \text{数据})\) 与 p 值相差甚远,不能划等号。

P-hacking:把不显著“做”到显著

老张太想签下你这单了。第一轮试吃,p=0.13,不显著。他皱眉:“要不……换个拌法再来一轮?”第二轮 p=0.09。他悄悄把一位打 3 分的顾客划掉:“这位客人心情不好,不算数。”第三轮,p=0.04,显著!老张欢呼:“看,科学证明了!”——这就是 p-hacking,翻译过来就是“数据烹饪”:通过反复尝试、事后删数据、挑结果报告、边收集边看显著性等手段,把本不显著的结果硬“炖”成显著。

问题出在哪儿?每一次偷看数据、每一次重试,都在消耗“运气额度”。本来单次检验看走眼的概率只有 α=0.05,可如果你试了 k 次,哪怕原假设千真万确,至少凑出一个显著结果的概率会急剧膨胀。

算一算:k=14 时,\(1-0.95^{14} \approx 51\%\)。也就是说,一个毫无效果的配方,只要试吃 14 轮,有超过一半的把握“试”出显著来。p-hacking 最阴险的地方,是它让“显著”变成了耐心活,而不是真本事。

P(至少一次显著∣H0)=1−(1−α)kP(\text{至少一次显著} \mid H_0) = 1 - (1 - \alpha)^k
试吃 14 轮还找不出“满意”,反而说明配方可能真不咋地;硬凑出来的 0.04,和一次成型测出的 0.04,含金量完全不同。
  1. 单次误报率 \(\alpha\)原假设为真时,单次检验“看走眼”判显著的概率。
    α=0.05\alpha = 0.05
  2. k 次全部不误报 \((1-\alpha)^k\)假设每次尝试相互独立,k 次都侥幸过关的概率。
    (1−α)k(1 - \alpha)^k
  3. 至少一次误报用 1 减去“全都不误报”,就是试 k 次至少出一个显著结果的概率。
    1−(1−α)k1 - (1 - \alpha)^k

多重比较:试吃二十道菜,总有一道惊艳

老张见一招得手,干脆摆出 20 道候选菜,每道都用新旧配方对比请你试吃。你连尝 20 轮,兴奋地宣布:“第 7 道菜 p=0.03,显著!”老张狂喜。可冷静想想:这 20 道菜其实全是同一个配方做的,压根没有一道真的改良过。即便如此,光靠随机波动,20 个比较里也大概率能凑出一个 p<0.05 来。这就是多重比较问题:比较次数越多,家族层面的假阳性率越高。

“家族错误率”(FWER)指的是:m 次比较中,至少出现一次假阳性的概率。如果每次都用 α=0.05,那么 \(FWER = 1-(1-\alpha)^m\),当 m=20 时约为 64%。要让家族错误率保持在 5% 以内,最简单的办法是 Bonferroni 校正:把 α 分摊给每一次比较。

当然,Bonferroni 有点“一刀切”的保守,m 很大时会损失检测力度,于是又有了 FDR(错误发现率)控制等更精细的方法。但核心思想一致:比较次数越多,越要对“显著”两个字多留个心眼。

α′=αm\alpha' = \frac{\alpha}{m}
20 道菜,就把“看走眼”的额度分成 20 份,每道菜只有 0.25% 的机会被误判为惊艳。门槛严了,运气就不容易钻空子。
  1. 族错误率 FWERm 次比较中至少出现一次假阳性的整体错误率,可用近似式估算。
    FWER=1−(1−α)m≈mαFWER = 1 - (1-\alpha)^m \approx m\alpha
  2. 分摊额度把总错误配额 α 平均分给每一次比较,得到单次门槛。
    α′=αm\alpha' = \frac{\alpha}{m}
  3. 整体保证每一趟都用收紧后的 α' 把关,整体误报率就能控制在 α 以内。

效应量:好吃多少才算真的好吃

新配方平均分高了 1.1 分,p=0.003,漂亮!但老张的食客打分本来就很飘,标准差高达 5 分——1.1 分只相当于 0.2 个标准差。换句话说,顾客根本尝不出区别。统计显著只说明“效应不是零”有证据,却不说效应有多大。这就是“显著 ≠ 重要”。要回答“好吃多少”,得看效应量。最常用的是 Cohen's d:把两组均值差除以合并标准差,得到“差了几个标准差”。

经验标尺:d≈0.2 算小效应,0.5 中等,0.8 以上才算大。那为什么大样本下微小效应也容易显著?因为标准误 SE 随样本量缩小:

n=10 万时,0.02 个标准差的差异也能 p<0.001。所以看到显著结果,先别急着欢呼,问一句:效应量有多大?

d=xˉ1−xˉ2spd = \frac{\bar{x}_1 - \bar{x}_2}{s_p}
p 值问“是不是运气”,效应量问“到底差多少”。一份菜好吃 0.1 分和好吃 5 分,都可能“显著”,但前者你根本尝不出来。
  1. 总体标准差 \(\sigma\)单个顾客打分的固有波动。
    σ\sigma
  2. 除以样本量平方根平均数的波动随人数增加而缩小。
    σn\frac{\sigma}{\sqrt{n}}
  3. 大样本含义n 越大标准误越小,t 统计量越大,p 越小——哪怕效应量小到毫无商业价值。

置信区间:给效果画一个范围

与其拍着胸脯说“新配方好吃了 1.1 分”,不如诚实地说:“根据这 20 位顾客,我们有 95% 的把握,新配方带来的真实提升在 [-0.3, 2.5] 分之间。”这个范围就是置信区间。点估计像“尝了一口汤猜咸度”,区间估计像“多尝几口,给出咸度的合理范围”。范围越窄,说明证据越扎实;范围跨过 0,说明“没效果”仍在可能范围内,结论就得打折。

置信区间的构造公式是点估计加减误差范围,误差范围 = 临界值 × 标准误。

区间又窄又远离 0,才是“真靠谱”;区间宽到跨过 0,等于在说“可能有效也可能无效”。聪明的研究者会同时报告 p 值和置信区间,让读者自己掂量证据的分量。

xˉ±zα/2⋅σn\bar{x} \pm z_{\alpha/2} \cdot \frac{\sigma}{\sqrt{n}}
p 值给结论,区间给分寸。p<0.05 只告诉你“显著”,置信区间却告诉你“效果可能在哪个范围内”,以及这个范围有没有跨过 0。
  1. 点估计 \(\bar{x}\)这 20 位顾客打出的平均分差。
    xˉ\bar{x}
  2. 标准误 \(SE\)换一批顾客,平均分差会浮动多少。
    SE=σnSE = \frac{\sigma}{\sqrt{n}}
  3. 临界值 \(z_{\alpha/2}\)95% 置信对应的倍数。
    z0.025≈1.96z_{0.025} \approx 1.96
  4. 区间组装点估计加加减减得出误差范围。
    xˉ±1.96×SE\bar{x} \pm 1.96 \times SE

规范补救:开火之前先公开配方

为什么老张反复试吃让人不放心?因为他是看了结果才定规则。预注册就是“先写菜谱,再开火”:把研究假设、样本量、分析方法、主要终点,在收集数据之前全部公开登记。这样一来,事后删点、中途停止、临时换指标这些 p-hacking 手法就无处遁形。哪怕你心里没鬼,预注册也像给分析流程加了把锁,防止自己不经意间“手滑”。

但还有一个更隐蔽的陷阱:即便 p<0.05,这个“显著发现”是真实效应的概率,也远没有 95% 那么高。它取决于研究前的先验概率 π 和统计功效 \(1-\beta\)。用正发现率(PPV)来衡量:

所以规范的科研流程是:先预注册,再按功效算好样本量,分析时报告效应量和置信区间,最后用独立重复实验验证。这一套组合拳下来,p 值陷阱就基本无处下脚了。

PPV=(1−β)π(1−β)π+α(1−π)PPV = \frac{(1-\beta)\pi}{(1-\beta)\pi + \alpha(1-\pi)}
p 值是探针,不是定论。先验低、功效差的研究里,大多数“显著”结果其实是假阳性——这就是为什么预注册、大功效、重复实验才是让“显著”二字值钱的正道。
  1. 先验概率 \(\pi\)研究开始之前,你心里“配方有效”的把握。
    π\pi
  2. 功效 \(1-\beta\)配方真有效时,实验能顺利检出显著的概率。
    1−β1-\beta
  3. 分子有效且被检出的比例,即真阳性。
    (1−β)π(1-\beta)\pi
  4. 分母所有显著结果 = 真阳性 + 假阳性。
    (1−β)π+α(1−π)(1-\beta)\pi + \alpha(1-\pi)
  5. PPV 结论p<0.05 不代表“发现为真”的概率高;先验越低、功效越差,显著结果越可能是运气。

AI 应用场景

场景1:新药临床试验的终点选择

阶段:统计假设检验与结果汇报

解决的问题:药企申报新药时,如果只看“哪个指标 p<0.05”就报哪个,不做多重比较校正,监管机构会质疑结论的可靠性。AI 辅助的规范流程要求试验方案预注册、事先指定主要终点,并对多个终点做校正。

具体案例:某抗过敏药同时测量打喷嚏、流涕、鼻塞、眼痒 4 个症状指标,事后发现只有“打喷嚏”显著(p=0.02)。用 Bonferroni 校正后(α'=0.05/4=0.0125),p=0.02 便不再显著,避免了一个假阳性结论进入审批材料。数据分析师同步输出 4 个指标的置信区间,帮助医学团队判断哪些改善真正有临床价值。

场景2:AB实验的大流量陷阱

阶段:实验评估与决策

解决的问题:大流量平台上,日活千万级、样本量极大,任何 0.01% 的点击率提升都能轻松 p<0.001。若只看 p 值,团队会被微小到毫无业务意义的“提升”牵着鼻子走。效应量和置信区间才是判断“值不值得上线”的尺子。

具体案例:推荐算法改版后,点击率提升 0.02%,p<0.001“高度显著”,但 Cohen's d≈0.01,95% 置信区间为 [0.012%, 0.028%],涨幅在业务噪声范围之内。数据分析师据此建议:不上线,把精力留给真正能带来可感知提升的改动。事后复盘发现,同方案在另一流量较小的市场完全不显著——印证了“显著”被大样本放大了。

场景3:学术论文审稿的可复现性审查

阶段:科研可复现性审查

解决的问题:审稿人面对一篇“喝咖啡降低患癌风险,p=0.04”的论文,需要判断这个显著结果是真发现还是数据烹饪的产物。用 p 值陷阱清单逐项排查:有没有预注册?做了多少次分层分析?多重比较校正了吗?效应量多大?

具体案例:某论文对 30 个饮食习惯分别做生存分析,仅“喝咖啡”显著。审稿人用 Bonferroni 校正重算,α'=0.05/30≈0.0017,原 p=0.04 远不达标;再查预注册平台,发现作者事后新增了 12 个分析终点。审稿人要求作者补充预注册编号、报告全部 30 次分析结果并进行敏感性分析,最终结论从“喝咖啡防癌”改为“证据不足”。

Python 演示

python50 行
import numpy as npfrom scipy import stats  def demo_large_sample():    # 大样本下,微小差异也会变得显著    rng = np.random.default_rng(42)    a = rng.normal(0, 1, 100000)    b = rng.normal(0.02, 1, 100000)  # 真实效应只有 0.02 个标准差    t, p = stats.ttest_ind(a, b)    print("[大样本陷阱] n=100000, 真实效应仅 0.02 个标准差")    print("  t=%.3f, p=%.2e, 统计显著但效应微乎其微" % (t, p))  def demo_multiple_comparisons():    # 20 组来自同一总体,两两比较会有多少假阳性    rng = np.random.default_rng(7)    groups = [rng.normal(0, 1, 30) for _ in range(20)]    hits = 0    for i in range(len(groups)):        for j in range(i + 1, len(groups)):            _, p = stats.ttest_ind(groups[i], groups[j])            if p < 0.05:                hits += 1    total = len(groups) * (len(groups) - 1) // 2    print("[多重比较] 20 组共比较 %d 次, 假阳性 %d 次" % (total, hits))    print("  期望误报数约 = %d * 0.05 = %.1f" % (total, total * 0.05))  def demo_p_hacking():    # 反复挑选子样本,直到凑出一个显著结果    rng = np.random.default_rng(123)    a = rng.normal(0, 1, 100)    b = rng.normal(0.05, 1, 100)    _, p0 = stats.ttest_ind(a, b)    print("[P-hacking] 完整数据 p=%.3f, 不显著" % p0)    for k in range(1, 200):        idx_a = rng.choice(100, 80, replace=False)        idx_b = rng.choice(100, 80, replace=False)        _, p = stats.ttest_ind(a[idx_a], b[idx_b])        if p < 0.05:            print("  第 %d 次随机删点后 p=%.4f < 0.05, 显著了!" % (k, p))            return    print("  200 次都没凑出显著(运气不好)")  if __name__ == "__main__":    demo_large_sample()    demo_multiple_comparisons()    demo_p_hacking()
目的:用三组模拟实验直观演示 p 值陷阱——大样本让微小效应显著、多重比较膨胀假阳性、反复删点把不显著“凑”成显著。
  1. b = rng.normal(0.02, 1, 100000)构造真实效应只有 0.02 个标准差的巨大样本
  2. t, p = stats.ttest_ind(a, b)对两组做独立样本 t 检验,返回统计量和 p 值
  3. total = len(groups) * (len(groups) - 1) // 2计算 20 组两两比较的总次数 190
  4. if p < 0.05: hits += 1统计“本无差异却被判显著”的假阳性个数
  5. idx_a = rng.choice(100, 80, replace=False)无放回抽取 80 个样本,相当于“删掉 20 个数据点”再检验
  6. for k in range(1, 200)最多尝试 199 次随机删点,模拟反复试吃直到显著

常见误区

误区p=0.03,说明我有 97% 的把握说新配方更好,原假设为真的概率只有 3%。统计书都这么算的,还能有错?

正解p 值的条件方向是“数据 | 原假设”,即“假设没差异,看到这么极端数据的概率”;而“原假设为真”的概率是“原假设 | 数据”。想算后者必须用贝叶斯公式引入先验。就像“被车撞的人大概率进急诊”推不出“进急诊的人大概率被车撞”。

为何常见:人脑习惯把“稀有事件概率”直接理解成“假设不对的概率”,加上“概率”二字听起来像同一件事,方向颠倒很难被察觉。

误区都显著了,说明这配方效果肯定很猛,赶紧全国推广!p 值越小,效果越大嘛。

正解显著性只说明“效应不为 0 的证据足够”,完全不说明效应有多大。样本量一大,0.01 个标准差的差异也能 p<0.001。要判断“多大”,必须看效应量 Cohen's d 和置信区间。

为何常见:“显著”在生活用语里就是“明显、重要”的意思,统计显著性的技术含义被字面意思带偏了。

误区没达到显著,那就是没效果,不用再研究了。p=0.30 说明两组几乎一模一样。

正解p>0.05 只能说明“证据不足以拒绝原假设”,不能证明原假设为真。样本太小、功效不足时,真效应也会测不出来。就像用一把很钝的尺子量头发丝,量不出 0.1 毫米的变化,并不代表头发没有粗细之分。

为何常见:把“没有证据”等同于“证据不存在”,这是典型的“以无推无”逻辑谬误。

误区数据都在那儿,多分析几种方案、把显著的结果拿出来讲,又没造假,顶多算灵活运用。

正解反复试探后挑出的 p<0.05,实际假阳性率远高于名义上的 5%——试 14 次约有 51% 的概率凑出显著。这种“看了结果再定规则”的做法就是 p-hacking,属于研究不端。正确做法是预注册、多重比较校正、如实报告全部尝试。

为何常见:发表压力大,“不显著就发不了文章”的焦虑让人把灵活处理当成不得已的聪明。

误区p=0.01 的结果铁证如山,换一批人再试一次肯定还是 0.01,不然统计学还有什么用?

正解单个研究的 p 值只是“这份数据”下的证据强度。受抽样误差、低功效和 p-hacking 影响,大量已发表的显著结果在重复实验中翻车。结论能否重复,取决于功效、先验和流程规范性,而不是单次 p 值。

为何常见:大家默认科学结论是确定不变的,忽略了单个研究本质上只是“一次抽样”,天然带有随机性。

面试题

Q1. 关于 p 值最准确的说法是?

单选题 · easy

  • A.原假设为真时出现极端结果的概率← 正确答案
  • B.备择假设为真的概率大小水平
  • C.研究结论能够被重复验证概率
  • D.效应量大于零的可靠程度水平

答案:A。p 值是“原假设(H0)为真时,观测到当前统计量或更极端统计量的概率”,方向是“数据 | H0”。B 把条件颠倒成“H0 | 数据”,C 混淆可复现性,D 混淆效应量。好比“假设厨师没本事,这桌菜差这么多分的概率”是 p 值,而不是“厨师没本事的概率”。

Q2. 显著性水平 α=0.05 的含义是?

单选题 · easy

  • A.原假设真时误拒的概率上限← 正确答案
  • B.备择假设真时拒绝的概率大小
  • C.实验结论正确的概率为 95%
  • D.每做 20 次实验就错一次的机会

答案:A。α 是事前约定的“看走眼上限”:原假设为真时,数据极端到被误判显著的概率不超过 5%。B 说的是功效(1-β),C 把显著性误当成“结论正确率”,D 把长期频率误当成单次保证。

Q3. p=0.03 时,下列哪项不能推出?

单选题 · mid

  • A.数据在原假设下属于小概率事件
  • B.按 α=0.05 应拒绝原假设
  • C.新配方有 97% 的概率比老配方好← 正确答案
  • D.结果与没有效应的假设不兼容

答案:C。p<0.05 只说明数据在 H0 下罕见,据此拒绝 H0。C 是典型的颠倒条件谬误——p 值不是“H0 为假的概率”,更不是“新配方更优的概率”。A、B、D 都是 p=0.03 的合理推论。

Q4. 为什么大样本下微小效应也容易显著?

单选题 · mid

  • A.标准误随样本量增大而减小← 正确答案
  • B.效应量随样本量增大而变大
  • C.显著性水平随样本量而放宽
  • D.大样本会自动修复抽样偏差

答案:A。标准误 SE=σ/√n,n 越大 SE 越小,t 统计量变大,p 变小。效应量(如 Cohen's d)反映“差几个标准差”,与样本量基本无关,不会变大;α 是研究者设定的,也不随样本量改变。

Q5. Bonferroni 校正的做法是?

单选题 · mid

  • A.将显著性水平缩小为 α/m← 正确答案
  • B.将显著性水平扩大为 α×m
  • C.把检验统计量乘以比较次数 m
  • D.删除不显著的组再做检验

答案:A。m 次比较时,把单次门槛收紧为 α/m,保证整体误报率不超过 α。B 方向反了;C 篡改统计量;D 是事后删数据,属于 p-hacking 而非校正。

Q6. 做 20 次独立比较、α=0.05,至少出现一次假阳性的概率约为?

单选题 · hard

  • A.大约等于 0.05
  • B.大约等于 0.36
  • C.大约等于 0.64← 正确答案
  • D.大约等于 0.95

答案:C。FWER = 1-(1-0.05)^20 ≈ 1-0.358 = 0.642。即使 20 个比较全无真效应,也有约 64% 概率至少凑出一个“显著”。这正是“试吃 20 道菜总有一道惊艳”的数学原理,也解释了为什么要做 Bonferroni 校正。

Q7. 下列哪些属于 p-hacking 的典型手法?

多选题 · mid

  • A.试验开始前写好分析方案
  • B.反复删除数据点直到结果显著← 正确答案
  • C.只报告显著的那组分析结果← 正确答案
  • D.边收数据边看显著性决定停止← 正确答案

答案:BCD。A 是预注册,属于规范做法。B(事后删点)、C(挑结果报告)、D(中途停止)的共同点是“看了结果再定规则”,会让实际假阳性率远高于名义 α,都是 p-hacking。

Q8. 下列哪些是应对 p 值陷阱的规范手段?

多选题 · mid

  • A.预注册假设样本量分析方法← 正确答案
  • B.报告效应量与置信区间范围← 正确答案
  • C.用独立样本重复实验验证← 正确答案
  • D.只把 p 值阈值改为 0.01

答案:ABC。A 防止事后灵活分析;B 让读者看到效应大小与范围;C 直接检验可复现性。D 只改阈值不解决根本问题——继续 p-hacking 的话改多严都没用,还会降低功效。

Q9. 关于效应量 Cohen's d 的说法,正确的是?

单选题 · hard

  • A.d=0.5 即两组均值差半个标准差← 正确答案
  • B.d 值越大对应 p 值就一定越小
  • C.d 只能用于正态分布的大样本
  • D.d 会随样本量增大而明显变大

答案:A。d=(x̄₁-x̄₂)/s_p,是“差距 ÷ 标准差”的标准化度量,d=0.5 即相差半个标准差。p 值同时受 d 和样本量影响,d 大不一定 p 小;d 是近似与样本量无关的量,也不要求大样本或正态。

Q10. 某实验报告 p=0.03,下列哪些说法是错误的?

多选题 · hard

  • A.原假设为真的概率是 3%← 正确答案
  • B.效应量一定也非常微小← 正确答案
  • C.重复实验有九成把握仍显著← 正确答案
  • D.数据在原假设下较为罕见

答案:ABC。A 混淆条件方向,p 值≠原假设为真的概率;B 显著性不决定效应量,p 小也可能效应量很大;C 混淆“显著”与“可重复”,重复概率取决于功效和先验,与单次 p 值没有直接换算关系。只有 D 是 p=0.03 的正确解读。