欢迎访问我的博客,有问题可以在任意文章底部留言评论

A/B测试怎么做?从假设、样本量到结果分析的完整流程

AB测试 Haran 10年前 (2016-09-09) 8308次浏览 0个评论

更新时间:2026年8月16日

A/B测试是一种通过随机对照实验验证产品改动是否有效的方法,广泛应用于网站、App、广告投放和产品增长。

例如,一个着陆页目前使用“注册”作为按钮文案,注册率为5%。团队认为改成“免费注册”可能提高注册率。

可以将用户随机分成两组:

  • 对照组A:按钮文案为“注册”;
  • 实验组B:按钮文案为“免费注册”。

如果两组用户除了按钮文案外,其他条件尽量一致,就可以比较注册率差异,并判断文案修改是否产生了真实影响。

不过,A/B测试并不是简单地“上线两个版本,看看哪个数据高”。一个可靠的实验至少需要完成:

发现问题 → 提出假设 → 确定指标 → 计算样本量 → 随机分流 → 验证实验数据 → 分析结果 → 决定是否发布

第一步:提出可以验证的假设

A/B测试通常从业务问题开始,一个完整的实验假设应包括:

  • 当前存在什么问题;
  • 准备修改什么;
  • 为什么这个修改可能有效;
  • 预计影响哪个指标;
  • 预期提升幅度是多少。

例如:

当前着陆页注册率为5%。我们认为“免费注册”比“注册”更能降低用户的决策压力,因此预计将注册率至少提高到6%。

这个假设包含:

项目 内容
当前问题 注册率只有5%
实验改动 “注册”改为“免费注册”
作用机制 强调免费,降低用户顾虑
关键指标 注册率
最小目标 从5%提高到6%

AB测试的第一步是分析业务数据,确定当前最关键的改进点,提出优化改进的假设。

并不是所有产品改动都需要经过A/B测试,以下情况通常不适合等待完整实验结果:

  • 严重Bug、安全漏洞或合规问题;
  • 已经影响支付、登录等核心流程的故障;
  • 法律、平台政策或监管要求必须实施的修改;
  • 流量过低,无法在合理时间内获得足够样本;
  • 改动会影响所有用户,无法稳定地划分实验组;
  • 两个版本之间可能发生明显的数据污染;
  • 改动结果不可逆,风险无法控制。

竞争对手已经采用某个功能,也不能直接证明该功能适合你的用户。除非属于必须快速跟进的业务变化,否则仍建议通过数据、用户研究或小范围实验验证。

第二步:确定实验指标

启动实验前,需要先确定用什么指标判断结果。

不要等实验结束后再从几十个指标中寻找“显著提升”的指标,否则很容易挑中偶然波动。

实验指标通常分为三类。

主要指标

主要指标用于决定实验是否成功,一般只设置一个。

本例中的主要指标是:注册率 = 完成注册的用户数 ÷ 进入实验的用户数

选择主要指标时,需要明确指标名称、分子和分母、用户级还是会话级、统计窗口、是否去重、事件触发条件。

辅助指标

辅助指标用于解释主要指标为什么变化。

例如:注册按钮点击率、表单开始率、表单完成率、表单错误率、页面退出率。

辅助指标不应过多。通常选择3~5个与实验机制直接相关的指标即可。

 

护栏指标

护栏指标用于防止实验在改善局部指标的同时损害整体业务。

例如:付费转化率、退款率、客服投诉率。

假设“免费注册”将注册率从5%提高到6%,但注册用户的付费率明显下降,这个版本未必值得全面发布。

统计显著只说明差异不太可能完全由随机波动造成,不代表这个变化一定有商业价值。

 

第三步:设计实验版本

最简单的A/B测试包含一个对照组和一个实验组:

组别 按钮文案
A:对照组 注册
B:实验组 免费注册

为了判断结果是否来自按钮文案,两组之间应尽量只改变这一项。

 

第四步:确定随机分流单位

实验分流可以按不同对象进行:用户、设备、会话、账号、门店、城市、广告活动。

网站和App实验通常优先按用户或账号分流,并保证同一用户持续看到同一个版本。

如果同一用户第一次看到A版本,第二次又看到B版本,会导致:

  • 用户体验不一致;
  • 两组数据相互污染;
  • 新奇效应更难判断;
  • 转化无法稳定归因。

登录产品可以使用账号ID分流;匿名网站通常使用第一方Cookie或设备标识。跨设备场景则需要考虑同一个人可能进入不同实验组的问题。

分流和分层有什么区别?

当企业同时运行多个实验时,通常需要实验分层。

互斥实验

同一用户只能进入其中一个实验。

适合:

  • 两个实验修改同一个页面元素;
  • 两个实验可能互相影响;
  • 需要避免实验之间发生交互。

 

正交或分层实验

同一用户可以同时进入多个相互独立的实验。

例如:

  • 实验一修改首页按钮;
  • 实验二调整搜索结果排序;
  • 实验三测试结算页提示。

只有在这些实验不会明显互相影响时,才适合并行运行。

“同时参加多个实验”并不一定提高效率。如果实验之间存在交互,结果会变得难以解释。

 

第五步:计算最小样本量

在做AB测试之前,还需要确定足够的样本量,以便确定活动在评估结果之前应运行的时间。

样本量主要取决于:基准转化率;MDE(最小可检测效果);显著性水平;统计功效;实验版本数量;流量分配比例;指标波动程度。

通常是根据AB测试计算所需的最小样本量最小总样本量与置信度(默认95%)、统计功效(默认80%,通常需要80%以上)和核心指标相关,比如现在的注册率是5%,要提高到6%,至少需要多少样本呢?

可以用Adobe Target的Sample Size Calculator去计算:

A/B测试怎么做?从假设、样本量到结果分析的完整流程

是要8155个样本。

注意:转化率越低,检测到相同幅度提升所需样本越多

 

第六步:估算实验时间

实验时间可以先用下面的方式估算:

测试时间=最小总样本量/每天可获得样本量的取整。

每个实验组最小总样本是8155,每天可获取样本量是2000,那么测试时间=8155/2000*2=8.155,上图的中的Days to Complete Test就是测试时间,所以测试时间需要9天。

 

最小总样本量和测试时间是负相关,需要平衡好两者的关系,一般是测试时间越短越好,但要考虑到:

  • 周内效应:建议测试是最少是7天,包含完整的一周,消除周期性波动的影响,国内很多互联网公司是用7天作为一个测试周期,如果可能,按14天作为一个测试周期,谷歌优化工具Optimize是建议14天作为一个测试周期
  • 新奇效应:实验新上线可能会导致新用户好奇,老用户的排斥,导致数据影响,可能需要更长的时间,或划分新旧用户分别看数据。(UI变化的AB测试要着重考虑这个)

 

第七步:实施前检查数据质量

实验正式运行前,建议先检查:

  • A、B组是否按照预期比例分流;
  • 同一用户是否始终进入同一组;
  • 两组页面是否正常显示;
  • 关键事件是否重复或遗漏;
  • 实验参数是否发送到分析平台;
  • 主要指标的分子和分母是否正确;
  • 页面速度是否因实验代码而下降;
  • 机器人和内部员工流量是否需要排除。

检查SRM

SRM(Sample Ratio Mismatch,样本比例不匹配)表示实际进入各实验组的用户比例与预设比例存在异常差异。

例如,实验计划50/50分流:

A组:60%

B组:40%

这种差异可能来自:
  • 分流逻辑错误;
  • 某个版本加载失败;
  • 埋点缺失;
  • 用户被重复计算;
  • 特定浏览器无法进入某一版本;
  • 过滤规则不一致。

SRM通常意味着随机化或数据收集存在问题。在解决问题之前,不应直接比较两组的转化率。

 

第八步:运行实验时不要随意停止

传统固定样本A/B测试最常见的错误,是每天查看结果,一旦出现95%显著性就立即停止。

这种做法会增加假阳性概率。

固定周期实验应在开始前计算样本量,并等待达到预设样本量后再做最终判断。

只有使用专门的序贯检验或支持持续监控的统计引擎时,才可以按照相应规则提前停止实验。

因此,实验方案中应提前写明:计划样本量、最短运行时间、最长运行时间、显著性水平、提前停止规则、异常情况下的终止条件。

 

第九步:分析实验结果

不同指标需要使用不同统计方法。

指标类型 示例 常见分析方法
二元转化 注册、购买、点击 两比例Z检验、卡方检验
小样本二元数据 低频购买、稀有事件 Fisher精确检验
连续指标 收入、时长、订单金额 Welch’s t检验
明显偏态数据 收入、长尾时长 Bootstrap、Mann–Whitney U
计数指标 订单数、事件次数 Poisson或负二项模型

分析时不要只看P值,还应同时查看A、B组指标值、绝对差异、相对提升、置信区间、实际样本量、护栏指标、SRM和实验运行时间。

例如:

A组注册率:5.0%
     B组注册率:5.8%
     相对提升:16%
     95%置信区间:-0.1%~1.7%

即使B组表面上更高,只要置信区间仍包含0,就不能排除真实效果为零或负面的可能。

统计不显著不等于表示当前数据不足以证明差异,此时不能因为结果不理想就不断延长实验。

应先检查:

  • 是否已经达到预设样本量;
  • 是否达到最长实验时间;
  • 实验是否存在SRM或埋点问题;
  • 实际差异是否小于MDE;
  • 置信区间是否仍然很宽;
  • 假设和改动是否足够强。

如果已经达到计划样本量但仍不显著,通常应将结果记录为“未发现足够证据证明实验组更好”,然后结束实验。

后续可以:

  • 提出更强的假设;
  • 增大版本之间的差异;
  • 改进目标人群;
  • 重新选择主要指标;
  • 设计新的独立实验。

不要把同一次实验无限延长,直到出现想要的结果

 

第十步:根据业务价值决定是否发布

实验结束后,常见结论包括:

实验组胜出

满足以下条件时,可以考虑发布:

  • 主要指标达到统计要求;
  • 实际提升具有业务价值;
  • 护栏指标没有明显恶化;
  • 数据质量检查通过;
  • 技术和运营成本可以接受。

即使实验组胜出,也可以先通过灰度发布逐步扩大流量,而不是直接覆盖100%用户。

对照组胜出

如果实验组显著更差,应维持原版本,并分析假设为什么没有成立。

失败的实验仍然有价值,因为它排除了一个看似合理但实际无效的方案。

差异不显著

如果达到预设样本量后仍不显著,应记录为没有足够证据证明实验组优于对照组。

是否仍然发布,需要结合开发和维护成本、用户体验、品牌一致性、技术风险、未来产品方向。

不显著并不一定意味着绝对不能发布,但不能把它描述为实验胜利。

 

常见问题

流量少还能不能做A/B测试?

如果流量较少,可以:

  • 测试幅度更大的改动;
  • 选择更高频的上游指标;
  • 延长实验周期,但提前设定上限;
  • 聚焦高价值页面或用户;
  • 使用用户访谈、可用性测试等定性研究;
  • 汇总多个相似页面,但确保用户和场景可比。

A/B测试与灰度发布有什么区别?

A/B测试和灰度发布的目的不同。

对比项目 A/B测试 灰度发布
主要目的 比较两个版本的效果 控制新版本发布风险
是否需要对照组 通常需要 不一定
是否随机分流 通常需要 可以按比例、地区或账号发布
主要关注 因果效果 稳定性和风险
最终结果 选择更有效的版本 逐步扩大到全部用户

常见做法是:

A/B测试验证效果 → 灰度发布验证稳定性 → 逐步扩大流量 → 全量发布

 

如何选择A/B测试工具?

可根据团队规模和实验对象选择。

网站和营销页面可以选择Adobe Target,Optimizely,VWO, AB Tasty,Kameleoon。

产品功能和App实验可以选择Optimizely Feature Experimentation,LaunchDarkly,Statsig,Firebase A/B Testing;。


有疑问可以在底部留言
喜欢 (1)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址