
A/B 测试样本量确定:一门关于"多少才够"的科学
你在电商公司上班,有一天产品经理跑过来跟你说:"我们想改一下购物车的按钮颜色,看看能不能提升转化率。"你觉得这是个好主意,于是准备上线一个 A/B 测试。但刚准备发布时,你突然意识到一个关键问题——这个测试需要多少人参与?如果人太少,结果可能不靠谱;如果人太多,测试周期太长,等到结果出来,旺季都结束了。
这个问题其实困扰过无数产品和数据分析师。样本量计算听起来很学术,但它本质上回答的是一个很实际的问题:在资源有限的情况下,我需要收集多少数据,才能对实验结果有信心?今天我想用一种比较接地气的方式,聊聊 A/B 测试中样本量确定的方法。
为什么样本量不能"随便定"
我见过不少团队做 A/B 测试时,样本量是"拍脑袋"定的。比如"我们先跑一周看看",或者"每组 1000 人应该够了"。这种做法的问题在于,它没有考虑统计显著性这个核心概念。
举个生活中的例子。假设你有两个硬币,其中一个可能稍微重一点(也就是正面朝上的概率不是 50%)。如果你只抛 10 次,即便有问题的硬币正面出现了 7 次,你也不敢说它有问题——毕竟正常硬币偶尔也能出现这种结果。但如果你抛 10000 次,正面出现 7000 次,那就有把握多了。
A/B 测试的道理一模一样。样本量太小,噪音会掩盖真实的差异;样本量太大,又浪费时间和资源。所以确定合适的样本量,本质上是在"犯错误的风险"和"投入的成本"之间找平衡。
样本量计算的三个基石概念
在具体计算之前,你需要理解三个核心参数。它们就像三角形的三个角,共同决定了样本量的大小。

1. 效应量(Effect Size):你期待改变多大
效应量描述的是你期望检测到的最小变化幅度。假设你现在的转化率是 10%,你希望通过优化把它提升到 12%。那么你的效应量就是 2 个百分点。
有意思的是,效应量的大小跟你需要的样本量成反比。想检测的变化越小,需要的样本量就越大。这很符合直觉——细微的变化更难被捕捉到,就像在嘈杂的房间里听清一个人的低声细语,你需要凑得更近(更多数据)才能听清楚。
在实际工作中,我们通常会根据业务需求来确定效应量。比如,提升 1% 的转化率对业务有没有价值?如果有,这个 1% 就是你的目标效应量。
2. 统计显著性水平(Significance Level):你愿意承担多大的假阳性风险
统计显著性水平,通常用 α 表示,常见的取值是 0.05 或 5%。它的意思是:当实际上没有差异时,你错误地认为有差异的概率。
还是用硬币的例子。α = 0.05 意味着,如果两个硬币真的没区别,你仍有 5% 的概率观察到足够大的差异,从而错误地得出"它们有区别"的结论。这个错误在统计学里叫"第一类错误"或"假阳性"。
有些场景下,我们会用更严格的 α = 0.01。比如涉及到用户资金安全的功能,宁可少发现一些问题,也不想因为误报而过度打扰用户。而有些探索性实验可能会用宽松的 α = 0.10,为的是避免错过潜在的机会。
3. 统计功效(Statistical Power):你有多大概率发现真实存在的差异

统计功效通常用 1-β 表示,其中 β 是第二类错误(假阴性)的概率。功效说的是:当两个方案确实有差异时,你成功检测到这个差异的概率。
行业标准是 80% 的功效,也就是说,如果真的存在你关注的效应量,你有 80% 的把握能在实验中检测到它。为什么是 80%不是更高的 95%?因为提升功效需要显著增加样本量,而 80% 是一个在成本和可靠性之间比较合理的平衡点。
样本量计算的具体方法
有了这三个参数,我们就可以计算样本量了。最常用的是基于 Z 检验的公式,适用于大样本场景。
公式法:两个比例的比较
这是电商、互联网产品中最常见的情况——比较两个转化率(比如点击率、购买率、留存率)。公式看起来有点复杂,但核心逻辑很简单。
你需要注意几个关键点。首先,两组的样本量通常假设相等,这样计算最方便,结果也最稳健。其次,如果你预期两组的变化方向相反(比如一组上升,一组下降),计算方式会有些不同,但原理是一样的。
举个例子。假设对照组转化率 p₁ = 5%,预期实验组转化率 p₂ = 5.5%。使用 α = 0.05 和 80% 的功效,算下来每组大约需要 31000 人左右。如果你用的是专业的样本量计算工具或者 R 语言的 power 包,结果会八九不离十。
工具法:让计算变得简单
好消息是你不需要手动算公式。现在有很多现成的工具可以直接用。
对于非技术人员,我推荐一些在线计算器。你只需要输入基准转化率、预期提升量、显著性水平和功效,点击按钮就能得到结果。对于技术人员来说,Python 的 statsmodels 库和 R 语言的 pwr 包都是不错的选择,它们不仅可以计算样本量,还能在实验结束后帮你做功效分析。
在我们 Raccoon - AI 智能助手的产品中,也内置了样本量计算的功能。你只需要描述你的业务场景,AI 会自动推荐合适的参数设置,并给出样本量建议。这对于不太熟悉统计的产品经理和运营同学来说,特别友好。
特殊情况下的样本量调整
上面的方法适用于大多数场景,但实际工作中总有一些特殊情况需要额外考虑。
当你需要同时测试多个变量
如果你想做多变量测试(同时测按钮颜色、文案和位置),样本量的计算会更复杂。每增加一个测试变量,你需要测试的组合数量会指数级增长,样本量需求也会大幅上升。
一个务实的做法是采用正交实验设计,或者考虑使用多臂老虎机(Multi-Armed Bandit)这类自适应方法。后者可以根据实时的实验数据动态调整流量分配,在发现某个方案明显更好时给它更多流量,从而提高整体效率。
当你的指标是均值而不是比例
有些指标是连续变量,比如客单价、用户停留时长、订单金额。这时候你需要用 t 检验的样本量计算公式,核心参数从"比例"变成了"均值"和"标准差"。
标准差的估计往往是个难点。如果你没有历史数据,可以先做一个小规模的 pilot 实验,用 pilot 的数据来估计标准差,再据此计算正式的样本量。
当用户会多次产生行为
如果你的实验周期较长,同一个用户可能产生多次转化(比如复购场景),传统的独立样本假设可能不成立。这时候需要考虑使用混合效应模型,或者至少在计算样本量时加入ICC(组内相关系数)这个参数。
实践中常见的坑
理论和实践之间总是有差距的。我见过一些团队在样本量计算上踩过的坑,这里分享几个给大家提个醒。
第一个坑是"基准率谬误"。有些团队在计算样本量时,用的是"预期转化率"而不是"当前基准转化率"。比如他们想从 5% 提升到 6%,但计算时错误地用了 6% 作为基准。这会导致样本量估计偏小,实验结果不可靠。
第二个坑是"功效遗忘"。样本量算好后,有些团队在实验过程中遇到流量不够的情况,就临时决定提前结束实验。这其实是在没有改变任何条件的情况下,提高了第一类错误的概率——你本来承诺检测 80% 的真实差异,现在可能只能检测到 60% 或更低。
第三个坑是"多重比较问题"。如果你同时运行很多个 A/B 测试,又没有做多重比较校正,假阳性的概率会大大增加。比如你同时跑了 20 个独立实验,即使它们都没有效果,按 5% 的显著性水平,也可能有 1 个"显著"的结果是假阳性。
如何向非技术同事解释样本量
在团队协作中,你可能需要向产品经理或领导解释为什么需要这么多用户。下面这个类比我觉得挺管用的。
想象你要在两条河流中检测污染物。第一条河很干净,只有微量的污染物;第二条河被你放了药剂,预计会有明显变化。如果你只取一杯水检测第一条河,可能什么都检测不到;但如果是第二条河,可能一杯就够了。样本量就像是取多少杯水——河流本身越清澈(效应量越小),你需要取的水就越多。
这个类比帮助大家理解了为什么同样的实验,有些需要几十万人,有些几千人就够了。关键是看你要检测的变化有多大。
一点个人感悟
做 A/B 测试这些年,我最大的体会是:样本量计算不是一次性的工作,而是贯穿整个实验生命周期的。在实验设计阶段,你需要计算样本量来规划实验周期;在实验进行阶段,你需要监控实际样本量是否按预期累积;在实验结束阶段,你还需要做功效分析,评估实验结果的可信度。
有些团队把 A/B 测试当成一个简单的"上线前小测验",测完就结束了。但真正有价值的做法是把实验当作一个持续学习和迭代的过程。每一次实验,无论结果是显著还是不显著,都是宝贵的数据资产。重要的是建立正确的心态——不是为了证明自己对,而是为了发现什么对用户真正好。
希望这篇文章能帮你在下一次 A/B 测试时,对"需要多少人"这个问题有更清晰的认识。如果你正在寻找一个工具来简化样本量计算和实验分析的流程,可以试试 Raccoon - AI 智能助手。它不仅能帮你快速算出合适的样本量,还能在实验全过程中提供智能化的数据洞察支持。




















