想象你经营一家奶茶店,想知道新配方是否真的比旧配方好喝。请 3 个朋友试吃,即使新配方确实更好,也会被大家的口味差异掩盖;请全城 10 万人试喝,结论固然可靠,试吃成本却高得离谱。样本量计算回答的正是“到底请多少人来试吃才够”:它不靠拍脑袋,而是由四个约定决定——你愿意承担多大的误判风险、希望多大概率发现真实差别、旧配方现在表现如何、以及你觉得多大的提升才值得折腾一次。学会算样本量,你就能在实验开始前科学地排出流量与周期,避免实验白跑、流量白烧。
会算样本量是 A/B 测试专业与业余的分水岭。它帮你避免实验白跑、流量白烧,让每次产品决策都有可靠的统计底气——这是数据驱动决策的必备技能。
可视化演示
通过神经网络训练过程展示Dropout正则化如何随机丢弃神经元防止过拟合,对比训练损失与验证损失的变化趋势。
本节配有交互动效(进入视口后自动加载,约 3KB)。
训练模式:Dropout激活 每个训练步随机丢弃50%的隐藏层神经元,防止神经元共适应 红色X标记表示被丢弃的神经元,不参与前向传播和反向传播 p(drop)=Dropout Rate, y=x/(1-p) Dropout通过随机失活减少神经元间的复杂共适应关系
先算账再开饭
你经营一家奶茶店,请了 3 位朋友当试吃员,想判断新配方是否更胜一筹。3 个人的口味天差地别:有人嗜甜、有人怕甜、有人觉得两杯都一样。哪怕新配方确实更好,这点差异也淹没在大家的口味噪声里。反过来,你要是请全城 10 万人来试喝,结论自然无懈可击,但试吃的成本、时间和精力都远远超出收益。办一场实验,最先要回答的问题永远是:到底请多少人才算够?
A/B 测试也是同一道理。我们随机把用户分成两组,一组看旧页面(对照组),一组看新页面(实验组),终极目标是比较两组转化率谁高谁低。但用户的转化行为本身就充满随机性:今天流量恰好来自周末休闲用户,明天恰好赶上大促。如果每组只有几十个人,真实提升会被这层随机噪声盖住,实验就像在嘈杂的集市里听人耳语——什么都听不真切。样本量太少,统计功效(检测出真实效果的概率)不足,真实效果检测不出来;样本量太多,实验拖得久、流量烧得快,还挤占了其他实验的机会。
计算样本量,就是在实验正式开始前做一次“预算规划”。它告诉你:给定可接受的风险和想要的分辨精度,最少需要多少用户才能把信号从噪声里拎出来。这不仅是数学题,更是实验科学的地基——地基没打好,后面跑得再热闹也是白搭。一家成熟的团队,不会在没算样本量之前就贸然上线实验,因为那等于闭着眼睛投钱。
四个关键参数
在奶茶店试吃之前,你得先把评审规则说清楚:第一,我们能承受“把好配方误判成坏配方”的风险吗?第二,我们希望有多大的把握发现“新配方确实更好”?第三,旧配方的真实水平是什么?第四,新配方要提升多少才值得换?这四个问题,对应着样本量计算的四个关键参数——它们就像是试吃评审团的四项约定,缺一不可。
第一个是显著性水平 α(通常取 0.05),代表“冤枉”的概率——新配方其实不差,却因为随机波动被误判为没有提升。α 越小,评审越严格,需要的试吃者也越多。第二个是统计功效 1-β(通常取 0.8),代表“发现真相”的能力——新配方确实更好时,实验能检出这个差异的概率。第三个是基线转化率 p₁,即当前旧版本的真实转化水平,它是实验的“参照系”,就像试吃前先要知道旧配方的受欢迎程度。第四个是最小可检测效应 MDE(记作 δ),即你心里认为“值得动手改配方”的最小提升幅度——如果新配方只提升 0.1%,根本不值得冒风险换配方,那实验就无需为此准备海量样本。
四个参数环环相扣:α 管误报,1-β 管漏报,p₁ 管参照,δ 管目标。它们共同决定了样本量的量级。任何一个参数拍脑袋乱设,样本量都会跟着跑偏,就像评审规则随意修改,试吃结果自然失去公信力。理解这四个参数,是读懂一切样本量方法的前提。
参数影响规律
评审席的松紧程度直接决定请客人数。假设你把标准收紧:误杀好配方的一点点风险都不想承担(α 从 0.05 降到 0.01);同时要求 95% 的把握发现真实提升(功效从 0.8 提到 0.95);还定下“新配方必须提升 1% 才算数”这种苛刻目标(δ 变小)。请的试吃者必然成倍增加。反之,如果你对误判很宽容、只求七成把握、只在乎 5% 以上的大提升,那请少量试吃者就够了。
四个参数对样本量的影响方向可以这样记:α 越小、功效越高、MDE 越小,所需样本越大。其中 MDE 的影响是平方级的——它出现在样本量公式的分母上,MDE 缩小一半,样本量就要扩大 4 倍,这就是实验设计中最容易踩的“平方诅咒”。很多团队把 MDE 设得过于乐观(比如想检测 0.5% 的提升),算出来要跑好几个月,实验根本做不下去——不是样本量公式错了,而是评审标准定得太严。
基线转化率的影响则是“两头小、中间大”:p 越接近 0.5,方差 p(1-p) 越大,样本需求越高;p 靠近 0 或 1 时,转化事件非常稀有或非常普遍,方差变小,样本需求也降低。换句话说,转化率本就五五开的产品最难做实验——就像一群口味极为分散的顾客,你想分辨出细微的配方差异,自然要请更多人。
效应量
在安静的包间里尝味和在嘈杂的大堂里尝味,分辨差异的难度完全不同。同样是“新配方好喝一点点”,如果顾客口味本来就千差万别,你就需要更多人来试吃才能得出可靠结论。效应量的本质,正是把“差异的绝对值”和“个体波动的程度”放在同一把尺子上比较。两组差异哪怕绝对值相同,如果数据本身波动很大,就是“弱效应”,需要更多样本才能看清;反之就是“强效应”。
对于转化率这类 0-1 数据,一种常用的效应量定义是:
效应量的价值在于:它把“10% vs 12%“和”40% vs 42%”这两个看似同等的目标区分开来——前者接近低基数、波动小、易检测;后者接近五五开、波动大、更难检测。理解了效应量,你就能解释为什么有些实验跑一周就有结论,有些实验跑一个月还是没动静——它们的分辨难度本来就不在同一个量级。
- 分子(提升幅度)p₂ 是实验组转化率,p₁ 是对照组转化率,两者相减就是实验想要捕获的真实差异,也是 MDE 的候选值。
- 分母(波动基准)p̄ 是两组转化率的平均值,p̄(1-p̄) 是该平均转化率下的方差,再开根号把方差还原成标准差,代表数据波动的典型幅度。
- 整体(标准化效应量)差异除以标准差,得到“每个波动单位里包含多大差异”,这就是效应量 d。d 越大,效应越强,需要的样本越少。
计算公式
把四个参数和效应量放进同一个算式里,就得到经典的样本量公式(两组样本相等时):
实际工作中,当两组转化率接近时,常用更简洁的合并方差近似:
- 合并方差项p̄(1-p̄) 用平均转化率近似两组的噪声水平,乘以 2 是因为两组各贡献一份方差。
- 分母的效应量δ² 是 MDE 的平方,代表目标信号的强度,δ 越小分母越小、所需样本越大。
- 整体组装两条 z 分数之和的平方乘以合并方差,再除以信号平方,得到干净利落的简化公式,也是各类在线计算器最常用的版本。
实操流程
定好试吃名单,就能排期开张了。把你的参数代入公式:α=0.05、功效=0.8、基线转化率 p₁=10%、MDE=2%。先用正态分布反函数求 z 值(z_{1-α/2}=1.96,z_{1-β}=0.84),再代入简化公式:n ≈ 2×(1.96+0.84)²×0.11×0.89÷0.02² ≈ 3837。也就是说,每组需要约 3837 个用户,两组总共约 7674 人。
接下来对照你的日流量估算周期。如果产品每天有 1 万流量,按 50% 分流到实验,每组每天得 5000 人,不到 1 天就能跑完;如果每天只有 1000 流量,每组每天 500 人,则需要约 8 天。这一步把抽象的“样本量”翻译成具体的“排期”,让项目经理一看就知道实验要花多久。
最后检查可行性:如果算出来要跑三个月,说明目标太精细或标准太严,需要回调整参数——通常优先放大 MDE(从 1% 放到 2%),或者放宽 α。实践中还可以借助在线样本量计算器(如 Evan Miller 的经典工具)和各类统计平台快速验证。算完、排期、上线、看结果——每一步都有章可循,试吃大会才能开得明明白白。
AI 应用场景
产品经理规划改版实验
阶段:实验设计阶段
解决的问题:产品经理做页面改版时容易凭感觉定实验时长,要么跑两周没结论,要么跑一个月浪费流量。用样本量计算公式,可以提前算出每组需要多少用户,再对照日活跃用户数确定实验周期,让排期有理有据。
具体案例:某电商 App 要将结算页按钮从蓝色改成绿色,预期转化率提升 1.5%。产品经理取 α=0.05、功效=0.8、基线转化率 12%、MDE=1.5%,算得每组约 1.1 万用户,对照日活 30 万,半天即可跑完,于是放心将实验周期定为 3 天。
数据团队多实验流量分配
阶段:实验资源预算
解决的问题:多个 A/B 测试并行时,流量是稀缺资源。每个实验都要求“足够样本”,但流量池有限,必须统筹分配。先分别计算各实验所需样本量,再按优先级分配流量,避免互相挤占导致全部实验功效不足。
具体案例:某平台同时有推荐算法改版和首页文案改版两个实验,前者 MDE 要求 0.5%、后者只要 2%。数据团队算出前者需要 18 万样本、后者只需 4500 样本,于是给前者分配 80% 流量、后者 20%,两周后两个实验都顺利得出可靠结论。
增长团队评估实验可行性
阶段:实验前置评估
解决的问题:增长团队常遇到“想检测的差异太小、流量根本不够”的困境。提前计算样本量可以暴露这种不可行性,帮助团队把目标调整到现实范围,避免上线一个注定得不出结论的实验。
具体案例:某 SaaS 公司想把注册转化率从 5% 提升 0.3%(即 MDE=0.3%),代入公式算出每组需要 27 万用户,而产品月活仅 8 万。团队据此意识到目标不现实,改而聚焦 1% 以上的高杠杆改动,实验终于能在两周内完成。
Python 演示
import mathfrom scipy import stats def calc_sample_size(alpha=0.05, power=0.8, baseline=0.10, mde=0.02): z_alpha = stats.norm.ppf(1 - alpha / 2) z_beta = stats.norm.ppf(power) p1 = baseline p2 = baseline + mde p_pool = (p1 + p2) / 2 n = (z_alpha + z_beta) ** 2 * 2 * p_pool * (1 - p_pool) / (mde ** 2) return math.ceil(n) def sample_size_summary(): n = calc_sample_size() print("对照组与实验组每组所需样本量:", n) print("实验总样本量:", n * 2) if __name__ == "__main__": sample_size_summary()
z_alpha = stats.norm.ppf(1 - alpha / 2)把显著性水平 α 映射为标准正态分布的临界 z 值,α=0.05 时输出约 1.96z_beta = stats.norm.ppf(power)把统计功效映射为对应的 z 值,功效=0.8 时输出约 0.84p_pool = (p1 + p2) / 2合并两组转化率,得到平均转化率,用于近似计算方差 p̄(1-p̄)n = (z_alpha + z_beta) ** 2 * 2 * p_pool * (1 - p_pool) / (mde ** 2)完整的简化样本量公式,分子是严格程度、分母是信号强度return math.ceil(n)样本量向上取整,保证实际执行时只多不少
常见误区
误区反正流量多,实验跑满一个月,样本量肯定够,算不算无所谓。算样本量是统计学家的教条,做产品不需要。
正解样本过多同样有代价:实验周期长、新功能上线延迟、流量被低价值实验挤占;而且样本太大时,微小到没有商业意义的差异也会“显著”,反而误导决策。就像请全城人来试吃,花了大钱只得到一个“新配方确实好喝 0.01%”的结论,值吗?
为何常见:人们本能地认为“数据多=结论准”,却忽略了样本量的边际成本和“统计显著≠业务重要”的陷阱。
误区95% 置信度是国际标准,所有 A/B 测试都该用 α=0.05,改了就是不专业。
正解α 本质是“误报代价”的开关。改动核心付费流程,误判一次损失巨大,α 应设 0.01;低风险文案实验,误报代价小,α 放宽到 0.10 也合理。评审越严格,需要的样本越多,所以 α 应当与业务风险匹配,而不是盲目套 0.05。
为何常见:教科书和默认统计工具都预设 0.05,导致很多人把它当成自然法则,忽略了它背后是一笔可调节的业务风险账。
误区实验跑了几天效果特别好,p 值已经小于 0.05,说明结论稳了,可以提前收官上线。
正解样本量是实验前做出的“预算承诺”。提前停止相当于用不完整的预算下结论,会夸大真实效果、膨胀假阳性率——因为“在随机波动中恰好看到显著”这件事本身会随着偷看次数增多而变得更容易发生。哪怕效果再好,也要按计划跑够样本量再决策。
为何常见:人天生厌恶等待,看到“显著”就兴奋,忽略了实验设计的事先约束性。
误区既然要测就测精细点,MDE 设 0.5% 显得分析能力强,更能发现细微优化点。
正解MDE 是“值得动手的最小提升”,不是“能测出的极限”。设 0.5% 意味着样本量要放大 16 倍(相对 2% 的 MDE),很可能算出个跑半年的实验。MDE 应当由业务价值反推:提升多少才值得改版?定出这个值,再算样本量,实验才跑得完。
为何常见:把 MDE 当成精度参数,误以为设得越小越厉害,却忘了它本质是业务目标的量化表达。
面试题
Q1. 显著性水平 α=0.05 表示什么?
- A.有 5% 概率漏掉真实效果
- B.有 5% 概率误报虚假效果← 正确答案
- C.实验只有 95% 成功率
- D.需要 95% 样本留存率
答案:B。α 是第 I 类错误概率,即“本来没效果却误判为有效果”的风险,选项 B 正确。A 描述的是第 II 类错误 β;C 把显著性误当成实验成功率;D 是样本留存概念,与 α 无关。
Q2. 统计功效 1-β 的含义是什么?
- A.真实效果被检测出的概率← 正确答案
- B.实验设计正确的概率
- C.样本数据的可靠程度
- D.转化率提升的幅度
答案:A。统计功效是“当真实差异存在时,实验能发现它的概率”,对应选项 A。B 混淆了功效与实验设计质量;C 是数据质量概念;D 是 MDE 或实际提升幅度,与功效定义无关。
Q3. 下列哪种调整会使所需样本量变大?
- A.将显著水平从 0.05 升到 0.10
- B.将最小检测效应从 2% 降到 1%← 正确答案
- C.将统计功效从 0.8 降到 0.7
- D.将基线转化率从 50% 调到 20%
答案:B。MDE 出现在公式分母的平方上,从 2% 降到 1% 会使样本量扩大 4 倍,选 B。A 中 α 变大对应 z 值变小,所需样本减少;C 中功效降低对应 z 值变小,样本也减少;D 中基线从 0.5 移到 0.2,方差变小,样本需求随之降低。
Q4. 样本量算少了会导致哪些后果?
- A.真实差异被误判为噪音← 正确答案
- B.统计功效大幅不足← 正确答案
- C.置信区间变得更窄
- D.实验结论难以可信← 正确答案
答案:ABD。样本量不足时,统计功效低,真实差异容易被随机波动掩盖(A 对),功效不足正是核心问题(B 对),结论缺乏可靠性(D 对)。C 恰恰相反——样本少时置信区间会变宽而非变窄。
Q5. 基线转化率接近 0.5 时,对样本量有何影响?
- A.方差变大,需要更多样本← 正确答案
- B.方差变小,需要更少样本
- C.对样本量没有任何影响
- D.只需关注显著性水平即可
答案:A。转化率的方差是 p(1-p),p=0.5 时方差取最大值 0.25,噪声最大,因此需要更多样本才能分辨差异。选项 A 正确。B 说反了;C 忽略方差作用;D 把样本量问题简化为只看 α,忽略了其他参数。
Q6. 计算 A/B 测试样本量需要哪些参数?
- A.显著性水平 α 值← 正确答案
- B.统计功效 1-β 值← 正确答案
- C.基线转化率 p₁← 正确答案
- D.页面加载时长秒
答案:ABC。四个关键参数是 α、功效、基线转化率和 MDE,因此 A、B、C 都正确。D 是无关干扰项,页面加载时长与样本量公式无关,样本量只由风险和效果参数决定。
Q7. 最小可检测效应(MDE)是指什么?
- A.实验能检测到的最小真实差异← 正确答案
- B.样本数据的最大波动值
- C.转化率的最大可能取值
- D.置信区间的边界宽度
答案:A。MDE 是实验设计时设定的、希望可靠检测出的最小提升幅度,选 A。B 描述的是数据的标准差;C 是转化率本身的性质;D 是置信区间概念,都与 MDE 无关。
Q8. 日流量固定时,下列哪种方式能提高统计功效?
- A.缩短实验运行周期
- B.降低显著性水平 α 值
- C.增大最小可检测效应← 正确答案
- D.减少参与实验的用户数
答案:C。流量固定意味着样本量 n 固定。样本量公式中,MDE 越大所需样本越小,因此固定的 n 相对更充裕,功效更高,选 C。A 和 D 都进一步减少样本,功效更低;B 降低 α 会使所需样本变大,固定流量下功效反而下降。
Q9. 关于样本量计算的正确说法有哪些?
- A.α 越小所需样本量越大← 正确答案
- B.功效越高所需样本量越大← 正确答案
- C.MDE 越大所需样本量越大
- D.基线接近 0.5 时所需样本更大← 正确答案
答案:ABD。α 越小 z 值越大,样本越多(A 对);功效越高 z 值越大,样本越多(B 对);基线接近 0.5 时方差最大,样本需求更高(D 对)。C 说反了——MDE 在分母上,越大反而所需样本越少。
Q10. 效应量 d 反映的是什么?
- A.差异相对波动的标准化程度← 正确答案
- B.样本量对结果的影响大小
- C.显著性水平对判断的作用
- D.基线转化率的波动范围
答案:A。效应量把两组差异除以标准差,得到“每个波动单位里包含多少差异”的标准化度量,对应 A。B 说的是样本量的作用;C 说的是 α 的调节作用;D 只描述了基线的波动,都不是效应量的定义。