课代表立正的官方Podcast
深度访谈,有用干货,亲身验证的「真本事」
Superlinear Academy创始人,Maven Top AI Instructor
前Statsig布道师(OpenAI收购),腾讯副总监,Meta,Amazon;康奈尔经济学博士
社区:Superlinear.Academy
课程:ai-builders.com
个人:lizheng.ai
在互联网企业工作的大家应该对AB testing这个概念不陌生
这里我就想帮大家对AB testing做一个概念上的总结
帮助大家了解AB testing到底是用来干什么的
AB testing和背后的统计原理其实就是在研究新药的时候
他们开发了一套研究一个新药是不是真正有效的原理机制和背后的统计方法
我们就用一个药来举例子
比如说有一片药
这个药它声称自己可以让吃的小朋友在吃一段时间之后长高
怎么样去证明它的宣称是真的呢
如果不做AB testing的话
大家可能会想到两个方法
一个是比较吃药之前和之后的效果
一个是比较没吃药的人和吃够药的人
他们生长有什么区别
但是这两个方法其实都没有办法得到药本身的所谓causal impact
也就是因果关系
为什么呢
因为当你比较之前之后的身高的话
小朋友本身就会长高
所以说你没有办法把它长高的多少归结于药本身
如果你比较吃过药或者没吃过药的人
这里就会有一个概念叫做selection bias
就是选择偏见
我们听说过的这个幸存者偏差就是选择偏见的其中一种
比如说这个药它很贵
吃药的人可能比没吃药的人平均的家庭财富要更多
如果观测出来他们有区别
可能只不过是有钱家庭的孩子比没钱家庭的孩子长高的更快
或者想吃这个药的孩子
他可能本来就觉得自己长不高
所以说他又去吃药了
我们可能观测到吃这个药没有效果
但是我们并不知道如果没有吃药的话
这些孩子是不是比吃了药以后长得更慢
那好的
那我们AB testing是怎么样子解决这个问题的呢
AB testing就是我们找两组人
首先找一组人
然后我们随机的把它分成组A和组B
组A不吃药或者吃一个小糖丸
就是placebo假药
组B就是吃这个会让你长高的药
我们观测一段时间
最后组A和组B的身高差别就是这个药的treatment effect
也就是这个药本身的效果
那这个方法为什么可以
为什么可以上述两种这个bias呢
因为组A和组B他们本身是一种人
他们随机分配了以后呢
根据大数定理
他们的平均值在各方面应该都是一样的
也就是说他们没有这个selection bias了
如果说稍稍加一点公式的话
就是每个个体的变量减去这个组的平均值
处理它的方差是
会服从一个正在分布
具体这个就不能理解了
总之就是你把他随机分配了以后
这两个组之间就不会有selection bias
那我们在根据一段时间的观察
组A和组B都长高了
但是组B有没有在组A的基础之上长得更高
长得更高的这一部分就是这个药本身的效果
如果我们回到一个互联网企业的例子
比如说我们有两个button
有两个这个有两个
界面上有两个按钮
我们想看一下用户更喜欢哪一种类型
哪一个颜色的按钮吧
那我们就把所有来这个页面的用户
随机分配到两组
一组人给buttonA
一组人给buttonB
然后看他们这个点击率
虽然说不同的人
他一开始的点击率是不一样的
但是如果说我们随机分配成组A和组B的话
他们的点击率应该都差不多
在平均值上的话应该差不多
那最后他们点击率
他们平均点击率的差别
就是这个按钮本身带来的差别了
在设计AB testing的时候
有三个要素是需要注意的
就是来告诉你最后你这个AB testing
是不是可以在统计上显著
第一个要素是你想有多大的质性区间
也就是说你的这个testing
做出一个错误的结论的概率是多少
你当然了就是因为所有的事情
都是基于一个统计和基于一个概率的
总是会有一些特别特殊情况出现
但是你观察的样本越多
你出现特殊情况的概率就越小
所以说你比如说大家说我们在95%的情况下
都可以得到正确的结论
那就是你这个实验的power
所以说我们要求power到底有多高
在这个论文里或者说是在大家平时的实验里边
一般就会选到95%
就是我们在95%的质性区间上是统计显著的
第二个就是你的这个数据本身
它到底波动有多大
如果说这个数据本身它就很volatile
或者说是virus很大
或者说是变来变去的
那你肯定就需要去
你就需要更多的样本去消除它的波动
以及
你就需要更多的样本去消除它的波动
或者说需要更多的样本去
才可以得到一个统计意义上显著的结论
第三个就是你觉得你的treatment effect到底是有多大
比如说你可以把小朋友的平均身高增长10%
那它有可能很显著
那你可能只需要几个小朋友就可以得出结论
如果说他可以把小朋友的平均身高增加1%
那这个就很难去观测到
你就需要更多的小朋友才可以得到一个更平均的平均值
并且把他们生长速度本身的方差给消除掉
那才可能得到一个统计意义上显著的结论
好的刚才讲述的只是AB testing的一个很大范围的概念
但是其实AB testing不是能适用所有的事情
当你能获得的样本数有限制的时候
怎么样子可以从小样本中获得统计显著的结论
或者说当你试验不可能
比如说法律或者各种各样的规章制度不允许你进行AB testing
那有一些伎俩经济学的方法
可以让你从历史数据中得到一个causal的结论
包括有的时候这个AB testing可能会给你一个错误的结论
因为比如说会有这个natural effect
或者说这个因为你给了B treatment
导致你的A会下降
那也要有一些其他的方式来进行更复杂的实验设计
如果到时候有机会的话
我们可以再开一些节目单独来讲
谢谢大家拜拜