摘要:如何利用参数和非参数方法来检测异常值 有许多用来识别异常值的参数和非参数方法,参数方法需要一些关于变量分布情况的假设条件,而非参数方法并不需要这些假设条件。此外,你还可以利用单变量分析和多变量分析的方法来识别异常值。 那么问题来了,哪个方法得到的结果才是正确的呢?不幸的是,实际上并不存在唯一的标准答案,结果的正确与否取决于你识别这些异常值的目的。你可能想要单独分析某个变量的情况,或者想利用这些变量构建预测模型。 让我们采用更直观的方法来识别异常值吧。 假设存在一个关于移动应用程序的数据集,其中包括操作系统、用户收入和设备情况三个变量,如下图所示: 接下来我将尝试利用参数和非参数方法来检测异常值。 参数方法 我们可以通过计算观测值出现的概率或者计算观测值与均值之间的距离来判断异常值的情况。比如,正态分布情况下位于距均值三倍标准差范围外的观测值被视为异常值。 上述的例子中,如果我们假设原始数据服从正态分布,那么收入大于60,000元的数据都被视为异常值。从右图中可以看出,对数正态分布能更好地识别出真实的异常值,这是因为原始数据的分布近似于服从对数正态分布。但这并不是一个通用的方法,因为我们很难事先判断出数据潜在的分布情况。我们可以通过数据的拟合曲线来判断参数情况,但是如果原始的数据发生了变化,那么分布的参数也会随之发生改变。 非参数方法 首先让我们来看一个识别异常值的简单的非参数方法——箱线图: 上文提到的数据集中还存在一个分类变量——操作系统。如果我们根据操作系统将数据分组并绘制箱线图,那么我们是否能够识别出相同的异常值呢? 结论 我们可以利用基于数据潜在分布情况的参数和非参数方法来检测异常值。在样本数据的均值十分贴近于分布函数的中心且数据集足够大的情况下,我们可以利用参数方法来识别异常值。如果中位数比均值更贴近于数据的分布中心,那么我们应该利用非参数的方法来识别异常值。 在第二部分中,我将介绍如何通过多变量分析方法——聚类方法(一个常用的数据挖掘技术)——来识别异常值。 原文作者: Jacob Joseph 译者:Fibears 原文链接:https://blog.clevertap.com/how-to-detect-outliers-using-parametric-methods-and-non-parametric-methods/ |