原文http://tecdat.cn/?p=3359

通常,我们倾向于在构建模型时忽略异常值,这不是一个明智的做法, 异常值使数据偏移并降低准确性,在此让我们进一步了解异常处理。

什么样的值是异常值?

异常值是分析师和数据科学家常用的术语,因为它需要密切注意,否则可能导致错误的估计。 简单来说,异常值是一个观察值,远远超出了样本中的整体模式。

我们举个例子,做客户分析,发现客户的年平均收入是80万美元。 但是,有两个客户的年收入是4美元和420万美元。 这两个客户的年收入明显不同于其他人,那这两个观察结果将被视为异常值。

异常值有哪些类型呢?

异常值有两种类型:单变量和多变量。 以上,我们讨论了单变量异常值的例子。 当我们看到单变量的分布时,可以找到这些异常值。 多变量异常值是n维空间中的异常值,必须通过多维度的分布。

Outlier_21.png

让我们以一个例子来理解这一点。 例如身高和体重之间的关系,我们对“身高”和“体重”有单变量和双变量分布。 看box plot,没有任何异常值(高于和低于1.5 * IQR,最常见的方法)。 现在看scatter plot,有两个值在一个特定的重量和身高的平均值以下。

什么会引起异常值呢?

每当我们遇到异常值时,处理这些异常值的理想方法就是找出引起这些异常值的原因。 处理它们的方法将取决于它们发生的原因, 异常值的原因可以分为两大类:

人为错误 自然错误

数据输入错误

人为错误(如数据收集,记录或输入过程中导致的错误)会导致数据中的异常值。 例如:客户的年收入是10万美元,但意外地,数据输入操作附加一个零。 现在的收入就是100万美元,是10倍。 显然,与其他人相比,这将是异常值。

测量误差

这是异常值最常见的来源。 当使用的测量仪器出现故障时,会引起这种情况。 例如:有10台称重机。 其中9个是正确的,1个是错误的。 故障机器上的人员测量重量将高于或低于组内其余人员。 在故障机器上测量的重量可能导致异常值。

实验误差

异常值的另一个原因是实验误差。 例如:在7名跑步者的100米冲刺中,有一名选手错过了跑的口令,让他开始延迟。 因此,这使得跑步者的跑步时间比其他跑步者要多, 总运行时间可能是一个异常值。

故意异常值

通常在自我报告的措施中涉及敏感数据。 例如:通常青少年报告酒量,只有其中一小部分报告实际价值,这里的实际值可能看起来像异常值,因为其余的青少年正在假值。

数据处理错误

无论何时执行数据挖掘,我们从多个来源提取数据。 某些操作或提取错误可能会导致数据集中的异常值。

抽样错误

例如,衡量运动员的身高,错误地在样品中包括几名篮球运动员。 这种包含可能会导致数据集中的异常值。

自然异常值

当异常值不是人为的(由于错误),它是一个自然的异常值。 例如:注意到其中一家著名的保险公司,前50名财务顾问的表现远远高于其他人。 令人惊讶的是,这不是由于任何错误。 因此,每当与顾问一起执行任何数据挖掘活动时,我们都会分别对待此细分。

异常值对数据集有什么影响呢?

异常值可以大幅度地改变数据分析和统计建模的结果。 数据集中异常值有很多不利影响:

增加了误差差异,并降低了统计测试的能力如果异常值是非随机分布的,则可以降低正态性可能影响具有实质意义的估计可能影响回归、方差分析等统计模型假设的基本假设。

为了深入了解,让我们举个例子来检查数据集中有和没有异常值的数据集会发生什么。

Outlier_31.png

从图可知,具有异常值的数据集具有不同的平均值和标准差。

如何检测异常值?

最常用的检测异常值的方法是可视化。使用各种可视化方法,如Box plot,Histogram,Scatter Plot(上图,我们已经使用了box plot和散点图进行可视化),一些分析师也有各种规则来检测异常值。其中一些是:

任何值超出-1.5 x IQR至1.5 x IQR的范围使用封顶方法。超出5%或95%的任何值都可以被认为是异常值距平均值三个或更多的标准差被认为是异常值异常值检测只是对有影响的数据点的数据进行检查的特殊情况,也取决于业务的了解通常使用影响力、杠杆指数或距离来衡量双变量和多变量异常值。如马哈拉诺比斯距离和库克距离(Mahalanobis’ distance and Cook’s D )等经常用于检测异常值。

如何处理异常值?

处理异常值的大多数方法类似于缺失值处理方法,删除观察值、转换、分组、估算或其他统计方法。 在这里,我们将讨论用于处理异常值的常用方法:

删除 

如果由于数据输入错误,异常值观察数据非常少,可删除异常值,也可以在两端修剪去除异常值。

变换合并值

变换变量也可以消除异常值,自然对数可以减少由极值引起的变化,分箱也是一种可变转型的形式, 决策树算法允许变量的合并也可很好地处理异常值,也可以使用向不同观察值分配权重。

Transformation_1.png

估算

就像估算缺失值一样,也可以估计异常值。 可以使用平均值,中值,mode估算方法。 在估算之前,应该首先分析是自然异常值还是人为的。 如果是人为的,可以用估算值来估算。 也可以使用统计模型来预测异常值观测值,而后用预测值估算它。

单独处理

如果有大量异常值,应该在统计模型中单独对待它们。 其中一个方法是将两组视为两个不同的组,并为两组建立个体模型,然后组合输出。

拓端tecdat|数据预处理之异常值处理相关推荐

  1. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  2. 第五篇:数据预处理(二) - 异常值处理

    第五篇:数据预处理(二) - 异常值处理 参考文章: (1)第五篇:数据预处理(二) - 异常值处理 (2)https://www.cnblogs.com/muchen/p/6883101.html ...

  3. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  4. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  5. eviews如何处理缺失数据填补_python数据预处理之异常值、缺失值处理方法

    数据预处理是明确分析目标与思路之后进行数据分析的第一步,也是整个项目中最基础.花费时间较长的工作.除了互联网埋点的数据或企业内部的业务数据之外,往往我们拿到的,比如说网上采集的数据并不是那样规整,这类 ...

  6. Python数据分析入门笔记5——数据预处理之异常值

    系列文章目录 Python数据分析入门笔记1--学习前的准备 Python数据分析入门笔记2--pandas数据读取 Python数据分析入门笔记3--数据预处理之缺失值 Python数据分析入门笔记 ...

  7. Python数据预处理之异常值的处理——【自定义的three_sigma()函数、boxplot()方法】

    文章目录 基于3σ原则检测异常值 代码实现 测试 基于箱型图检测异常值 异常值的处理 基于3σ原则检测异常值 3σ原则,又称拉依达准则.是指假设一组检测数据只含有随机误差.对其进行计算处理得到标准偏差 ...

  8. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  9. python异常值替换为缺失值_数据预处理之异常值(python)

    除了缺失值外,异常值也是数据中常有的噪音,但并非异常值都需要被处理,异常值出现的原因有很多,结合实际业务,他们往往可以被分为"真异常"和"假异常". 有时特定业 ...

  10. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

最新文章

  1. javascript笔记:深入分析javascript里对象的创建(上)续篇
  2. Allure Report使用
  3. Qt之debug和写log文件
  4. BCS和ECCS等合并系统简单对比
  5. ai包装插件_找AI插件很费劲,一次给你66款AI插件合集!每一款都是设计师常用...
  6. 解决error 1045: Access denied for user: 'root@localhost' (Using password: YES)
  7. [Leetcode][第977题][JAVA][有序数组的平方][排序][双指针]
  8. dorado7-发布
  9. matlab矩阵的LU分解
  10. cartographer代码流程分析
  11. linux命令halt之后怎么开启,Linux中halt命令起什么作用呢?
  12. The POM for is missing, no dependency information available
  13. java工厂模式:简单工厂、工厂方法、抽象工厂(通俗易懂)
  14. 叮咚买菜2021第四季度财报数据公布:上海地区实现盈利
  15. 【USB笔记】查询VID对应的USB设备厂商
  16. ZZULIOJ:1099: 角谷猜想(多实例测试)
  17. android 测试工程 关闭混淆,如何对混淆的Android应用进行渗透测试?
  18. C - Parity Shuffle Sorting
  19. 云盘搜索助手 v1.0
  20. java配对碱基链_POJ C程序设计进阶 编程题#2: 配对碱基链

热门文章

  1. MonkeyRunner源码分析之工作原理图
  2. GridView控件事件详解
  3. SqlCacheDependency 实现数据缓存
  4. 深圳dotnet俱乐部2006年1月7日WebPart交流活动
  5. 深入浅出通信原理MIMO合集
  6. C++--第12课 - 操作符重载 - 上
  7. nginx allow 多个ip ipv4的网段表示方法解析
  8. MySql_SQLyog快捷键
  9. 使用POI导出Excel公用类方法 v1.1
  10. 十大因素——造就优秀的董事长