为何要计算样本量

样本量过大:浪费流量,影响用户体验,试错成本大
样本量过小:影响结果可靠性

如何计算样本量

大多数商业分析师使用在线计算器,比如 Sample Size Calculator
需要输入 4 个值:

  • Statistical power 判断正确的概率
  • Significance level 第一类错误出现的概率
  • Baseline rate 历史数据参照
  • Minimum detectable effect 实验精确度

下面解释 4 个值

两个假设

  • 原假设(Null hypothesis, 也叫 H0):我们希望通过实验结果推翻的假设。比如,原假设可以表述为 “红色按钮和绿色按钮的点击率一样”。
  • 备择假设(Alternative hypothesis, 也叫 H1):我们希望通过实验结果验证的假设。比如,可以表述为 “红色按钮和绿色按钮的点击率不同”。

A/B 测试的本质,就是通过实验数据做出判断:H0 到底正不正确?

Statistical Power

如果可以找到每一个用户做产品调查,就可以统计出一个真实的、无偏差的关于绿色按钮是否有效的结论。我们把这个结论叫做 ground truth。把通过实验数据得出的结论和 ground truth 进行比较,一共会出现 4 种情况:

  • 情况 1:实际点击率无区别(H0 正确),A/B test 认为有区别。❌
  • 情况 2:实际点击率无区别(H0 正确),A/B test 认为没区别。✅
  • 情况 3:实际点击率有区别(H1 正确),A/B test 认为有区别。✅
  • 情况 4:实际点击率有区别(H1 正确),A/B test 认为没区别。❌

情况 1 错误,叫第一类错误(Type I error),把第一类错误出现的概率用 α 表示。这个 α,就是 Significance Level。我们希望第一类错误越低越好。实际操作中,我们把 α 人为定一个上限,一般是 5%。也就是说,在做实验的时候,我们都会保证第一类错误出现的概率永远不超过 5%

情况 3 正确,做出这种正确的概率叫做 Statistical Power。

情况 4 错误,叫做第二类错误(Type II error),用 β 表示。根据条件概率的定义,可以计算出 β = 1 - power。

总结一下,对于我们的实验:

  • 第一类错误 α 不超过 5%。也就是说,Significance Level = 5%。
  • 第二类错误 β 不超过 20%。也就是说,Statistical Power = 1 -β = 80%。

对两类错误上限的选取(α 是 5%,β 是 20%),我们可以了解到 A/B 实验的重要理念:宁肯砍掉 4 个好的产品,也不应该让 1 个不好的产品上线。

Baseline Rate

**这个看的是在实验开始之前,对照组本身的表现情况。在我们的实验里,baseline 就是红色按钮的历史点击率。从直观上我们可以这么理解 baseline:

  • 当 baseline 很大(接近 1)或者很小(接近 0)的时候,实验更容易检测出差别(power 变大),如果保持 power 不变,那么所需要的样本数量变小。举个例子,假设红色按钮的点击率是 0%。那么,哪怕绿色按钮只有一个用户点击,相对于对照组来说也是挺大的提升。所以即便是微小的变化,实验也会更容易地检测出来。
  • 同理,当 baseline 居中(在 0.5 附近徘徊)的时候,实验的 power 会变小。

在工作中,这个参数完全是历史数据决定的。在我们的实验中,我们假定,实验开始之前的历史点击率是 15%。所以 Baseline Rate=15%

Minimum Detectable Effect

顾名思义,这个参数衡量了我们对实验的判断精确度的最低要求。

  • 参数越大(比如 10%),说明我们期望实验能够检测出 10% 的差别即可。检测这么大的差别当然比较容易(power 变大),所以保持 power 不变的情况下,所需要的样本量会变小。
  • 参数越小(比如 1%),说明我们希望实验可以有能力检测出 1% 的细微差别。检测细微的差别当然更加困难(power 变小),所以如果要保持 power 不变的话,需要的样本量会增加。

在工作中,这个参数的选定往往需要和业务方一起拍板。在我们的实验中,我们选定 Minimum Detectable Effect=5%。这意味着,如果绿色按钮真的提高了点击率 5 个百分点以上,我们希望实验能够有足够把握检测出这个差别。如果低于 5 个百分点,我们会觉得这个差别对产品的改进意义不大(可能是因为点击率不是核心指标),能不能检测出来也就无所谓了。

参考:
https://zhuanlan.zhihu.com/p/40919260