AB测试原理 (一)实验分层数据分组

AB测试原理 (一)实验分层数据分组,第1张

        我所在的公司是一家酒店OTA行业的互联网公司,作为一名数据算法工程师,每天的工作主要是数据清理、特征工程、训练测试模型以及线上模型平台开发等相关工作;除此之外,在这样一个以产品运营为主的公司经常会跟运营的数据分析师和产品经理合作,开发运营相关的模型。模型上线之后效果评估主要依赖的是AB系统的指标,然而AB系统的开发人员有时候并不熟悉统计知识,而且凡是系统都有 bug,为了客观公正地评价模型的效果,我深入了解了我司的AB系统,复习了统计知识的同时,也发现了很多问题,下面分几篇文章来分享一下。

        AB系统的主旨就是灰度发布新策略(B组),通过观察实验组(B) 与对照组(A)在数据指标上的差别来决定新策略是否可以带来好的效果,值得上线。首先介绍两个概念:分组,分层

分组

        在分组上一般是ABC 或ABCD四个组, 其中ACD 都是维持线上原策略,B组采用新策略。留出ACD的目的是为了能够观察AA的指标,理论上,相同策略的组,在指标上应该是不显著的,如果AA显著这时往往数据积累不足,需要等待AA不显著才能开始观察AB指标的情况。每组的流量应尽量均匀,这样AA容易稳定。

分层

        同时在线的实验往往很多,以针对用户的实验为例,如果分流系统将 uid 分组的算法如果是固定的,那么就需要加一个分层,即使每个用户在不同实验中要随机分组,例如user_a, 在实验1中在A组, 在实验2中在ABCD任意一个组的概率是均等的。

为什么要有分层?

我们可以举一个例子,假设实验1的新策略是使得某个指标上升了50%, 实验2的指标是使得某个指标降低了50%, 如果两个实验的分流策略完全相同,都是分ABC三个组,比例是34:33:33。

如果没有分层:对于落在AC组的人保持了原有策略,B组则实验1和实验2的策略叠加,导致指标先升一倍再降一倍或先降后升(理想情况下),最终B组指标没有变化,那么对于实验1,实验2 实验指标都是不显著变化。

如果有随机分层:从实验1的角度看, 实验2的策略组将按比例分在实验1的ABC里,则在计算实验1的AA或AB时,这部分影响将抵消(理想情况下),那么实验1里ABC主要的差异在实验2的策略上是无偏的,即不会受实验2影响。

下一篇介绍统计的一些概念,如假设检验,第一类错误α, 第二类错误β,实验最小样本量的计算等。

1 什么是A/B测试?

A/B测试是一种流行的网页优化方法,可以用于增加转化率注册率等网页指标。简单来说,就是为同一个目标制定两个方案(比如两个页面),将产品的用户流量分割成 A/B 两组,一组试验组,一组对照组,两组用户特点类似,并且同时运行。试验运行一段时间后分别统计两组用户的表现,再将数据结果进行对比,就可以科学的帮助决策。比如在这个例子里,50%用户看到 A 版本页面,50%用户看到 B 版本页面,结果 A 版本用户转化率 23%,高于 B 版本的 11%,在试验流量足够大的情况下,我们就可以判定 A 版本胜出,然后将 A 版本页面推送给所有的用户。

AB测试本质上是个分离式组间实验,以前进行AB测试的技术成本和资源成本相对较高,但现在一系列专业的可视化实验工具的出现,AB测试已越来越成为网站优化常用的方法。

A/B测试其实是一种“先验”的实验体系,属于预测型结论,与“后验”的归纳性结论差别巨大。A/B测试的目的在于通过科学的实验设计、采样样本代表性、流量分割与小流量测试等方式来获得具有代表性的实验结论,并确信该结论在推广到全部流量可信。

拓展阅读:http://m.sanwen8.cn/p/15dSHwx.html

1、附带cookie

先构建个“已登录”的会话,把标识这个会话的Cookie值(Session ID)记下来。

如果只用到一个Cookie:

ab -n 100 -C Key1=Value1

如果需要多个Cookie,就直接设Header吧:

ab -n 100 -H “Cookie: Key1=Value1Key2=Value2”

2、网站协议为https

使用abs


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7620352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存