实验原理及图解(关于AB实验的原理详细解读)
实验原理假设检验的目标是拒绝原假设,它的核心是证伪先假设原假设成立,然后计算原假设反面出现的概率,如果概率较大,则证明原假设不成立,下面我们就来说一说关于实验原理及图解?我们一起去了解并探讨一下这个问题吧!
实验原理及图解
实验原理
假设检验的目标是拒绝原假设,它的核心是证伪。先假设原假设成立,然后计算原假设反面出现的概率,如果概率较大,则证明原假设不成立。
对于 A/B Test 来说, p值是在实验组和对照组没有差别这个前提成立的条件下,实验仍然检测到差异(即极端事件出现)的概率。如果 p值非常小,就拒绝原假设,认为实验组和对照组没有差别这个前提是错误的。那么怎么定义非常小?这时需要 显著性水平(significance level) 来做标尺。
需要注意的是,统计显著性不是实际显著性(Practical significance)。p值只能告诉你两个版本有没有差异,并不能说明实验组到底比对照组好了多少。举个例子,在某个A/B Test中,实验组相比对照组只有0.1%的提升, p =0.001,这说明这次实验是达到统计显著的,但是实验效果却只提升了0.1%。是否你会为了这0.1%的提升全量上线实验组方案,还需从成本等角度全面衡量一个实验的商业效果。因此不能仅凭统计显著性做决策。
实验误区
一类错误、二类错误和功效的定义如下:
H0:实验组之间无显著性差异
显著性水平 :误报,False Negative,I 类错误,即 H0 为真但拒绝了的概率,1 - 置信水平(confidence level) = 显著性水平( , significance level);一般设定 =5%
:漏报,False Positive, II 类错误,即 H0 为假但接受了的概率。样本量较小时,有增加漏报的可能(H0为假,但数据量少没有观测到),但是高功效需要更多的样本量,延长测试所需要的时间
统计功效 power:H0为假且拒绝,即接受H1的概率
最小提升 lift : 差异越小,需要的样本量越多
基线转化率: Baseline越小,相同的提升度下,所需要的样本量越多
总结:当 p<alpha 时,得出拒绝 H0,接受 H1 的结论容易犯第二类错误,因此还需要结合 power 来看,即观察到 H0 为假这一判断成立的概率。
1、误解 p 值
p值并不是原假设事件发生的概率也不是拒绝原假设的概率,比如原假设为 Y1-Y2=0,p值并不是两者差异为0的概率(贝叶斯检验的概率是)。p值表示在原假设为真的条件下,比所得到的样本观察结果(检验统计量)更极端的结果出现的概率,如果概率小于alpha值,说明小概率事件发生,而我们认为小概率事件是不会发生的(或者说如果在原假设真实存在的条件下,不太应该出现这个事件,但是出现了该事件,那么更有可能是在备择假设存在的条件下产生的),那么就说明原假设错误。所以说 p 值说明不了任何事。它仅仅是以预期比较为基础的一种方法,帮助我们做出一个相对合理的决策。比如原假设一枚硬币是均匀的,但发现连续抛5次硬币都为正面,而这个事件(统计量)的概率为 小于0.05(alpha值,为极端值出现或小概率事件发生的最大概率),认为这是小概率事件,不可能发生,因此这是一枚不均匀的硬币。
2、缺乏统计功效
统计功效 power=p(拒绝H0|H0为假),解释为真实情况为H0为假时,观测结果能正确检测出来的概率,即为统计检验结果正确的‘拒绝零假设”(H0)的概率。因此当 p<alpha时,还需要看power是否达到一定的条件(样本量是否充足),才能判断是否有显著差异。因为结合上面对p值含义的解释可以发现,再微小的差异,达到足够大的样本量和测量精度,都能得到有统计学意义的P值;再大的差异,在样本量过小和测量精度不那么高的时候,也可能只能得到P>0.05。所以在实验研究中不应该唯P值是论,单看P值大小并不代表实际的差异大小,实际差异要看 effect size。实验预期是拒绝原假设,那么在实验开始前需要设定power的大小,反推出实验所需的样本量,当达到该样本量时,实验结论才会更准确。
假设检验的功效受以下几个因素影响:
样本量 (n):其他条件保持不变,样本量越大,功效就越大。
显著性水平 (α):其他条件保持不变,显著性水平越低,功效就越小。
两总体之间的差异:其他条件保持不变,总体参数的真实值和估计值之间的差异越大,功效就越大。也可以说,效应量(effect size)越大,功效就越大。
标准差:标准差越小,代表两组差异的趋势越稳定,越容易观测到显著的统计结果,功效越大。
统计功效的计算
原假设与备择假设如下:
令 ,按照二类错误的概念,假设 ,有
代表 A 组的样本数量, 代表 B 组的样本数量。K 为 与 的比值,这个值一般情况下,我们都默认为1,即 A、B 两组的用户数量相等,方便做严谨的AB实验对比。可以看到所需样本量大小与以下四个变量有关系,在其他三个变量都确定的情况下,统计功效与样本量成正比,因此通常在实验开始前计算达到功效需要多少样本量:
显著性水平 :显著性水平越低,对实验结果的要求也就越高,越需要更大的样本量来确保精度
统计功效 :统计功效意味着避免犯二类错误的概率,这个值越大,需要的样本量也越大
均值差异 :如果两个版本的均值差别巨大,也不太需要多少样本,就能达到统计显著
标准差 :标准差越小,代表两组差异的趋势越稳定。越容易观测到显著的统计结果
根据实验的预期结果确定实验所需最小流量,可以通过现有网站工具计算所需样本量:
https://www.evanmiller.org/ab-testing/sample-size.html
如果预期提升的指标是人均时长、人均收入等,需要运用 T 检验反算需要的样本量:
https://www.evanmiller.org/ab-testing/t-test.html
3、实验中窥视实验并下结论的后果
即实验中途查看实验结果并因此判断实验结论,造成实验结论犯第一类错误率提高。窥视实验结果对实验的有效统计意义会产生不利影响。它实际上大大增加了误报的可能性,并使置信区间不可信。
背景: 假设模拟两个方案的 10,000 个转化事件,其中两个方案的转化率均为 10%。由于转化率相同,因此进行实验时,应该检测到转化率提升度没有差异。
问题: 如果使用 95% 的置信水平,当收集所有 10,000 个观测值之后,测试结果为预期的 5% 误报率(I 类错误)。因此,如果我们运行 100 个这样的测试,则平均会得到 5 个误报(实际上在此示例中,所有的显著性结论都是错误的,因为两个方案之间的转化率没有差异,我们荏苒检测到具有统计意义的提升)。但是,如果我们在实验过程中进行 10 次评估(每 1,000 个观测值评估一次),结果会显示误报率高达 40%。对测试进行监控使出现误报的可能性增加了三倍以上!这是怎么回事?
原因: 如果使用 95% 的置信水平计算10次实验,总体误报率Pr(至少一个误报)=1- Pr(没有误报)= 1 - 0.95^10 = 40% 则大约40%的概率会检测到一个或多个误报。
当检测到具有统计意义的结果时停止实验。但是,如果该结果不具有统计意义,则会继续测试。这种操作情况极易偏向于寻求显著差异的结果,这样就扭曲了测试的有效显著性水平。
如何解决? 要避免此问题,应该在开始测试之前,先确定足够的测试运行时间。虽然在测试过程中查看测试结果以确保测试正确运行是可以的,但在达到所需访客数量之前,请勿得出结论或停止测试。换言之,不要作弊。对于需要分段测试的实验,即分职业、年龄等属性分段查看实验结果,需要Bonferroni 校正。或设计序贯实验。
4、多组比较
主要有以下的场景:
查看对比多组实验的指标
在不同时间peeking
查看不同分组群的指标
重复实验结果对比
5、置信区间
误区:单独查看控制组和实验组的置信区间,如果重叠,那么无显著差异。但实际案例中delta有显著差异,依然能重叠 29%;
另一个关于置信区间的误区是,认为95%置信水平的置信区间有95%的概率包含真正的实验效应。置信度95%说的是我们有95%的自信能说出“实验组转化率相比对照组转化率高0.8-1.2%”这句话。从概率论的角度解释,就是在其他参数不变的情况下,如果我们重复做同样的实验100次,那么有95次得出的实验组和对照组的转化率差异都在0.8%-1.2%这个区间内。
6、内部有效性问题
违反SUTVA假设:即实验个体之间相互不影响,而社交网络、通讯网络、协同工具、双边市场、共享经济平台的个体都违反了SUTVA假设,因此一般采用聚类作为随机单元。
幸存者偏差:针对一段时间才活跃的用户实验,存在严重的幸存者偏差问题。
ITT(Intent to Treat):剔除不服从实验干预的用户,其实验结论将产生偏差。所以实验计算应该是从分配(assignment)开始,而不是真正执行了 treatment 的用户
SRM(Sample Ratio Mismatch): 实验组与对照组的用户数量在统计上与配置的比例不同。比如对照组和实验组各分配 50%的流量,结果对照组 821, 588 个用户,实验组 815, 482 个用户,比率为0.993,但是按照实验配置的比例应该为1.0,以上样本比率大于 0.993 的概率在 1.8E-6(p值),结论为按照实验1:1的流量配比而得到结果的概率为1.8E-6,因此有理由怀疑实验出现了bug,实验结论不可信。
SRM 成因:
随机化有问题
Data Pipeline 问题,比如数据收集问题
残留效应,指每个试验阶段对后一阶段的延滞作用。比如实验出现了bug,分析日期从修复好bug当天开始,一开始出现的bug会对用户有残留效应,就会出现 SRM 问题
不合适的触发 (trigger) 条件,实验触发的用户需要包含应被treat的用户,比如网站重定向问题
基于影响实验的属性作为触发条件,比如依据机器学习算法结果来触发,因为随着实验进行,模型会更新,且模型会持续受实验组的效应影响。
如何判断 SRM
需要使用统计检验,如卡方统计量检验SRM问题,以确定在实验变量中观察到的用户分布是否在统计上与配置的用户分布不同。使用的阈值是保守的,以减少假阳性的可能性: p值 <
如何debug SRM
验证随机化点或触发点上游没有差异
验证实验分配是否正确
检查data pipelines
检查实验各组是否没有一同开始,比如时段效应,不同时间段的活跃用户率不同,如果设置不同组的开始时间不同,那么会导致SRM
分组查看样本比例
按每天分组
按设备等维度分组
按新老用户等特征分组
https://mp.weixin.qq.com/s/fOdSUesYTOJT5MiTo3vLrA
7、外部有效性问题
外部有效性是指结论是否能延展到一般的场景。比如外推到其他国家,其他群体,或者说随着时间的推移,该结论是否会消失。一般后者的外部有效性困难较大,时间外部有效性问题一般为新奇效应和首因效应。
验证以上问题,可以画出关于指标的时间序列图,看指标在一开始时间是否有增加或下降。处理以上的问题,可以制定更合适的指标,比如次周留存率。或者增加实验的时间。
8、异质效应
不同群体的对比分析可以洞察更多,一般基于以下几种类型进行分层分析:
市场或者国家
设备或者平台
周内分天或者天内分小时效应
用户类型
用户账号特征
9、辛普森悖论
总体和分群体的指标趋势不一致,主要有以下几个情况:
用户采样不均匀,不同的场景各用户占比不一致
用户在某特征上的分布不均,比如在各个国家上的某些指标不相等
实验指标构建
实验平台的四个阶段:
爬(~10个/year):能实现实验分析
走(~50个/year):实验验证——A/A实验和SRM问题验证;定义标准指标
跑(~250个/year):规模化运行实验
飞(~成千/year):能完成自助分析,元分析
指标类型
目标指标:简单且口径较固定
评价指标:可操作性高、比目标指标更敏捷且直接影响目标指标,多为一些因果模型中的中间指标,比如在线时长、点击率等
护栏指标:验证型指标,验证实验运行的正确性;二是保护商业的一些预警指标;数据质量指标
评价指标必须能正面影响目标指标。一般我们只能通过潜在的 causal model 利用现有数据完成假设检验来找到评价指标,这里有一些方法来验证因果关系:利用一手数据,比如调研、焦点访谈和用户体验研究(UER)等用户研究方法,确定影响方向和显著性。
指标开发
用户研究相关方法探索 causal model 中的重要指标
考虑指标的质量,什么样的行为和口径更能衡量该指标
可解释性强
可以用多指标衡量同一事件,互相验证
指标的评估
常见且具有挑战的指标评估是建立从驱动指标到目标指标之间的因果关系,也就是说,驱动指标是否真的可以驱动目标指标,解决因果检验目前可以采用以下几种方式:
使用调研、用户访谈等收集一手数据来检验它们是否都指向同一方向
分析观测数据
使用行业内以有经验
以评估指标为主要目的运行线上实验
用历史实验集合做哦为“黄金”样例来评估新的指标
组合多个指标为一个OEC 指标
为什么需要?
如果只单单观测一个指标,会局限在短期收益;比如对于“给用户是否发送推荐邮件能否提高收益”,只观测收益会忽视邮件对用户带来的负面体验,因此需要同时观测收益和伤害体验的收益损失之和,来评判实验是否成功。
如何实行?
将指标标准化后加权组合为一个目标指标。或者限制指标数量到5个以内,至少看到一个指标显著的概率为1-(1-0.5)^k
如何决策?
如果所有关键指标不显著或者显著,且至少有一个指标显著,那么改版
如果所有关键指标不显著或者负向显著,且至少有一个指标负向显著,那么不改版
如果所有关键指标不显著,那么不改版。考虑增加实验统计功效
不同指标间的平衡,如果一个指标上升,一个指标下降,如何判断?上升的指标所上升价值是否能弥补下降指标的下降价值,可等价换算到同一指标上,看是否目标指标还能有提升。
观测性研究
为更好的提出假设、验证假设、保证外部有效性,可以使用user experience research、焦点小组、调查和观测性研究来辅助实验结论。
各方法的所需用户量和信息深度
1.日志研究——回顾性分析
确定指标的分布、各关键维度的指标不同分布区别、指标随时间的趋势特征;特征化潜在特征,探索指标间关系。缺陷:日志分析通常能大规模分析用户的行为但无法解释为什么会如此表现(user experience research可以)
观测性因果研究
当随机实验无法执行时,可以用观测性因果研究代替。观测性因果研究的挑战主要有:
如何构造控制组和实验组做对比
如何建立因果效应模型
观测性因果研究的相关模型如下:
Interrupted Time Series——贝叶斯结构时间序列分析模型,为田野实验设计,通过设计实验和对照组为相同的群体,测量两组群体随时间的变化的效应差异。
Interleaved experiments,评估排序模型的差异,Netflix设计了一个两阶段的线上测试过程(如图)。第一阶段利用被称为Interleaving的测试方法进行候选算法的快速筛选,从大量初始想法中筛选出少量“优秀的”Ranking算法。第二阶段是对缩小的算法集合进行传统的AB Test,以测量它们对用户行为的长期影响。
Regression Discontinuity Design
Instrumented Variables and Natural Experiments,工具变量大致等同随机实验的随机分配assignment,两阶段最小二乘法回归模型被用来评估效应。
Propensity Score Matching
Difference In Difference
构建实验平台
实验随机单元
“试验单元 (experiment unit)” 是接受 “处理” 的对象或实体。
页面层面:每个网页被视为一个随机单元
访问层面:一次session被视为一个随机单元
用户层面:单个用户被视为一个随机单元,用户可以是真实用户,也可以是一个loginID
对比理解这三个层面:
访问层面和页面层面的单位适合变化不易被用户察觉的实验,因为这样受用户干扰较少;而业务变化容易被用户察觉,尽量选用用户单元。
从用户层面到访问层面再到页面层面,实验单位颗粒度越来越细,相应地可获得的样本量越来越多
判断如何选择实验单元,要避免选取的实验单元会造成同一个用户被分到不同组
一般的,当期望实验的策略场景遭遇以下两种制约时,AB实验往往不能有效开展:
用户体验制约:一些较为敏感的全局策略,如价格调整、新产品上线等,往往需要考虑用户间体验公平性和用户长期体验的一致性。比如出行业务,AB实验导致两组司机定价不一致,这就造成用户体验的不公平性;又或者用户在早上9点看到产品的形态和下午2点不一样,这就和用户长期体验不一致。因此,当不同策略下用户的感知体验差异非常明显时不能开展AB实验。
样本数量制约:部分实验场景由于天然不可抗因素限制样本量非常小,样本量过小无法通过分流的方法开展AB实验。
核心原则:要求用户体验一致的实验场景以用户为样本单位;用户难以感知和分辨的实验场景以事件为样本单位。
因此,当决定随机单元时,需要考虑以下几个原则:
保证用户体验一致性,同一个用户不会进入两个组
实验单元和评价指标单元一致,否则两单元不一致,违反相互独立前提假设
保证前两个原则后,样本数量尽可能多
比如随机单元和分析单元应该一致,实验以页面层面为随机单元,那么实验指标就无法评估干预对用户会话量的影响。用户暴露在不同的分组里会违反独立单元干预假设(SUTVA),那么无法评估该干预的实验效应,因为不同的分组会干涉用户的界面和行为。比如广告竞拍的实验,可以随机化经常竞拍同一类广告的广告主或者广告主的聚类。社交网络平台的实验,为了最小化互相干扰的影响,可以随机化用户的聚类。
随机单元和分析单元
一般更推荐随机单元和分析单元(指标细化维度)一致,比如随机化page,意味着每个pv的点击都是独立的,所以计算点击率(点击/pv)这类均值的方差是标准的。如果随机化用户,那么分析指标也是每个用户的平均session量、每个用户的平均点击量等指标。
如果随机单元比分析单元更粗粒度,比如随机化用户,但分析点击率CTR(page-level)也可以,点击率指标计算有两种方式,一是直接总点击除以总pv,二是单个用户的总点击/总pv,然后算总平均CTR,第二种方式更能很好的避免极端值。但计算方差时容易忽略方差变量间的非独立性,因此需要 bootstrap 或者 delta 方法分析。但是随机单元比分析单元更细粒度,因为无法计算这样分析指标无意义。
user-level 随机化实验
user-level随机化实验能更好避免用户体验不一致的问题,适合用户留存等长期实验,使用user-level随机化实验需要注意:
可以跨设备、跨平台的用户登录id,因为不会随时间、随平台不同而变化
cookies id,比如ios的IDFA、Android的Android ID,这类id在不同平台会不一致,准确度不如用户id
设备ID只标记特定的设备,这类id在不同平台会不一致,准确度不如用户id
实验分析
1、保证实验分析前提的合理性
检验实验/对照组样本量比例,查看是否存在 SRM 问题(后面有具体的检验方法)
检验实验/对照组中特征分布,即可能影响评价指标的维度,其在两组中的分布比例。分布有差异可能会导致辛普森悖论问题
2、正态性假设,选择合适的统计检验方法
应用 T 检验的前提假设是统计量服从正态分布,有一个误区是认为指标 Y 服从正态分布,但其实是指标 Y 的均值(统计量的一种)在大数定理下(抽样分布在大数据下服从正态分布)服从正态分布,因此对于偏度较严重的抽样分布,需要适当增加样本量来满足大数定理中的“大数条件”。同时可以用 Kolmogorov–Smirnov and Anderson-Darling 统计检验分布是否满足正态要求。
如果无法满足正态要求,还可以进行正态转换,或者用 Bootstrap Methods、permutation test 等方法来检验小样本实验。也可以采取非参数检验方法(适用于中位数这类秩统计量),各检验方法适用的场景如下。
各非参数检验方法适用场景
3、判断显著性的两种方式(已满足统计功效要求)
p值法
置信区间法,判断区间是否包含0
4、实验方差估计
方差用来估计p值和置信区间,这里有一些估计方差时会遇到的陷阱:
vs %
详细推导过程:https://toutiao.io/posts/q660w08/preview
Ratio Metrics
当实验主体和分析主体不一致时,比率类的指标,比如转化率、点击率等,其分析主体不像用户平均收入、用户平均点击数指标为用户,而是pv或者click。传统计算方差的方法下有假设:样本间相互独立,当分析主体和实验主体一致时,那满足假设;但是对于user-level 指标,每个指标代表对单个用户的测度。对于page-level 指标,每个指标代表对单个页面的测度,实验主体为用户,但分析主体为单个page,虽然对用户随机分组,但有可能多个样本来自于同一个用户,那么样本间就非独立,计算目标指标时,应该先算出user-level的平均指标,然后再像普通的user-level指标一样计算分析。但是一般实验对点击率这类指标简单的处理方式是直接分母取实验中曝光uv数中点击uv数作为点击率(已去重)。
异常值
异常值对均值和方差有很大影响,尤其是增大了方差。在估计方差时需要移除异常值,最简单的方式是通过阈值直接移除异常样本。
5、Fisher's Meta-analysis
Meta 分析是运用定量方法去总结多个研究结果的系统评价,将若干个研究结果合并成一个单独数字估计的统计方法。以综合已有的实验发现为目的,对同一个问题的实验进行综合的统计分析方法。元分析的有用性:
对过去的实验可以总结出一些洞察,帮助巩固实验数据驱动文化
实验怎样提升组织目标
哪个团队的实验提升总和最大?用于评估团队贡献
指标优化,探索指标的适用性和指标关系
为后来的实验提供先验结论
实验洞察,为后续优化提供思路
实证研究,得出一般性结论(实验的随机化因子可以作为工具变量,因为跟自变量高度相关,与结果变量无关)
6、多重检验
针对多组比较检验时,因为1类错误提升,因此需要p值调整。比如有 A/B/C/D/E 五组,其中 A 为控制组,直接进行 4 组比较:A与B,A与C,A与D,A与E。在置信水平为 95% 时,Pr( 至少存在一个误报 ) = 1 - 95%^4 = 18.5%。使用此校正时,只需将显著性水平除以比较次数即可得出达到 95% 置信水平所需的显著性水平。在将邦弗朗尼校正应用于上述示例时将使用 5%/4 = 1.25% 的显著性水平,这等同于单次测试 98.75% (100% - 1.25% = 98.75%) 的置信水平。在上述示例运行四个测试的情况下,这项调整会将有效置信水平维持在 95%。在多重假设检验中,我们一般不再关注每一次假设检验的准确性,而是控制在作出的多个统计推断中犯错误的概率,即 False Discovery Rate(FDR)。
什么时候会遇到多重检验问题:
当 A/B 测试有多个实验组
当 A/B 测试有多个评价指标
分不同维度去细分分析测试结果
在测试过程中不断查看实验结果
总结来说,就是需要多次检验而关注总体的犯错概率时,都是多重检验问题。
多组比较方法有:(解决前三种场景)
原理:调整 ,或者说调整 值
Bonferroni (FWER)校正
原理:假设一共有 组比较,每两两比较检验的 值都与 比较
特点:该方法虽然简单,但是检验过于严格,比如检验 1000 次,将阈值设定为 5%/1000=0.005%;最终使得预期犯错误的次数保持在 0.005%×1000 = 5%,不到 1 次,抹杀了一切假阳性的概率,导致最后找不到真正显著假阴性。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com