作者:京东零售 周佳慧
背景
大家在做实验时有没有遇到过以下的问题?
实验分流不太稳定,多次分流以后,发现随机分组历史数据指标波动特别大 实验结果不符合预期,在去掉几个特殊用户后结果变化较大、甚至正负反转 不同的业务场景设置的指标过滤规则不同,例如A场景过滤掉了成单超过100单的用户、但B场景没有过滤,实验指标应该选择哪个
这里实验者大概率是遇到了实验中的异常值问题,我们接下来会讨论在互联网AB实验场景中,应该如何进行处理?
概念解析
从严格的学术角度来看,异常值并没有一个统一的定义和划分标准,在不同的领域会根据使用目的和数据特点有不同的定义逻辑和检验方法。即我们可以得到“在一个样本或集合中,与其余样本均有较大差异的样本点就是异常值”这样一个通用、模糊的概念,但具体差异较大的判定标准是什么,检测差异的方法有哪些,场景之间各不相同。
举个例子,很多人都听说过的3sigma原则指的是:如果一个样本取值超过了 这个范围,那么就属于异常值。但这个标准通常假设了样本的分布属于正态分布或者近似正态分布,对于互联网公司的幂律分布指标适用性较差,我相信大家都能感受到“JD大盘Top1%的用户成单GMV都是异常值”这个结论有多么的离谱。
基于上述思考,后续研究中我们会着重研究在大样本、幂律分布等和互联网AB实验面临状况比较相似的情况,并参考比如调研分析、社会学等直接收集人类社会经济活动数据的学术分枝统计方法,以及新兴的算法方向的异常值检测、处理方法。
异常值产生的基本原因
•数据收集过程中的测量误差(工具误差)
•群体中个体的差异性(抽样带来的随机性)
•数据造假、作弊(刷单)
•收集的样本来源于不同的群体(比如京东App中有很多背后是B端的用户)
AB实验中异常值剔除的作用与局限性
1.为什么AB实验需要进行异常值处理?
•有一小部分异常用户,由于数据分布非常异常,造成了分流时无法将这一批用户每一次都很完美的均匀分布在实验组、对照组,异常用户在哪、哪个组就会出现AA不均匀的情况
•由于异常用户的指标值较大,造成了整体指标的波动性较大,让实验的精度变差、样本量需求变大,原本可以观测的实验效果就会被淹没在噪音中(指标方差较大带来实验最小提升量-MDE较大)
2.异常值剔除方案的局限性
•做不到的:无法识别业务逻辑中认定的异常值以及异常用户(比如xx用户命中了xx风控规则,所有数据不可信),无法识别指标统计错误(比如某用户1天内在一个页面的停留时长超过24H)
•能做但做不好的:降低指标的波动性,但同时可能会去掉了部分有效样本和有效数据,会让样本产生偏差(bias)。此时需要用更多的样本才能进行更灵敏的实验,或使用ANCOVA、CUPED等方差缩减的方法。
传统统计学方法的应用—— trim & winsorize方法对于补贴实验的效果对比
1.什么是trim方法与winsorize方法,为什么选择这些方法?
这两种方法其实源自于上个世纪的调研分析方法,当年的统计学家除了会遇到样本量不足的问题外,也会遇到在样本收集、统计过程中发生错误而导致的异常值。在当年各种算法技术、算力限制的情况下,统计学家会通过观察、处理当前数据指标分布的方式,对样本进行更加稳健的估计。具体来看
◦Winsorizing(或缩尾法):当样本点的取值超过样本的特定分位数后,将取值直接替换为分位数值
◦Trimming(或去尾法):当样本点的取值超过样本的特定分位数后,将样本点直接丢弃
2.数据表现
•我们使用异常值处理后对样本均值、标准差的影响作对比,可以发现在同样的分位数下,trimming方法通常会有更大的效果。
•但如果我们忽略掉具体的分位数选择,直接对比方法的损失(横轴,均值估计偏差)与收益(纵轴,方差缩减效果),可以发现winsorize方法更具有优势,即在相同的均值估计偏差下,有更大的方差缩减效果(即下图中,左下角更好)。
•方法对于实验的一类、二类错误影响如下
标签:基于,常见问题,数据,方法,样本,实验,异常 From: https://www.cnblogs.com/Jcloud/p/18660356