DS 面试之 A/B Test

2021-05-28  本文已影响0人  数科每日
image.png

A/B Test 题目, 往往会和 Metric Questions 放在一起出, 属于DS 业务领域内的一大重点类型。 本文分几部分拆解A/B Test 面试中会遇到的各类问题。 但是如果想深入了解 A/B Test, 还需要大家真的花费时间去了解, 可以参考 Trustworthy Online Controlled Experiments 系列文章。

什么是A/B Test

A/B Test 是一种控制实验, 在面试中, 会被问到以下一些问题

设计一个 A/B Test

从上面的公式可以推导出

算出来的样本量, 是每组的样本量, 不是真整个实验需要的样本量

关于可检测差异如何设置, 这是一个经验之谈, 在Trustworthy Online Controlled Experiments 系列中, 也有专门的讨论。 一般的原则是, 这个值一定要在实验开始前定下来, 并且不能在实验中改动

关于 ** A/B 要运行多久** 也可以从样本数量推出来, 比如,需要 20000 个样本, 而每天有4000个客户, 那么就需要5 天。 但是实际运行中, 还要考虑周末效应, 因此在这个例子中, 一般会选择7天。

多重测试

有时候, 我们会有不止一个干预组, 比如, 测试一个按钮的颜色。 我们可能会同时测试 10种颜色。

比如, 在一个 A/B Test 中 ,我们实验了10中颜色, 其中一种颜色胜出, 而且p< 0.05。这时,是否要决定使用该颜色呢?

答案是否定的, 因为比对的组越多, 可能第一类错误的概率越大, 在多组对照实验中, 应该用更低的 p-value。 比如, 如果有3组, 每组对比使用 p-value 0.05, 那么整个实验犯第一类错误概率为:

P(Type \ 1 \ Error) = 1- (1 - 0.05)^{3} = 0.143

远远大于 0.05。

解决这种问题的方法

1. Bonferroni Correction:

方法也很简单, 在多组实验中, 使用
p-value = \frac{0.05}{group \ number}

就是用 0.05 除以组数。 因此, 对于有10个group 的实验, 应该使用的p-value 是 0.05。

缺点:过于保守, 要求太高

2. Control False Discovery Rate

\mathrm{FDR}=E\left[\frac{\text { false positives }}{\text { rejections }}\right]

这个一般在有很多个 Metrics 的时候, 使用, 比如有 100+ 个Metrics
比如 200个 Metrics , FDR = 0.05 这意味着

新鲜感 (Novelty) 和先入为主(Primacy) 效应

这两个效应带来的问题是, 他们带来的效果都不持久。另外, 实验一开始的高增长,和低增长可能都和他们有关系。

解决方案
  1. 使用新用户做测试, 对于新用户来书, 就不存在这两种效应。
  2. 如果实验已经运行了,那么可以现在比较干预组中新用户, 和老用户的行为区别。

干预手段对实验造成的影响

A/B Test 的两个假设

对于一些应用,这两条不一定成立, 比如 Facebook, 微信, Uber 等。 一方面, 社交应用会有溢出效应, 另外方面 Uber, Airbnb 这种资源共享应用会有资源挤占效应。

如果在实验中, 一个社交应用导致用户发帖数上升 1%, 那么在实际推广以后, 这个效应会超过 1% , 这是由于网络效应导致的。 而对于资源共享型应用, 比如 Airbnb, 如果一个手段让实验组叫车量提升 1% , 那么实际使用中, 效应应该低于 1%, 因为实验组叫了更多的车, 那么控制组可叫的车的数量就减少了。

如果减少干预带来的影响

隔离用户

对于社交应用, 可以使用 Cluster, 然后以不同的社群作为 Unit 做比较。


参考视频

上一篇下一篇

猜你喜欢

热点阅读