A/B Testing: Experiment Design, Sample Size, and Launch Decisions
A/B 测试解决什么问题
在网站、App 和推荐系统等产品场景中,我们经常要在多个设计或运营方案之间做选择。小到按钮位置、文案、颜色,大到注册流程、推荐策略、价格展示和召回机制,单靠直觉很难判断哪个方案真的更好。
A/B 测试的核心思想类似对照实验:把用户或请求随机分到不同组,让每组在相同时间窗口内看到不同方案,然后比较关键指标的变化。它希望回答的问题不是“哪个方案看起来更合理”,而是“在随机误差和业务波动存在时,我们是否有足够证据认为某个方案带来了真实提升”。
A/B 测试适合处理因果方向相对清晰、干预可控、指标可观测的问题。它不适合替代产品判断,也不能自动解释所有差异产生的机制。如果实验设计本身不干净,即使统计检验显著,结论也可能没有价值。
基本流程
一个完整的 A/B 测试通常包括这些步骤:
- 提出业务假设:明确要改善什么问题,以及新方案为什么可能改善它。
- 设计实验方案:确定对照组、实验组、实验单位、分流比例和互斥关系。
- 设定指标体系:确定主指标、护栏指标和辅助观察指标。
- 估计样本量和实验时长:根据最小可检测效应、显著性水平和功效决定是否值得实验。
- 开发并上线实验:保证埋点、日志、分流和版本展示符合设计。
- 采集并分析数据:检查分流质量、样本比例、指标异常,再做统计检验。
- 做出决策:结合统计显著性、实际业务收益和风险决定上线、回滚或继续实验。
流程看起来线性,但真实实验常常需要回到前面修正。比如发现主指标波动远大于预期,就要重新评估样本量;发现分流不均,就要先排查实验平台,而不是直接分析效果。
实验设计
假设
实验开始前需要先写清楚假设。最基本的形式是:
- 原假设 :新方案与旧方案没有差异,或者新方案没有带来提升。
- 备择假设 :新方案相对旧方案带来了差异或提升。
在产品实验中,更实用的表述通常是:“新注册页能把注册完成率提高至少 1 个百分点,同时不降低次日留存和支付转化。”这比单纯说“新方案更好”更可操作,因为它同时定义了目标、幅度和风险边界。
实验单位
实验单位必须和干预对象一致。常见单位包括用户、设备、账号、请求、会话和商家。选择错误会导致污染:
- 如果同一个用户在不同设备上看到不同版本,用户级体验会被污染。
- 如果推荐排序按请求随机,而用户会反复刷新,实验组和对照组之间可能互相影响。
- 如果社交关系或市场供需存在强干扰,单个用户随机分流可能破坏独立性。
一般来说,用户体验类实验优先用用户或设备作为实验单位;广告、搜索、推荐的底层策略实验要额外检查请求级随机化是否会造成跨组干扰。
随机分流
A/B 测试要求同时性、同质性、唯一性和均匀性:
- 同时性:不同版本在同一时间窗口内运行,避免季节性、活动和流量结构变化造成偏差。
- 同质性:各组用户在关键维度上相似,差异主要来自随机误差。
- 唯一性:同一个实验单位只进入一个版本,不能重复计入多个版本。
- 均匀性:分流比例与设计一致,不能出现样本比例失衡。
分流通常通过稳定 hash 实现。比如对用户 ID 和实验 ID 做 hash,再按区间分配到 A 或 B。这样同一用户多次访问会稳定进入同一组。
同层互斥
A/B 测试不是只能有 A 和 B 两个版本,也可以有 A/B/C 或多方案实验。但多个实验并行时要处理互斥关系。
同层互斥的意思是:在同一流量层内,一个实验单位只能进入该层的一个实验或一个版本。如果两个实验都修改注册页,一个用户同时进入两个实验,就无法判断最终变化来自哪个实验。
并行实验可以分层:例如一层处理注册页 UI,另一层处理推荐策略。前提是两层之间的交互影响可接受,或者后续分析中明确建模交互项。
A/A 与 A/A/B 检查
A/A 测试是把用户随机分成两组,但两组都展示同一个版本。它不用于验证新方案,而用于检查实验系统:
- 分流是否均匀。
- 埋点是否一致。
- 指标计算是否稳定。
- 在没有真实干预时,显著性检验的假阳性率是否接近预期。
A/A/B 测试则是在正式实验中保留两个 A 组和一个 B 组。A1 与 A2 应该没有显著差异;如果 A1 和 A2 已经差异很大,A/B 的结论也要谨慎。
指标体系
主指标
主指标是实验决策的核心依据,一次实验最好只有一个主指标。比如:
- 注册流程实验:注册完成率。
- 推荐策略实验:点击率、观看时长或人均有效播放。
- 付费页实验:支付转化率或收入。
主指标必须和实验目标一致。如果目标是提升长期留存,却只看短期点击率,就可能得到错误优化方向。
护栏指标
护栏指标用于防止局部优化伤害整体系统。常见护栏包括:
- 留存、投诉、退款、卸载率。
- 页面性能、崩溃率、加载时延。
- 内容质量、风控命中、用户体验反馈。
实验结论不能只看主指标显著提升。如果主指标上升但护栏指标明显恶化,通常不能直接上线。
辅助指标
辅助指标用于解释机制,而不是替代主指标做决策。比如注册完成率提升后,可以继续观察各步骤漏斗、表单错误率和页面停留时间,帮助判断新方案为什么有效。
辅助指标越多,越容易出现偶然显著,因此它们更适合用于诊断和提出新假设。
最小可检测效应
最小可检测效应(Minimum Detectable Effect, MDE)是实验希望识别的最小业务变化。它应该来自业务判断,而不是事后根据结果倒推。
如果一个按钮文案预计只能带来 0.05% 的提升,但检测这个提升需要几千万样本,那么实验可能不值得做。反过来,如果只愿意检测 5% 的大提升,就可能错过稳定但更小的真实收益。
样本量、功效与实验时长
样本量不足是 A/B 测试最常见的问题之一。样本量太小会导致两个后果:
- 真实有效的方案也可能检验不显著。
- 显著结果往往高估真实效果,也就是所谓 winner’s curse。
设计实验时至少要明确三个量:
- 显著性水平 :常用 0.05,控制一类错误,即把无效方案误判为有效。
- 功效 :常用 0.8 或 0.9,控制二类错误,即真实有效但没有检出的风险。
- 最小可检测效应 :业务上值得检测的最小提升。
对于均值类指标,在两组方差接近、样本量相同的粗略情形下,每组样本量可以用下面的形式理解:
对于比例类指标,如果基准比例为 ,希望检测提升 ,也可以近似理解为:
这些公式的重点不是手算,而是理解关系:波动越大、想检测的提升越小、功效要求越高,所需样本量就越大。
实验时长也不能只由样本量决定。很多产品指标存在星期效应、活动效应和新奇效应,实验至少应覆盖一个完整业务周期。过早停止实验会放大偶然波动,尤其是在每天反复看 p-value 时。
统计检验
均值类指标
如果指标是连续数值,比如人均停留时长、客单价、单用户收入,可以比较两组均值。
当样本量足够大、方差已知或可以稳定估计时,可以使用 z 检验;更多情况下使用两独立样本 t 检验。实际业务中还要注意长尾分布,收入、时长这类指标经常高度偏斜,均值容易被极端值影响。
比例类指标
如果指标是转化率、点击率、留存率这类比例,可以使用两比例 z 检验。每个用户是否转化可以看作 0/1 变量,组内均值就是比例。
比例类指标解释直观,但要注意实验单位。如果一个用户产生多次点击,却把每次点击都当独立样本,标准误会被低估,显著性也会被夸大。
列联表与卡方检验
如果数据组织成列联表,例如版本 A/B 与用户是否留存、是否购买、是否投诉等分类变量,可以使用卡方独立性检验。它检验的是两个分类变量之间是否独立。
样本过小时,卡方近似可能不稳定,需要考虑精确检验或合并稀疏类别。
复杂指标与 Bootstrap
有些指标不是简单均值或比例,比如用户生命周期价值、分位数、留存曲线面积、多个行为聚合后的复合分数。此时解析方差可能很难写。
一种实用方法是 bootstrap:以实验单位为抽样单位重复重采样,构造指标差异的经验分布,再估计置信区间。它不消除实验设计问题,但能让复杂统计量的误差估计更可操作。
常见风险
多重比较
如果同时看 50 个指标,即使所有方案都无效,也很可能有几个指标偶然显著。多重比较会提高假阳性率。
解决方式包括:提前声明主指标、控制指标数量、使用多重检验校正,或者把辅助指标只作为解释材料。
窥探数据与提前停止
每天看一次结果,显著就停,不显著就继续,这会破坏原本的显著性水平。因为你实际上进行了多次检验,只是没有承认这一点。
如果必须中途监控,应提前设计序贯检验、固定检查点或只监控护栏指标,不把随时出现的显著性当最终结论。
样本比例失衡
如果设计是 50/50 分流,但最终 A 组和 B 组样本量明显不匹配,需要先排查分流、埋点、过滤条件和数据回流,而不是直接分析结果。
样本比例失衡可能来自实验平台错误,也可能来自某个版本导致用户无法完成曝光或埋点上报。
季节性与外部事件
节假日、促销、版本发布、广告投放和突发事件都会改变流量结构。A/B 测试强调同时性,就是为了降低这些因素影响。但如果外部事件对两组影响不同,实验仍然会受污染。
干扰效应
有些实验不满足“一个用户的处理不会影响另一个用户”的假设。社交网络、市场撮合、推荐生态和广告竞价都可能存在干扰效应。
此时简单用户级随机分流可能不够,需要考虑聚类随机化、市场级实验或更复杂的因果推断设计。
显著但没有业务价值
样本量极大时,很小的差异也可能统计显著。但统计显著不等于值得上线。最终仍要看收益、风险、开发成本和长期影响。
决策与上线
一个实验可以大致形成几类结论:
- 主指标显著提升,护栏指标稳定:可以灰度扩大,并继续监控。
- 主指标不显著,但方向稳定且业务重要:考虑增加样本量、延长时间或重新设计实验。
- 主指标显著下降或护栏恶化:回滚或停止实验。
- 结果互相矛盾:先分析机制,不要只挑有利指标解释。
上线也不应该是实验结束后的瞬间动作。更稳妥的方式是逐步扩大流量,观察线上稳定性,并在关键实验上保留复验能力。A/B 测试给出的不是绝对真理,而是在特定样本、特定时间和特定实验设计下,对方案效果的统计证据。
相关理论位置
A/B 测试背后的主要统计知识包括双总体均值检验、比例检验、列联表卡方检验、假设检验的功效与最小样本量。实际使用时,实验设计质量通常比具体检验公式更重要;如果分流、指标和实验单位错了,后面的统计计算再精细也只能给出错误问题的精确答案。
- Title: A/B Testing: Experiment Design, Sample Size, and Launch Decisions
- Author: Hyacehila
- Created at : 2025-04-14 07:32:28
- Link: https://hyacehila.github.io//blog/2025/04/14/ab-testing-learning-notes/
- License: This work is licensed under CC BY-NC-SA 4.0.