bts防弹少年团演唱会

bts防弹少年团演唱会

如何处理数据中的异常值

《如何处理数据中的异常值》

许多人在处理数据时忘记了一件事:异常值。

即使在受控的在线a” b> ,您的数据集也可能会被四肢倾斜。 你是如何处理它们的? 修剪它们,还是有其他方法?

你如何检测异常值的存在以及它们的极端程度?

特别是如果您要优化网站的收入,您应该关心异常值。 这篇文章将深入探讨异常值的性质,如何检测它们,然后是一些常用的方法来处理它们。

什么是异常值?

首先,究竟什么是异常值?

%E5%BC%82%E5%B8%B8%E5%80%BC%E6%98%AF%E6%8C%87%E6%9D%A5%E8%87%AA%E7%BE%A4%E4%BD%93%E7%9A%84%E9%9A%8F%E6%9C%BA%E6%A0%B7%E6%9C%AC%E4%B8%AD%E4%B8%8E%E5%85%B6%E4%BB%96%E5%80%BC%E5%BC%82%E5%B8%B8%E8%B7%9D%E7%A6%BB

《如何处理数据中的异常值》
%E5%9B%BE%E5%83%8F%E6%9D%A5%E6%BA%90“>

当然,这里存在一定程度的含糊之处。 将数据点限定为异常将其留给分析人员或模型,以确定实际上异常的内容以及如何处理此类数据点。

%E8%BF%98%E6%9C%89%E4%B8%8D%E5%90%8C%E7%A8%8B%E5%BA%A6%E7%9A%84%E5%BC%82%E5%B8%B8%E5%80%BC“>

  • 轻微的异常值位于两侧的内围栏之外
  • 极端异常值超出外围

为什么会出现异常值? 市场研究公司Unity Marketing的首席经济学家兼数据顾问Tom” bodenberg> ,“这可能是测量或记录错误的结果,也可能是由于集合定义导致的意外和真实结果。”

异常值可能包含有价值的信息,它们可能是由测量和记录错误引起的无意义的像差,它们可能导致可重复的A / B测试结果出现问题。 因此,在任何情况下询问和分析异常值都很重要,看看它们的实际含义是什么。

《如何处理数据中的异常值》
%E5%9B%BE%E5%83%8F%E6%9D%A5%E6%BA%90“>

它们为什么会发生,在哪里以及它们的含义是什么? 答案可能是不同的业务,但重要的是进行对话而不是忽略数据,无论其重要性如何。

但真正的问题是异常值如何影响您的测试工作?

异常值如何影响A / B测试

虽然异常值会出现在许多分析情况中,但为了进行转换优化,您应该主要关注的是您针对平均订单价值或每位访客%E6%94%B6%E5%85%A5%E7%AD%89

您可以很容易地想象出异常值如何影响单个A / B测试结果。 如果没有,这是%E5%B8%83%E9%B2%81%E5%85%8B%E6%96%AF%E8%B4%9D%E5%B0%94%E9%AB%98%E7%BA%A7%E4%BC%98%E5%8C%96%E5%88%86%E6%9E%90%E5%B8%88%E6%B3%B0%E5%8B%92%E5%A8%81%E5%B0%94%E9%80%8A%EF%BC%8C”>

《如何处理数据中的异常值》 泰勒威尔逊:

“在这种特殊情况下,经销商是罪魁祸首的客户,他们批量购买并打算在以后转售商品。 他们远离您的典型客户,他们下了非常大的订单,很少关注他们的经验。

不仅仅是经销商不会受到您的测试的真正影响。 根据您所在的行业,可能是非常忠诚的客户,订购网站的店内员工或其他表现出异常行为的团体。“

特别是在%E6%A0%B7%E6%9C%AC%E9%87%8F%E8%BE%83%E5%B0%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86%E4%B8%AD%EF%BC%8C%E5%BC%82%E5%B8%B8%E5%80%BC%E5%8F%AF%E8%83%BD%E4%BC%9A%E8%AE%A9%E6%82%A8%E6%95%B4%E5%A4%A9%E9%83%BD%E9%99%B7%E5%85%A5%E5%9B%B0%E5%A2%83%E3%80%82″>

《如何处理数据中的异常值》
图像来源

正如Konversionkraft%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E4%B8%BB%E7%AE%A1Julia” engelmann>

所以这不是一个罕见的边缘问题。 她分享了这个具体的例子,说明包含和排除异常值会如何影响测试结果,最终决定你做出的决定:

《如何处理数据中的异常值》

HiConversion指出 ,A / B测试中的异常值可能导致异常值不会受到较小的UI变化的影响,这些变化可能会影响更加变化无常的主流人群。 批量订购者将推动您较小的可用性更改,如普通访客可能不会。

他们的文章概述了异常值扭曲测试结果的情况。 经过进一步分析,离群值为75%的回访者,比一般游客更多参与。

《如何处理数据中的异常值》
图像来源

认为您的数据不受异常值的影响? 也许是,但可能不是 – 无论如何,最好是肯定地知道。 那么你如何自己诊断呢? 也就是说,如何检测数据中的异常值?

如何检测数据中的异常值

%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96%E6%98%AF%E5%88%86%E6%9E%90%E5%B8%88%E5%92%8C%E4%BC%98%E5%8C%96%E8%80%85

因此,异常值通常通过图形方式检测,尽管您也可以使用您喜欢的工具通过各种统计方法来实现(Excel和R%E5%B0%86%E5%9C%A8%E8%BF%99%E9%87%8C%E5%A4%A7%E9%87%8F%E5%BC%95%E7%94%A8%EF%BC%8C%E5%B0%BD%E7%AE%A1SAS%EF%BC%8CPython%E7%AD%89%E9%83%BD%E5%8F%AF%E4%BB%A5%E5%B7%A5%E4%BD%9C%EF%BC%89%E3%80%82″>

检测异常值的两种最常见的图形方式是箱图和散点图。 箱形图是我最喜欢的方式。

你可以在这里看到蓝色圆圈是异常值,空心圆圈代表温和的异常值,闭合圆圈代表极端异常值:

《如何处理数据中的异常值》
%E5%9B%BE%E5%83%8F%E6%9D%A5%E6%BA%90“>

在R.中分析箱图真的很容易。只需使用boxplot(x,horizo​​ntal = TRUE),其中x是你的数据集,使得它看起来像这样:

《如何处理数据中的异常值》

更好的是,您可以使用boxplot.stats(x)函数,其中x是您的数据集,以获取包含异常值列表($ out)的摘要统计信息:

《如何处理数据中的异常值》

你也可以在散点图中看到这些,但我相信它更难以清楚地说出极端和温和的异常值是什么:

《如何处理数据中的异常值》
图像来源

直方图也可以起作用:

《如何处理数据中的异常值》
图像来源

您还可以在%E8%BF%90%E8%A1%8C%E5%9B%BE%E8%A1%A8“>

转换专家Andrew” anderson>还支持图表的价值,以确定异常值对数据的影响:

《如何处理数据中的异常值》 安德鲁安德森:

“图表是你的朋友。 我查找7天一致数据的原因之一是它允许针对非正常操作进行标准化,无论是大小还是外部影响。

另一件事是,如果存在明显的非正常行动值,只要单方面完成就可以将它们标准化为平均值,并且不会偏向结果。 只有当它显然超出正常线路时才会这样做,而且通常我还会再运行2-3次测试,以确保。“

关于非正态分布的后一点,我们将在本文稍后讨论。

但除了只是在图表上注视外,是否有一种检测异常值的统计方法? 实际上,有很多方法可以这样做( %E8%BF%99%E9%87%8C%E6%A6%82%E8%BF%B0“>

《如何处理数据中的异常值》
图像来源

在后者中, %E6%9E%81%E7%AB%AF%E5%BC%82%E5%B8%B8%E5%80%BC%E5%80%BE%E5%90%91%E4%BA%8E%E8%B6%85%E8%BF%87%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0%E6%88%96%E9%AB%98%E4%BA%8E%E7%AC%AC%E4%B8%89%E4%B8%AA%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0%E7%9A%84%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0%E8%8C%83%E5%9B%B4%E7%9A%843.0%E5%80%8D%E4%BB%A5%E4%B8%8A%EF%BC%8C%E8%80%8C%E8%BD%BB%E5%BA%A6%E5%BC%82%E5%B8%B8%E5%80%BC%E4%BD%8D%E4%BA%8E%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0%E4%BB%A5%E4%B8%8B%E6%88%96%E5%9B%9B%E5%88%86%E4%B9%8B%E4%B8%80%E4%BB%A5%E4%B8%8A%E7%9A%84%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0%E8%8C%83%E5%9B%B4%E7%9A%841.5%E5%80%8D%E8%87%B33.0%E5%80%8D%E4%B9%8B%E9%97%B4%E3%80%82″>

在Excel中突出显示异常值非常容易。 虽然没有用于异常值检测的内置函数,但您可以找到四分位数值并从那里开始。 如果您对此感兴趣,请参阅快速指南。

处理数据异常值的策略

是否应从分析中删除异常值? 答案虽然看似简单明了,但%E5%B9%B6%E4%B8%8D%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95“>

有许多策略可以处理数据中的异常值,并且根据情况和数据集,任何方法都可能是正确的或错误的方式。 此外,大多数主要的测试测试工具都有处理异常值的策略,但它们通常在不同方面存在差异。

因此,即使您的测试工具有自己的默认参数,对异常值进行自定义分析仍然很重要。 您不仅可以更好地信任您的测试数据,而且有时候对异常值的分析会产生自己的见解,有助于优化。

那么让我们来看看一些常见的策略:

在测试工具中设置过滤器

虽然这有一点成本,但过滤掉异常值是值得的,因为你经常可以发现被异常值“隐藏”的重要影响。

根据OptimizeSmart%E7%9A%84Himanshu” sharma>说法,如果您将收入作为A / B测试工具的目标进行跟踪,则应设置一个代码,用于过滤掉测试结果中异常大的订单。

他说,您应该查看过去的分析数据,以确保平均网络订单,并设置过滤器时考虑到这一点。 在他的例子中,假设您的网站在过去3个月内的平均订单价值为150美元 – 那么任何超过200美元的订单都可以被视为异常值。

然后就是编写一些代码来阻止工具传递该值。 %E4%BB%A5%E4%B8%8B%E6%98%AF%E6%9C%89%E5%85%B3%E5%A6%82%E4%BD%95%E5%9C%A8Optimizely%E4%B8%AD%E6%89%A7%E8%A1%8C%E6%AD%A4%E6%93%8D%E4%BD%9C%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AE%80%E8%A6%81%E8%AF%B4%E6%98%8E” tl dr>

if(priceInCents

window.optimizely = window.optimizely || [];

window.optimizely.push([ ‘trackEvent’,

‘orderComplete’,{‘revenue’:priceInCents}]);

在测试后分析期间删除或更改异常值

Mine That Data总裁Kevin Hillstrom解释了为什么他有时会在测试中调整异常值…

《如何处理数据中的异常值》 凯文希尔斯特伦:

“平均而言,客户所花费的内容通常不会分配。

如果您的平均订单价值为100美元,那么您的大多数客户将花费70美元,80美元,90美元或100美元,而您有少量客户花费200美元,300美元,800美元,1600美元,而一个客户花费29,000美元。 如果测试小组中有29,000人,而一个人花费29,000美元,则测试中每人1美元。

这就是一个订单扭曲事物的程度。“

解决此问题的一种方法是删除异常值,或修剪数据集以排除任意数量的数据集。

这在Excel中很容易实现 – 一个简单的TRIMMEAN函数可以解决这个问题。 第一个参数是你想要操作的数组(这里是A列),第二个参数是你想修剪上下肢的程度:

《如何处理数据中的异常值》

R中的修剪值也非常简单。 它存在于均值(函数)中。 所以,假设你有一个与中位数相差很大的均值,这可能意味着你有一些非常大或小的价值倾斜它。 在这种情况下,您可以在大小两侧修剪一定比例的数据。 在R中,它只是平均值(x,trim = .05),其中x是您的数据集,而.05可以是您选择的任意数量:

《如何处理数据中的异常值》

通常使用Trimmed Estimators的这个过程来获得更稳健的统计量 。 顺便说一句,中位数是最精确的统计量,两侧都是50%(你也可以用R – 均值(x,trim = .5)中的平均函数)。

大部分时间在优化中,由于批量订单,您的异常值将处于较高端。 鉴于您对历史数据的了解,如果您想对某个参数以上的值进行事后修整,那么在R中很容易做到。如果我的数据集的名称是“河流”,我可以这样做,鉴于我的数据通常低于1210:rivers.low

这创建了一个新的变量,只包含我认为是非异常值的变量,从那里我可以对其进行包装,得到类似这样的东西:

《如何处理数据中的异常值》

显然,离群值较少,但仍有一些。 无论你从极端中修剪多少个值,这几乎总会发生。

您也可以通过删除超出平均值三个标准偏差的值来完成此操作。 为此,首先需要从测试工具中提取原始数据。 除非您请求支持人员帮助您,否则请优化为其企业客户保留此功能

为了演示如何执行此操作而不是获取真实的客户端数据,我生成了两个具有正态分布的随机数字序列(使用= NORMINV(RAND(),C1,D1),其中C1是平均值,D1是SD,供参考) 。 然而,在“变体1”中,我添加了一些非常高的异常值,使变体1成为“统计上显着”的赢家:

《如何处理数据中的异常值》

然后,您可以使用条件格式来突出显示超过3个标准差的那些。 切掉那些:

《如何处理数据中的异常值》

而且你有一个不同的统计上显着的赢家:

《如何处理数据中的异常值》

我的例子是令人难以置信的干净切割,可能比你要处理的更简单,但至少你可以看到一些非常高的值可以抛弃一些东西(以及一个可能的解决方案)。 如果您想使用此假数据来处理异常值, 请单击此处下载电子表格。

改变异常值

关于如何处理数据异常值的大部分争论归结为以下问题:你应该保留异常值,删除它们,还是将它们更改为另一个变量?

从本质上讲,不是简单地从数据中删除异常值,在这种情况下,您可以使用一组异常值并将其值更改为更能代表数据集的值。 这是一个很小的区别,但很重要:当您修剪数据时,极端值会被丢弃。 当您使用winsorized估算器 (更改值)时,极值会替换为某些百分位数(修剪后的最小值和最大值)。

Kevin Hillstrom 在他的播客提到他削减了订单的前5%或前1%(取决于业务)并改变了价值(例如29,000美元到800美元)。 正如他所说,“你可以调整异常值。”

这是在R中如何做到这一点

考虑底层分布

计算置信区间的传统方法假设数据遵循正态分布 ,但正如我们上面讨论的那样,通过某些指标(如每位访客的平均收入),这通常不是现实的工作方式。

在Julia Engelmann博士的博客精彩文章的另一部分中,她分享了描绘这种差异的图形。 左图显示了完美(理论)的正态分布。 订单数量在正平均值附近波动。 在该示例中,大多数客户订购了五次。 更多或更少的订单不常出现。

右边的图形显示了苦涩的现实。 假设平均转换率为5%,则95%的客户不购买。 大多数买家可能已经下了一两个订单,并且有少数客户订购了极端数量的订单。

《如何处理数据中的异常值》

右侧的分布称为“右倾斜 ”的分布。

《如何处理数据中的异常值》
图像来源

从本质上讲,当我们假设分布是正常的但我们实际上正在使用类似右倾的分布之类的东西时,就会出现问题。 无法再可靠地计算置信区间。

对于您的普通电子商务网站,假设至少有90%的客户不会购买任何东西。 因此,数据中“零”的比例是极端的,一般的偏差是巨大的,包括由于大宗订单导致的四肢。

在这种情况下,使用除t检验之外的其他方法来查看数据是值得的。 (顺便说一下, Shapiro-Wilk测试可以让您测试数据的正态分布)。 所有这些都在本文中提出:

1. Mann-Whitney U-Test

当数据偏离正态分布时,Mann-Whitney U-Test是t检验的替代方法。

2.稳健的统计数据

当数据不是由异常值正态分布或失真时,使用来自鲁棒统计的方法。 在这里,计算平均值和方差,使它们不受异常高或低值的影响 – 我在上面进行了风化。

3.引导

这种所谓的非参数过程独立于任何分布假设而工作,并提供置信水平和间隔的可靠估计。 它的核心是属于重采样方法。 它们通过随机抽样程序根据观察到的数据提供可靠的变量分布估计。

考虑轻度异常值的价值

如上所述,对于每个访问者收入,基础分布通常是非正常的。 少数大买家通常会将数据集倾向极端。 在这种情况下,异常值检测成为可预测的不准确性的牺牲品 – 它会更频繁地检测异常值。

因此,在您的数据分析中,您不应该抛弃异常值。 相反,你应该对它们进行细分并进行更深入的分析 什么人口统计,行为,公司特征与他们的购买行为有关,你如何进行实验以梳理出那里的因果关系?

这个问题比简单的A / B测试更深入,是您的客户获取,定位和细分工作的核心。 我不想在这里过深,但我想说,出于各种营销原因,分析您的最高价值群组也可以带来深刻的见解。

无所谓,做点什么

无论如何,它有助于制定计划。 正如Dan Begley-Groth 在Richrelevance博客上写道

《如何处理数据中的异常值》 Dan Begley-Groth:

“为了使测试在统计上有效,测试游戏的所有规则都应在测试开始之前确定。 否则,我们可能会在测试中暴露出主观性的漩涡。

如果500美元的订单直接由可归因的推荐驱动,那么这个订单是否只计算在内? 如果双方都有相同的数字,是否所有500美元以上的订单都要计算在内? 如果一方在包含500美元以上订单后仍然亏损怎么办? 他们可以包括在内吗?

通过在测试之前定义异常值阈值(对于RichRelevance测试,与均值的三个标准偏差)并建立消除它们的方法,A / B测试解释的随机噪声和主观性都显着降低。 这是在管理A / B测试时减少头痛的关键“

无论您是否认为异常值对数据没有太大影响并选择保留原样,或者您是否想要削减数据的最高和最低25%,重要的是您已经考虑过并且有积极的策略。 数据驱动意味着考虑这样的异常,并忽略它们意味着您可以对错误数据做出决策。

结论

异常值是测试中不经常讨论的内容,但根据您的业务和您正在优化的指标,它们肯定会影响您的结果。

正如我们所看到的,较小样本中的一个或两个高值可以完全扭曲测试,从而使您能够根据错误数据做出决策。 没有bueno。

在大多数情况下,如果您的数据受到这些极端情况的影响,您可以将输入绑定到排除异常值的数据的历史代表。 因此,您的订单价值可能是多个项目(> 3)或下限或上限。

另一种方式,从长远来看可能更好,就是导出测试后的数据并通过各种方式将其可视化。 根据具体情况确定异常值的影响。 从那里,决定是否要删除,更改或保留异常值。

但实际上,有很多方法可以处理数据中的异常值。 这不是一个全面运作的简单快速解决方案,这就是为什么对优秀分析师的需求持续增长的原因。

特征图像源

相关文章

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注