python剔除异常数据_从数据集中剔除异常数据一般用什么数据算法?

异常值,也称离群值,是指样本中的个别值,其数值明显偏离所属样本的绝大部分观测值。

不论什么研究数据,如果数据中存在可能的异常值,均应在分析之前处理,防止异常值带来的干扰,比如异常值会扭曲X和Y之间的相关关系,回归关系等,异常错误的结论;当然其它研究方法基本均会受到异常值的干扰,异常值较多或者异常稍大时,此时会直接扭曲结论。

1异常值处理步骤

针对异常值,常见的步骤有三步:第一步是异常值检测;第二步是异常值判定;第三步是异常值处理。

第一步:异常值检测

异常值的检验有很多种方法,最常见的是图示法,也有使用分析方法进行探索,如下说明。箱盒图:实验研究时经常使用,非常直观的展示出异常数据;

散点图:研究X和Y的关系时,可直观展示查看是否有异常数据;

描述分析:可通过最大最小值等各类指标大致判断数据是否有异常;

其它:比如结合正态分布图,频数分析等判断是否有异常值。

第二步:异常值判定

上述已经说明异常值会带来严重的影响,扭曲数据结论等。那么首先需要设定异常值的标准,然后再对其进行处理。异常值的判定标准并不统一,更多是通过人为标准进行设定,SPSSAU提供以下几类判定规则:缺失数字

小于设定标准的数字

大于设定标准的数字

大于3个标准差图片来源:SPSSAU“异常值介绍”帮助手册

第三步:异常值处理

完成异常值的判定之后,接着需要进行处理;SPSSAU提供两类处理方式,分别为:

1、设置为Null值;此类处理最简单,而且绝大多数情况下均使用此类处理;直接将异常值“干掉”,相当于没有该异常值。如果异常值不多时建议使用此类方法;

2、填补;如果异常值非常多时,则可能需要进行填补设置,SPSSAU共提供平均值,中位数,众数和随机数共四种填补方式。建议使用平均值填补方式。平均值填补:将不满足判断标准外(即正常数据)数据取平均值,对异常数据填补;

中位数填补:将不满足判断标准外(即正常数据)数据取中位数,对异常数据填补;

众数填补:将不满足判断标准外(即正常数据)数据取众数,对异常数据填补;

随机数填补:将不满足判断标准外(即正常数据)数据取随机数(最小和最大值之间),对异常数据填补;

2异常值设置注意事项:首先需要选中处理的标题,请谨慎操作,一旦操作无法还原数据;

异常值是针对原始数据进行修改;无法还原,建议处理之前先进行“备份数据”,防止处理出错时无法还原。

异常值判定没有固定标准,带微弱主观性;

SPSSAU操作截图如下:图片来源:SPSSAU“异常值介绍”帮助手册

上图中将数字小于0,也或者数字大于7的数据(针对选中的标题);设置为Null值。

特殊情况说明

1、如果填充为null时,任何时候都生效

2、如果填充为平均数,中位数或众数这三种情况时;如果不满足判断标准外(即正常数据)的个数小于3个,则整个处理不生效(无法填充)

3、填充为随机数时;如果不满足判断标准外(即正常数据)的个数小于3个,则整个处理不生效(无法填充)

补充资料参考

你可能感兴趣的:(python剔除异常数据)