Skip to content

案例拆解 3 · A/B 测试 · 为什么你的实验结果会骗你 ​

关联 Day 17 主题: 产品执行与数据驱动 · A/B 测试——用数据而不是直觉做决策 选择逻辑: A/B 测试听起来简单("分两组比一下"),但它是产品决策里"假阳性"的重灾区。本案例用一个电商结算页的真实场景,拆穿四个最经典的"数据骗局"——学完你能在面试里说出"为什么 A/B 测试会骗人",这是区分"会跑实验"和"懂实验"的关键。


一、开篇:一个"成功"的实验,结论为什么是错的 ​

场景:某电商 App,产品经理怀疑"结算按钮不够醒目",把按钮从灰色改成了红色,
     跑了一个 A/B 测试:

  A 组(灰色按钮):转化率 9.8%
  B 组(红色按钮):转化率 10.4%
  p = 0.02(< 0.05)→ 结论:"红色按钮显著提升了转化率!上线!"

结果红色按钮全量上线,一个月后,整体转化率不升反降。为什么?

因为这次实验踩了四个坑:
  陷阱 1:辛普森悖论——分组不均衡,隐藏变量在捣乱
  陷阱 2:提前偷看 + 多次检验——p 值被"偷看"刷成了显著
  陷阱 3:把"统计显著"当成了"业务显著"
  陷阱 4:样本量/时长没算够,结论经不起时间检验

下面逐个拆穿。


二、陷阱 1:辛普森悖论——整体看好,分层看全反 ​

辛普森悖论(Simpson's Paradox)是 A/B 测试里最反直觉、也最致命的坑:整体趋势和每个分组里的趋势,方向可能完全相反。

继续上面的例子。把用户按"是否老用户"拆开再看:

  新用户(占 B 组 70%):B 组转化率 12%,A 组 10% → B 更好 ✓
  老用户(占 B 组 30%):B 组转化率 5%,A 组 8% → B 更差 ✗

整体:B 组 10.4% vs A 组 9.8%,B 看起来更好。

为什么会这样?因为分流不均衡——B 组(红色按钮)里新用户占比意外更高,而新用户本来转化率就高,所以 B 组的整体转化率被"新用户占比高"这个隐藏变量抬上去了,跟按钮颜色无关。

真正的因果结论:
  红色按钮对新用户有效,对老用户反而有害。
  全量上线后,老用户拖后腿,整体转化率不升反降。

解法:
  ① 实验前做"分层分流"(按新老用户、渠道分层,保证两组结构一致)
  ② 分析时一定要"切子群"看——不能只看一个整体数字

一句话记忆: 一个"平均"数字可能掩盖两群完全相反的真相——A/B 测试的分析,永远要做分层。


三、陷阱 2:提前偷看 + 多次检验(Peeking Problem) ​

错误操作:
  产品经理每天上班第一件事,就是打开实验看板看 p 值。
  第 3 天,p = 0.04(< 0.05)→ "显著了!提前结束,上线!"

问题在哪?"每天看一次"本身就会把假阳性率放大。

为什么:
  假设检验的 p < 0.05,含义是"如果改动其实无效,你却有 5% 的概率看到 p<0.05"。
  这是"只做一次检验"时的假阳性率。

  如果你天天看、每看一次就算一次检验:
    看 5 天 → 假阳性率约 5% × 5 ≈ 23%(不是 5%!)
    看 20 天 → 假阳性率约 5% × 20 ≈ 64%
  → 你几乎一定会"看到一次显著",然后错误地宣布"有效"。

这就像连续掷硬币,一直掷到"连续 5 次正面"才停——你总会有一次觉得"这硬币有问题"。
解法:
  ① 跑之前就定好样本量和时长(比如"跑满 2 周"),跑完才看结果
  ② 或使用"序列检验"(sequential testing)框架,把多次偷看纳入校正
  ③ 一句话:"实验结果只有一次——就是预先声明的那个时刻。"

四、陷阱 3:统计显著 ≠ 业务显著 ​

场景:
  大公司做实验,样本量高达几百万。
  结果:B 组比 A 组提升了 0.3%,p < 0.001(非常"显著")。

p < 0.001,是不是就该上线了?不一定。

因为"统计显著"只回答"这个差异是不是真的存在",
      "业务显著"回答"这个差异值不值得做"。

  0.3% 的提升,p 值再小,如果:
    → 上线这个改动要花 3 个月的开发工时
    → 收益只有 0.3%,可能连开发成本都覆盖不了
  → 那就是"统计显著,但业务不显著",不该做。
为什么大样本会"制造"显著?
  样本越大,标准误越小,任何微小的差异都能通过显著性检验。
  → 大公司最容易犯这个错:什么都"显著",但什么都没用。

解法:
  看"效应量(effect size)+ 置信区间",而不是只看 p 值。
  问自己:"这个提升的幅度,值不值我们投入?"

五、陷阱 4:样本量不足 / 时长太短 ​

错误操作:
  小公司产品经理,新功能上线只跑了 3 天、几百个用户,
  看到 B 组转化率高了一点,就宣布"有效"。
问题 1:样本量不足 → 检验"功效(power)"太低
  → 即使改动真有效,你也测不出来(容易漏掉真效果,也容易误判假效果)
  → 几百个用户的随机波动,远大于真实差异

问题 2:时长太短 → 没覆盖"新用户体验期"
  → 新功能有"新鲜感效应"(novelty effect):用户刚看到新东西,短期会用得更多
  → 但新鲜感消退后,真实效果可能归零甚至为负
  → 所以实验要跑够一个完整周期(通常 ≥ 1 周,覆盖工作日+周末)
解法(回忆 Day 17 的样本量公式):
  每组样本量 n ≈ 16 × p̄(1−p̄) / δ²
  → p̄ 越小、想检测的效应 δ 越小,需要的样本量越大
  → 跑之前先算样本量,算完再决定要跑多久

六、正确的 A/B 测试怎么做——五步清单 ​

把四个陷阱反过来,就是正确流程:

① 先定假设:因为 X,改 Y,预期 Z(不是"随便改改试试")
② 先选指标:一个 OEC(核心)+ 几个护栏(不能牺牲的底线)
③ 先算样本量和时长:n ≈ 16 × p̄(1−p̄)/δ²,跑满一个完整周期
④ 再随机分流:分层分流,保证两组结构一致(防止辛普森悖论)
⑤ 跑完只看一次:看 p 值 + 效应量 + 置信区间,再切子群验证

一句话总结:
  "A/B 测试的敌人不是'不会做',而是'急着做'——所有的坑,几乎都来自'提前看结果'和'只看一个数'。"

七、面试级思考题 ​

  1. "你跑了一个 A/B 测试,p = 0.04,你会直接上线吗?" 提示:不会——先问"样本量够吗、有没有提前偷看、效应量多大、有没有切子群看辛普森悖论"。

  2. "整体数据显示 B 组更好,但按新老用户分层后每组都是 A 组更好,发生了什么?你会怎么做?" 提示:辛普森悖论——分流不均衡;用分层分流 + 切子群分析。

  3. "为什么大公司更容易出现'什么都显著、但什么都没用'?" 提示:大样本把微小差异也刷成"统计显著",但效应量太小,业务上不值得。

  4. "产品经理说'我跑了一个月,天天看数据,第 20 天终于显著了',这句话有几个错误?" 提示:① 提前偷看导致多次检验、假阳性放大;② "终于"说明在等显著,是确认偏误;③ 应该预先声明终点、只看一次。


八、连接你学过的知识 ​

概念在哪学的在 A/B 测试中的体现
假设检验 / p 值Day 14p < 0.05 判断"差异是否真实",但多次偷看会放大假阳性
置信区间Day 15判断时看置信区间和效应量,而不是只看 p 值
样本量 / 统计功效Day 15样本量不足 → 功效低 → 测不出真实效果
相关性 ≠ 因果性Day 14随机分流 + 分层,是为了排除混淆变量、逼近因果
混淆变量Day 14/15辛普森悖论的本质:隐藏变量(新老用户占比)在捣乱

Day 17 案例拆解 · A/B 测试 · 2026-08-15

系统化商业技能训练 · 20天 · 6章 · 免费开放