数据分析学习总结笔记04:异常值处理

  • 1 异常值概述
  • 2 如何判断异常值
    • 2.1 简单的统计分析
    • 2.2 3δ原则
    • 2.3 四分位数检验/箱型图分析
    • 2.4 格拉布斯检验
    • 2.5 基于模型检测
    • 2.6 基于距离检测
    • 2.7 基于密度检测
  • 3 如何处理异常值

1 异常值概述

数据存在异常值、缺失值和重复值是数据清洗工作中主要可能遇到的三个问题。
异常值是数据中的极端的观测值,即在数据集中存在不合理的值,又称离群点
在统计学中异常值(outlier)定义为一组测定值中与平均值的偏差超过两倍标准差的测定值,与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值1
一批数据中的异常值值得关注,忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,对结果会带来不良影响;重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。

  • 响应变量中的异常值:若标准化残差的绝对值大于2,对应的观测点称为异常点。
  • 预测变量中的异常值:若第i个观测点的杠杆值hii大于2(p+1)/n,则称该观测点为高杠杆点。

如果删除一个观测点会导致拟合模型的实质性变化,即系数估计值、拟合值和检验值等发生较大变化,则称这个点为强影响点。

2 如何判断异常值

对于异常值的判断,通常使用的方法有很多种,本文主要介绍以下7种方法。

2.1 简单的统计分析

当我们拿到数据后可以对数据进行一个简单的描述性统计分析,譬如最大最小值可以用来判断这个变量的取值是否超过了合理的范围,不合常理的为异常值。比如,对成绩这个属性进行规约:成绩的区间在[0:100],如果样本中的成绩不在该区间范围内,则表示该值属于异常值。

2.2 3δ原则

  • 数据服从正态分布
    根据正态分布的定义可知,距离平均值3δ之外的概率为 P(|x-μ|>3δ) <= 0.003 ,这属于极小概率事件,在默认情况下我们可以认定,距离超过平均值3δ的样本是不存在的。 因此,当样本距离平均值大于3δ,则认定该样本为异常值。
  • 数据不服从正态分布
    当数据不服从正态分布,可以通过远离平均距离多少倍的标准差来判定,多少倍的取值需要根据经验和实际情况来决定。

2.3 四分位数检验/箱型图分析

将所有数据按大小排序,找到其中上四分位数UQ(Q3)和下四分位数LQ(Q1),计算其差值IQR=UQ-LQ(中四分位范围,IQR,即内50%范围),所有在 [LQ-1.5IQR,UQ+1.5IQR] 范围之外的数据都可以判定为异常值。
将其形象化的方式就是通过绘制箱型图进行直观判定。箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。

箱形图的绘制依靠实际数据,不需要事先假定数据服从特定的分布形式,没有对数据作任何限制性要求,它只是真实直观地表现数据形状的本来面貌;另一方面,箱形图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的耐抗性,多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响,箱形图识别异常值的结果比较客观。由此可见,箱形图在识别异常值方面有一定的优越性。

2.4 格拉布斯检验

格拉布斯准则是以正态分布为前提的,理论上较严谨,使用也方便。
格拉布斯的测试一次检测到一个异常值。从数据集中删除该异常值,并且迭代测试直到没有检测到异常值。但是,多次迭代会改变检测概率,并且测试不应该用于六个或更少的样本大小(n>6),因为它经常将大多数点标记为异常值。
该方法具体可以详见该博主。

2.5 基于模型检测

具体操作就是先建立一个数据模型,异常是那些同模型不能完美拟合的对象;如果模型是簇的集合,则异常是不显著属于任何簇的对象;在使用回归模型时,异常是相对远离预测值的对象。

  • 优点:有坚实的统计学理论基础,当存在充分的数据和所用的检验类型的知识时,这些检验可能非常有效。
  • 缺点:对于多元数据,可用的选择少一些,并且对于高维数据,这些检测可能性很差。

2.6 基于距离检测

通常可以在对象之间定义邻近性度量,异常对象是那些远离其他对象的对象。

  • 优点:简单便捷。
  • 缺点:首先,基于邻近度的方法需要O(m2)时间,大数据集不适用;其次,对参数的选择较为敏感;其三,同时不能处理具有不同密度区域的数据集,因为它使用全局阈值,不能考虑这种密度的变化。

2.7 基于密度检测

当一个点的局部密度显著低于它的大部分近邻时才将其分类为离群点。适合非均匀分布的数据。

  • 优点:给出了对象是离群点的定量度量,并且即使数据具有不同的区域也能够很好的处理。
  • 缺点:与基于距离的方法一样,这些方法必然具有O(m2)的时间复杂度。对于低维数据使用特定的数据结构可以达到O(mlogm)。参数选择困难。虽然算法通过观察不同的k值,取得最大离群点得分来处理该问题,但是,仍然需要选择这些值的上下界2

3 如何处理异常值

异常值的处理方法常用有四种:

(1)删除含有异常值的记录,尤其需要剔除高度异常的异常值;

(2)将异常值视为缺失值,交给缺失值处理方法来处理;

(3)用平均值来修正;

(4)不处理。

需要强调的是,如何判定和处理异常值,需要结合实际。

相关笔记:

  1. Python相关实用技巧01:安装Python库超实用方法,轻松告别失败!
  2. Python相关实用技巧02:Python2和Python3的区别
  3. Python相关实用技巧03:14个对数据科学最有用的Python库
  4. Python相关实用技巧04:网络爬虫之Scrapy框架及案例分析
  5. Python相关实用技巧05:yield关键字的使用
  6. Scrapy爬虫小技巧01:轻松获取cookies
  7. Scrapy爬虫小技巧02:HTTP status code is not handled or not allowed的解决方法
  8. 数据分析学习总结笔记01:情感分析
  9. 数据分析学习总结笔记02:聚类分析及其R语言实现
  10. 数据分析学习总结笔记03:数据降维经典方法
  11. 数据分析学习总结笔记04:异常值处理
  12. 数据分析学习总结笔记05:缺失值分析及处理
  13. 数据分析学习总结笔记06:T检验的原理和步骤
  14. 数据分析学习总结笔记07:方差分析
  15. 数据分析学习总结笔记07:回归分析概述
  16. 数据分析学习总结笔记08:数据分类典型方法及其R语言实现
  17. 数据分析学习总结笔记09:文本分析
  18. 数据分析学习总结笔记10:网络分析

本文主要根据个人学习,并搜集部分网络上的优质资源总结而成,如有不足之处敬请谅解,欢迎批评指正、交流学习!


  1. 异常值-百度百科 ↩︎

  2. 数据清洗中异常值如何处理 ↩︎

数据分析学习总结笔记04:异常值处理相关推荐

  1. 数据分析学习总结笔记15:时间序列分析及Python实现

    文章目录 1 引言 2 时间序列的特性 2.1 自相关 2.2 季节性 2.3 平稳性 3 时间序列建模 3.1 移动平均法 3.2 指数平滑法 3.3 双指数平滑法 3.4 三重指数平滑法 3.5 ...

  2. 数据分析学习总结笔记16:NLP自然语言处理与文本探索性分析

    文章目录 1 引言 2 数据集 3 文本统计信息分析 4 Ngram模型探索 5 基于pyLDAvis的主题模型探索 6 绘制词云图 7 情感分析 7.1 TextBlob 7.2 Vader Sen ...

  3. 数据分析学习总结笔记17:文本分析入门案例实战

    文章目录 1 数据准备 2 分词 3 统计词频 4 词云 5 提取特征 6 用sklearn进行训练 1 数据准备 数据样例如下, 数据总量为7.7万+: 本节通过一个实战的例子来展示文本分析的最简单 ...

  4. 数据分析学习总结笔记05:缺失值分析及处理

    数据分析学习总结笔记05:缺失值分析及处理 1 缺失值概念 2 缺失值分析的类别 2.1 按数据缺失形式划分 2.2 按缺失机制与方式划分 3 缺失值的处理方法 3.1 删除缺失值 3.2 缺失值替代 ...

  5. 数据分析学习总结笔记03:数据降维经典方法

    数据分析学习总结笔记03:数据降维经典方法 1. 数据降维概述 2. 数据降维的应用 3. 数据降维经典方法 3.1 主成分分析(PCA) 3.1.1 PCA概述 3.1.2 PCA原理 3.1.3 ...

  6. 数据分析学习总结笔记10:网络分析

    数据分析学习总结笔记10:网络分析 1 网络分析概述 1.1 三大社会科学理论 1.2 网络分析内容 2 网络的基本概念与特征量 2.1 网络的发展 2.2 网络的表达形式 2.3 网络基本概念与特征 ...

  7. MySQL-SQL简介、管理逻辑库和数据表-学习笔记04

    零. 命令表 这篇文章比较长,出现的命令比较多.在这里先将本文出现的命令总结一下 类 命令 解释 注释 # 这是一段注释,/*这也是一段注释*/ 注释的方法 逻辑库 CREATE DATABASE d ...

  8. 大数据分析学习笔记(Z检验,分类器以及Association Rule)

    大数据分析学习笔记(Z检验,分类器以及Association Rule) Task 1 – Hypothesis Testing To improve student learning perform ...

  9. 数据分析学习笔记——数据可视化

    数据分析学习笔记系列--数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍<数据之美-一本书学会可视化设计>的学习后整理所得.全篇主要围绕数据可视化的5个步骤展开,其中重点内容是第三步 ...

  10. Python数据分析学习笔记:使用SciKit-Learn进行数据规范化

    Python数据分析学习笔记:使用SciKit-Learn进行数据规范化 数据规范化是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果 ...

最新文章

  1. Rocksdb 写入数据后 GetApproximateSizes 获取的大小竟然为0?
  2. MongoDB 3.4 复制集全量同步改进
  3. 显示文字_在 iPhone 上调整显示与文字大小,让眼睛更舒服
  4. qt 3d迷宫游戏_Steam上最硬核的恐怖游戏?玩家耗时一个月才通第一关!
  5. 贝叶斯分析好坏_贝叶斯统计 | 第五章第一部分 决策基本概念
  6. 微信支付之JSAPI开发-第二篇:业务流程详解与方案设计
  7. 精诚合作 共创未来——阿里云数据智能合作策略介绍
  8. learn mips
  9. html2canvas截图只截取当前可视区域的问题
  10. ASP.NET母版页和内容页之间如何互相传值?
  11. python的egg包的安装和制作]
  12. canvas 华为tree
  13. 车型代号对照表_车型代号对照表 2016最新版
  14. Python常用基础语法
  15. scratch实现秋天的画
  16. Unity游戏热更新
  17. 国考省考行测:关联词分析法,转折,总结,条件,递进,并列,各种关联词的典型词语和重点在哪
  18. 我,在日本开密室逃脱,钱还没赚,人进“橘子”了……
  19. 金融风控项目-# 相关业务介绍
  20. 小程序如期而至,赶快看看有哪些好玩的小程序吧

热门文章

  1. 【肌电信号】基于带通滤波肌电信号处理含Matlab源码
  2. 如何做肌电信号手势识别?
  3. android 平板端应用商店,安卓平板电脑软件商店--乐商店是目前最安全的Android应用商店...
  4. slickedit快捷键冲突问题
  5. 项目:智能语音对话机器人
  6. ofd 文件发票解析
  7. Unity内嵌浏览器插件(Android、iOS、Windows)
  8. 简道云-第4章-表单实例
  9. C11标准和C++11标准
  10. USB接口和雷电接口有什么关系?