Sequential AB testing
在做AB测试时,为了避免出现重复显著性检验的情况,我们会预先设定一个样本值,只有到流量达到样本阈值时,才会进行统计检验。
这又引申出了一个问题:有没有一种AB测试方法,可以不用提前设置流量阈值,并可以在当实验组效果明显好于对照组的时候,能够提前停止实验?
一般而言,Sequential AB testing 需要用到序贯分析sequential probability ratio test,但是,在
even miller博客上记录了以下一种简单方法,这种方法也是可行的。
以下是该方法的流程:
- 1.实验开始前,选定一个数字N
- 2.对两个实验均分流量进行测试
- 3.记录A实验的成功数,记为T,记录B实验的成功次数,记为C
- 4. 时停止实验,说明A实验效果优于B实验
- 5. 时停止实验,说明无明显差异
原理:随机游走,反射定理、ballot theorem及近似分布
以下内容主要来自Feller’s Introduction to Probability book
从$(0,0)$到达$(n,x)$的随机游走
投掷一枚均匀的硬币,正面为+1,负面为-1,记n为投掷次数,x为累积分数。
对于某一时刻,定有次为,次为,则
则容易得到
若不存在满足上述条件,则
反射定理
令,,则接触轴到达的路径数和接触x轴到达路径数一样多

则此时,明显地,从出发且不与轴相交到达的的路径数和从出发不与x轴相交到达的路径数一样多,并记为。
ballot theorem
我们把开始到达的所有路径数记为,把开始到达的所有路径数记为。显然就是从开始接触或穿过x轴到达的路径数
则有
则有
也就是说,不接触x轴的路径占所有路径的.
类似地,当把轴换成是直线时,从出发,不接触到达的路径数也为
limit theorem for first passages
场景:赌徒输光问题与AB测试实验
ballot theorm 可以用来解决一下问题:
赌徒输光问题
假设有一个有x枚金币的赌徒,初始有 枚金币,每次胜率为,可以看到,赌徒正好在第轮输光所有金币的概率为
而赌徒在第n轮前输掉所有金币的概率
引申:AB测试
同样的,我们可以用ballot theorem来解释一个初始分数为0的玩家,不断投掷硬币,在第n轮时首次达到分的概率为
同样的,玩家前轮能达到分的概率为
此时,我们假设通过AB测试来玩这个游戏,则若两个实验的效果没有差别,则AB测试会近似这一过程。
统计检验
对于测试这一过程,我们期待一个实验组比对照组的效果要提升,则
对于AB测试的过程
参数计算
为了保证犯第一类错误和第二类错误的概率,可以构建以下不等式组:
通过迭代运算,我们可以计算出停止实验所需要的 和;通过近似分布,我们可以的得到;并最终得到N。
最后, 对于两个实验成功的次数T和C,如果在T+C达到N之前达到T-C达到时,则拒绝