从手动实验到实验平台
团队刚开始做 A/B 测试时,通常是「手动实验」:产品经理想个假设,让研发改个开关,运营手动圈一批用户,数据同学跑个报表。跑一两个实验没问题,跑几十个就开始乱——实验相互干扰、样本重叠、口径不一致、结论没人记录。当实验成为常态,就需要一个「实验平台」来承接:统一分流、统一指标、统一报表、统一管理。
实验平台不是工具,是把「拍脑袋决策」替换成「可证伪的实验文化」的基础设施。
下面把实验平台的核心环节拆开讲,每一环都是工程化要解决的具体问题。
- 样本重叠多实验共用用户,结果互相污染。
- 口径不一同一个指标,各算各的。
- 结论丢失跑完不记录,下回重做一遍。
分流机制:用户怎么分组
实验平台的第一块地基是「分流」。原则有三条:随机、稳定、互斥。随机保证实验组和对照组在统计上可比;稳定保证同一个用户在整个实验期间始终看到同一个版本(防止他反复横跳);互斥保证不同实验占用的用户不重叠,避免一个用户同时被两个实验影响。工程上常用「用户 ID 哈希分层」实现稳定分流,用「实验域」实现互斥。
下面这段小脚本,演示了基于哈希的分流原理。
# 稳定分流(简化示意)
import hashlib
def bucket(user_id, salt, n):
h = hashlib.md5((user_id + salt).encode()).hexdigest()
return int(h, 16) % n
print("用户落在实验组:", bucket("user-1001", "exp-13", 2))
指标与样本量设计
实验开始前,先回答两个问题:看什么指标、要多少样本。指标要分「主指标」和「护栏指标」:主指标回答「改版有没有用」,比如转化率、留存;护栏指标防止「捡了芝麻丢西瓜」,比如人均时长骤降、投诉率上升。样本量则取决于预期效果大小和方差——想检测出 1% 的提升,需要的样本远大于检测 5% 的提升。
下面这段小脚本,演示了样本量估算的最简逻辑。
# 样本量估算(简化)
import math
def sample_size(effect, base, alpha=0.05, power=0.8):
z_a = 1.96
z_b = 0.84
p = (base + effect) / 2
return int((2 * p * (1 - p) * (z_a + z_b) ** 2) / effect ** 2)
print("检测 1% 提升需样本:", sample_size(0.01, 0.10))
print("检测 5% 提升需样本:", sample_size(0.05, 0.10))
样本不够就跑实验,是统计上最常见的翻车方式。
统计显著性:别急着下结论
实验最大的陷阱是「过早下结论」。上线三天看到转化率涨了 0.5 个点,就急着全量——样本太少,波动远大于效果,这个数字很可能只是噪声。标准做法是:预估样本量,跑够周期,看置信区间与 p 值,同时观察多个指标的一致性。还要警惕「多重比较」:指标看得越多,越容易碰到一个假阳性。
下面这段小脚本,演示了用置信区间判断结果是否可靠的基本思路。
# 置信区间(简化示意)
import math
def ci(p, n):
se = math.sqrt(p * (1 - p) / n)
return (p - 1.96 * se, p + 1.96 * se)
print("对照组 95% CI:", ci(0.100, 10000))
print("实验组 95% CI:", ci(0.105, 10000))
两个区间没有重叠,才敢说「有显著差异」。
实验平台的能力清单
一个成熟的实验平台,通常包含几块能力:可视化配置界面(产品不用依赖研发开开关)、统一的分流服务(哈希分层 + 实验域互斥)、指标中心(口径统一、自助报表)、样本量计算器、以及实验生命周期管理(排队、上线、评审、下线、归档)。平台的价值是把「实验」从研发流程变成「产品自助能力」。
- 配置自助:产品直接建实验、设比例、定指标。
- 分流统一:随机、稳定、互斥由平台保证。
- 指标中心:口径一处定义,处处一致。
- 评审与归档:实验结论沉淀成决策资产。
平台把实验的门槛降低,实验的数量和质量才会一起上来。
实验文化的养成
工具再好,用不起来也没用。实验文化的关键是「让数据说话成为默认动作」:新功能上线前先问「有没有跑实验」,结论要附置信度,失败实验不追责反而存档。管理层要示范「允许实验失败」——如果每个实验失败都要挨骂,产品经理会永远只敢跑「肯定赢」的实验,那实验就失去了探索意义。
- 默认动作:重要改动先实验,再全量。
- 结论留档:不论成败,都记录假设与数据。
- 容忍失败:实验失败是成本,更是信息。
- 定期复盘:把实验结论回灌到产品路线图。
实验文化不是「用工具」,是「用证据做决策」的组织习惯。
让实验成为产品加速器
最后回到本质:实验平台和 A/B 测试都不是目的,目的是「更快地找到更好的产品方案」。实验成熟的产品团队,决策速度反而更快——因为不再靠开会吵架定方案,而是「两个版本都上,数据说话」。把实验嵌入产品流程:假设生成、优先级评估、实验设计、数据解读、复盘归档,形成完整的循环,产品迭代就有了可验证的加速器。
- 假设先行:每次实验先写清楚要验证什么。
- 小步快跑:小改动小样本,大改动分阶段。
- 数据回灌:实验结论进入路线图与文档。
- 长期坚持:实验是复利,越跑越准。
当「试试看」变成「实验一下」,产品的每一步都踩在证据上。