Skip to content

实验流程中常见的不当操作

涵盖实验设计、实验执行、实验分析过程中的常见不当操作。

设计阶段风险

1. 没有明确的假设就开实验

是什么

  • 凭直觉或模糊想法启动实验,如"试试新的按钮颜色"或"优化一下首页"
  • 没有预先定义具体的、可量化的假设,比如缺乏"将 CTA 从灰色改为橙色,预计移动端点击率提升 ≥10%"这样的清晰陈述

危害

  • 收集的数据回答不了任何问题 — 没有假设意味着没有判断标准,结果不论好坏都无法给出明确结论
  • 沦为"散弹枪式实验" — 看什么指标顺眼就选什么,等同于在噪声中猎取显著结果
  • 关键指标过多 — 假设不清时往往会注册大量"看一眼"的指标,检查越多→假阳性率越高
  • 浪费流量和时间 — 占用用户流量但无法产出可执行的结论

典型场景: 产品经理说"我感觉这个功能会好",就开了实验。两周后数据科学团队被问到"结论是什么?"——没有人能回答,因为没人定义过"好"的标准。

解决方案

  • 实验前必须书面陈述假设,包含三个要素:
    1. 预期影响的对象(谁)
    2. 预期影响的指标(什么)
    3. 预期影响的方向和量级(多少)
  • 控制关键指标的数量,与假设直接相关
  • 建立实验评审机制,假设不清晰不允许上线
  • 在实验文档中明确记录:假设 → 关键指标 → 护栏指标 → 决策规则

好的假设示例: "将结账页 CTA 从'继续'改为'立即购买',预计桌面端结账转化率提升 ≥5%,同时购物车放弃率不增加超过 1%。"


2. 随机化单位选择不当

是什么

  • 随机化单位与分析单位不一致(如按设备分配但按用户分析)

危害

  • 设备 ID 的问题:
    • 同一用户多设备访问→分配到不同实验组→体验不一致
    • 多人共用设备→行为被错误归因为一个个体→污染数据
  • 单位不一致的问题: 分析结果的标准误计算错误,p 值不可靠

解决方案

  • 用户 ID 是默认最佳选择 — 跨设备持久化,确保一致性
  • 确保随机化单位 = 分析单位

3. 忽视护栏指标和副作用

是什么

  • 只关注目标指标(如点击率),忽视其他关键业务指标
  • 不设置护栏指标(Guardrail Metrics),如崩溃率、页面加载时间、收入等
  • 未考虑功能变更对其他产品区域的间接影响

危害

  • 局部优化、全局恶化 — 点击率涨了但收入降了(如引入误导性文案)
  • 用户留存受损 — 短期指标好看但长期留存下降
  • 技术风险未被监控 — 新功能导致崩溃率飙升,但无人关注

解决方案

  • 每个实验必须同时设置:
    1. 目标指标(你期望提升的)
    2. 护栏指标(绝对不能恶化的,如崩溃率、收入、留存)
    3. 探索性指标(可能受影响的,用于发现意外效应)
  • 在实验设计中预定义决策规则:护栏指标恶化到什么程度时必须停止实验
  • 上线后主动检查护栏指标,而非只看目标指标

执行阶段风险

1. 数据窥视(Peeking)— 未达目标样本量就查看结果并决策

是什么

  • 设定了两周实验,但三天后看到结果"很显著"就提前结束
  • 持续监控实验面板,发现 p 值低于 0.05 就宣布胜利
  • 结果不好时继续延长,结果好时提前结束——本质上是在选择性收割显著结果
  • 多次查看结果,但只报告最"好看"的那一次

危害

  • 假阳性率大幅膨胀 — 每次窥视都是在做一次隐性的假设检验,多次窥视使实际 α 远超 0.05
  • p 值的随机波动 — 在实验过程中,p 值可能在显著和不显著之间反复跳动,任何单次快照都不能代表最终结果

关键理解: Peeking 的问题是"选择性停时"——你不是随机选一个时间点看结果,而是因为结果看起来显著了才决定停下来。这和反复掷硬币、只报告全是正面那一轮没有本质区别。

解决方案

  • 方案一:严格遵守固定样本量设计
    • 预计算所需样本量和运行时长
    • 达到目标前不看结果(或看了也不做决策)
    • 达到目标后做一次最终分析
  • 方案二:制定严格的监控规则
    • 日常只监控护栏指标(防止严重问题),不看目标指标的显著性
    • 目标指标的显著性只在预定的分析时间点查看

2. SRM(样本比例不匹配)未被检测

是什么

  • 实验分配设置为 50/50,但实际数据显示 60/40 等偏差
  • 没有运行 SRM 检验,或检验报警但被忽视

危害

  • 所有分析结论都不可信 — SRM 意味着随机化已被破坏,实验组和对照组不再可比
  • 偏差方向不可预测 — 可能高估或低估真实效应
  • 最隐蔽的问题 — 数据看起来"正常",指标有显著差异,但根因是数据采集偏差而非产品效应

解决方案

  • 每个实验必须运行 SRM 检验,作为上线的必要检查(详见统计引擎下样本比率匹配)
  • 发现 SRM 后必须修复并重启实验,不建议用受污染的数据做决策
  • 常见的修复措施:修复崩溃 bug、调整曝光触发点、修正分配逻辑

3. 实验执行中的代码 Bug 引入混淆变量

是什么

  • 实验功能代码有 Bug,导致实验组用户体验与预期不符
  • 实验代码本身引入性能问题(加载变慢、渲染异常)
  • 功能开关逻辑有误,部分用户实际上没有分到正确的组
  • 埋点代码错误,导致事件丢失或重复上报

危害

  • 测试的不是你想测的东西 — 你以为在测新功能的效果,实际在测 Bug 的影响
  • 性能问题掩盖真实效果 — 新功能本身可能很好,但加载慢 2 秒导致用户体验全面恶化
  • 分配错误导致 SRM — 部分"实验组"用户实际看到了对照组体验

解决方案

  • 上线前充分测试,模拟真实用户流程
  • 使用自动化的集成测试验证实验功能
  • 上线初期小流量灰度(如 1%),确认无严重 Bug 后再逐步放量
  • 实时监控崩溃率、加载时间、错误率等技术指标

4. 曝光触发点设置不当

是什么

  • 实验组在页面深处触发曝光,对照组在页面顶部就触发曝光
  • 曝光时机与用户实际体验不对齐
  • 曝光事件在用户真正看到实验功能之前就上报了
  • 某些条件下曝光事件未触发(如网络差时静默失败)

危害

  • 引入选择偏差 — 对照组包含了所有访问用户,实验组只包含"成功到达"的用户,两者不再可比
  • 指标计算错误 — 分母不一致导致转化率等指标不可比
  • 导致 SRM — 两组上报的曝光数量不一致

典型场景: 实验组的新功能在页面底部,用户需要滚动才能看到。曝光在功能渲染时触发,而对照组的曝光在页面加载时就触发。结果:对照组的"曝光用户"包括所有人,实验组只包括滚动到底部的人——这些本身就是更活跃的用户。

解决方案

  • 统一曝光触发时机 — 两组的曝光应在相同的用户行为节点触发
  • 如果实验功能需要用户操作才能触发,对照组也应设置对应的"虚拟曝光"事件
  • 确保曝光事件可靠上报,加入失败重试机制
  • 定期对比曝光量与预期分配量,及时发现丢失

5. 实验中途减流

在实验进行过程中减少流量,可能带来若干显著风险,损害实验结果的有效性、可靠性及整体结论。理解这些风险至关重要。

  • 统计功效降低 — 流量降低会导致样本量变小,进而降低实验的统计功效。这使得更难检测对照组与治疗组之间的显著差异,并增加 II 类错误(假阴性)的可能性。
  • 效应稀释 — ABC 从用户首次曝光起累计其实验数据。减流之后,部分用户将不再受到新产品功能的影响,但仍会被计入实验组,从而稀释实验效应。
  • 偏差引入 — 若流量削减未在各组间均匀实施,可能引入选择偏差。这会导致样本不具代表性,使结果产生偏倚,并损害实验有效性。
  • 用户体验不一致 — 减流可能导致用户体验不一致,尤其在削减未妥善管理时。例如,已接触过新产品功能的用户,其体验可能下降,进而影响用户行为,并为结果引入额外变异。

6. 实验中途改参

在在线对照实验进行过程中修改实验参数,可能引入若干风险,损害实验的完整性与有效性。以下是与中途改参相关的具体风险。

  • 偏差引入 — 接触过不同参数组合的参与者,可能察觉到功能变化,从而影响其行为与反馈,带来难以估量的偏差。
  • 用户体验不一致 — 修改参数可能导致用户体验不一致,进而影响用户行为,并为结果引入额外变异。
  • 解读困难 — 参数变更会使结果含糊不清、难以解读。很难判断观测到的效应来自参数变更,还是来自原始实验条件。
  • 复现问题 — 若原始实验全程参数不一致,未来复现该实验将变得困难。

分析阶段风险

1. 樱桃采摘(Cherry-picking)— 只选好看的结果

是什么

  • 从多个指标中挑选 3 个好看的,忽略 2 个不好的
  • 只在某个细分维度上找到了显著效果,就以此为结论
  • 选择"好"或"差"的数字,但这些数字与实验假设无关
  • 反复细分数据,直到某个切面出现显著结果

危害

  • 虚假的"成功"故事 — 在 20 个指标中总能找到 1 个显著的(纯随机概率 5%),报告它就是欺诈
  • 错误的产品决策 — 基于挑选出的指标上线功能,实际效果可能是负面的
  • 侵蚀数据可信度 — 长期来看,利益相关方会不再信任实验结论

解决方案

  • 报告所有预设的关键指标结果,无论好坏
  • 显著结果应有合理的因果解释 — 统计显著但解释不通的结果,应判断指标的假阳性
  • 多个独立指标的一致性增强可信度 — 如果多个相关指标都指向同一方向,即使 p 值边界也更有说服力
  • 将事后发现的有趣细分结果作为下一步实验的假设,而非当前实验的结论

2. 忽视新奇效应与学习效应

是什么

  • 新奇效应(Novelty Effect) — 用户因为新功能"新鲜"而短期使用更多,但长期回归正常
  • 学习效应(Learning Effect) — 新功能需要时间适应,短期表现差但长期可能更好
  • 仅看实验早期的指标表现就下结论,未观察趋势变化
  • 实验时长不足,无法区分短期新奇和长期效果

危害

  • 虚假的正面结论 — 新奇效应让新功能看起来很好,但上线后效果逐渐消失
  • 虚假的负面结论 — 学习效应让新功能初期看起来很差,但可能长期有益
  • 决策反转 — 上线后指标回落,不得不回滚功能,浪费开发资源

解决方案

  • 运行足够长的实验 — 至少覆盖一个完整的用户行为周期(通常 ≥1 周)
  • 查看指标的逐日趋势 — 如果效应随时间衰减→可能是新奇效应;如果随时间增强→可能是学习效应
  • 分析新老用户的差异 — 新用户没有"旧体验"对比,不受新奇效应影响
  • 使用留存和回访指标补充判断长期效果
  • 对有新奇效应风险的实验,考虑分阶段放量并持续观察