测试中的异常数据剔除用什么方法?

处理异常值

异常值处理方法有哪些(异常值处理办法)异常值处理方法有哪些(异常值处理办法)


异常值处理方法有哪些(异常值处理办法)


异常值的定义是与均值的偏超过两倍标准,但是在数据中,异常值的情况不止这一种:

1)比如一列数据你打开看全部是数字,当你把它当数值型处理,它会报错;那就得仔细查找原因,遇到比较多的情况是一列数字中夹杂了几个奇怪的字符串或者符号等元素,如果几万条数据中只有一两个这种字符,即使认真从前到后仔细查看也很难发现还浪费大量时间,效率极低。

还有一种情况比较常见,就是看起来是数字,实际上都是字符串的形式,但是以表格查看的时候是看不到字符串的引号;这两种情况可以通过查看特征类型来提前发现,在python中用type()或者dtypes()函数,两者使用对象有别,可自行了解;

2)几种常用异常值检测方法:

3σ探测方法

3σ探测方法的思想其实就是来源于切比雪夫不等式。

对于任意ε>0,有:

当时,如果总体为一般总体的时候,统计数据与平均值的离散程度可以由其标准反映,因此有:

一般所有数据中,至少有3/4(或75%)的数据位于平均2个标准范围内。

所有数据中,至少有8/9(或88.9%)的数据位于平均数3个标准范围内。

所有数据中,至少有24/25(或96%)的数据位于平均数5个标准范围内。

所以如果我们一般是把超过三个离散值的数据称之为异常值。这个方法在实际应用中很方便的使用,但是他只有在单个属性的情况下才适用。

z-score

Z-score是一维或低维特征空中的参数异常检测方法。该技术定数据是高斯分,异常值是分布尾部的数据点,因此远离数据的平均值。距离的远近取决于使用公式计算的归一化数点z i的设定阈值Zthr:

其中xi是一个数据点,μ是所有点xi的平均值,δ是所有点xi的标准偏。

Zthr值一般设置为2.5、3.0和3.5。该技术是使用KNIME工作流中的行过滤器实现的。

这种异常值处理需要结合终需求来决定怎么处理,常见的是不处理或者按缺失值的方法处理,但是在实际场景中,异常值有时候会有非常突出的表现,比如在贷业务中,异常值中的坏账率远高于整体坏账水平或其他区间坏账水平,这时候异常值就得保留并作为决策阈值的参考值。

IQR

观察箱型图,或者通过IQR(InterQuartile Range)计算可以得到数据分布的和第四分位数,异常值是位于四分位数范围之外的数据点。

这个方法真的很简单,因为只需要给数据排个序就行了,显然过于笼统,但在实际场景中,观察箱型图仍然是一个很好的探索数据分布的方法。

毕竟,所有复杂的探索,都是从开始简单的探索一步步得来的嘛!

spss 异常值剔除 用什么方法

我常用一下方法:

1、可以通过“分析”下“描述统计“下“频率”的”绘制“直方图”,看图发现频数出现少的值,就可能是异常值,但还要看距离其它情况的程度。

2、可通过“分析”下的“描述统计”下的“探索”下的“绘制”选项的“叶茎图”,看个案偏离箱体边缘(上端、下端)的距离是箱体的几倍,“○”代表在1.5-3倍之间(离群点),“”代表超过3倍(极端离群点)。

3、可以通过“分析”下“描述统计“下“描述”下的选项“将标准化存为变量Z”,选择相应的变量,“确定”。将生成新变量,如果值超过2,肯定是异常值。

异常值处理

异常值处理的常用方法 (1)直接将该条观测删除

在SPSS软件里有2种不同的删除方法,整条删除和成对删除。

当然,这种方法简单易行,但缺点也很明显,首先我们经常会遇到的情况是观测值很少,这种删除会造成样本量不足,其次,直接删除的观测很多,也可能会改变变量的原有分布,从而造成统计模型不够稳定。

(2)暂且保留,待结合整体模型综合分析

通常我们观测到的异常值,有时在对于整个模型而言,其异常性质并没有观测到的明显,因此综合分析一下,像回归分析,我们经常利用残分布信息来判断模型优劣,残有没有超出经验范围(+3标准),呈现什么分布等,另外对于整个模型而言,会有一些指标像Mahalanobis、Cook's、协方比率等可以提供某条观测或整体的拟合信息,这些指标也会提示分析人员的异常值信息。如果对于整个模型而言,并不是很明显时,建议保留。

(3)如果样本量很小,可以考虑使用均值或其他统计量取代

这不失为一种折中的方法,大部分的参数方法是针对均值来建模的,用均值取代,实际上克服了丢失样本的缺陷,但却丢失了样本“特色”,可以说是不大不小的错误。当然如果是时序数据,用于取代的统计量,可供选择的范围就会多一些,可以针对序列选择合适的统计量取代异常值,也较少存在上述问题。

(4)将其视为缺失值,利用统计模型填补

该方法的好处是可以利用现有变量的信息,对异常值(缺失值)填补。不过这里要视该异常值(缺失值)的特点而定,例如需视是完全随机缺失、随机缺失还是非随机缺失的不同情况而定。

(5)不做过多处理,根据其性质特点,使用稳健模型加以修饰

如果按参数性质分的话,可以将稳健方法分为参数、非参和半参3种情况,这大致与通常的关于参数的设、优点一样,请参见:

(6)使用抽样技术或模拟技术,接受更合理的标准误等信息

抽样样本(SPSS默认是1000)所计算出的均值的标准误,一般来说会更合理,这可以有效应对异常值的影响,但前提是原始样本量不能太少(小于10),小样本的结果不够稳定。另外模拟技术可以利用先验分布特征和样本信息来构建事后预测的概率分布,进行事后模拟,这种技术现在发展的很好,在异常值的应对中,表现良好。

怎么用spss找出异常值

怎么用spss找出异常值?我们知道,在一个数据量很少的表格中,检查其中的数据是否有误,可以简单浏览一遍基本都能发现。但是当数据流量非常庞大的时候,仍然人工审核显然不现实。这时候,我们就可以借助spss来处理这些极端值、错误值。

工具原料电脑spss16.0

方法/步骤分步阅读

1/9

打开spss软件。

2/9

为了方便讲解,我们可以自定义输入一组含有错误值的数据,比如大学生的身高。我们知道正常人的身高在3米以内,如果偏高太多,显然就是我们所说的极端值、错误值。

3/9

上面只是罗列了一个简单的数据组,但在spss中,无论数据的多少,查找极端值、错误值的处理方法都是一样,数据越多越能体现spss的优势。明白这一点之后,在上方的工具栏依次点击“Analyze”(分析)——“Descriptive Statistics”(描述统计)——“Descriptive ”(描述)。

4/9

选中左侧方框的变量,点击中间的箭头按钮,将变量移动到右边的方框。

5/9

点击右上角的“options”(选择)按钮,勾选如图所示的选项,分别代表:均值、标准、小值、值、变量列表。

6/9

勾选“Se standardized values as variables”(将标准化数据保存为变量),点击“ok”。

7/9

从生成的统计分析结果表格中,我们可以看到数据组中的极值,即极小值和极大值,其中极小值是135,很明显,这样的身高属于正常值,但是420显然大大超出了大学生的正常身高范围,所以可以认定,这是一个极端值、错误值。

8/9

当然,仅仅从极小值和极大值来处理数据表中的极端值、错误值是远远不够的,因为有些数据表包含的极端值、错误值往往不止一个。那么这是就要返回到数据窗口,由于经过了上一个步骤的作,这时候数据表中新生成了一组标准化数据“Z大学生身高cm”。

9/9

“Z大学生身高cm”实际上是衡量正态分布的一个标准化数据,服从正态分布的数据,应该分布在正负三个标准以内,这时候,我们就可以通过观察“Z大学生身高cm”变量中,有哪些数字是小于-3或者大于3的,同样指向了“420”这一行,这就是我们要找的极端值、错误值。

如何剔除数据中的异常值?

剔除数据中的异常值的方法:

箱盒图:实验研究时经常使用,非常直观的展示出异常数据。

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

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

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

定义:

异常值outlier:一组测定值中与平均值的偏超过两倍标准的测定值 。与平均值的偏超过三倍标准的测定值,称为高度异常的异常值。在处理数据时,应剔除高度异常的异常值。异常值是否剔除,视具体情况而定。

在统计检验时,指定为检出异常值的显著性水平α=0.05,称为检出水平;指定为检出高度异常的异常值的显著性水平α=0.01,称为舍弃水平,又称剔除水平(reject ll)。

如何用统计方法去除一组数中的异常值?

可以用线性回归的办法求得某一点到直线远,去除这一点即可。

PS:线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。分析按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

GB/T 4883《数据的统计处理和解释 正态样本离群值的判断和处理》就是你需要的东西。

可以选择以下方法。

用线性回归的办法求得某一点到直线远,去除这一点即可。

PS:线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。分析按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

EXCEL公式异常值处理?

把你原来现实 #DIV/0! 单元格里面的公式外面加一层判断

IFERROR(原公式,"")

这样如果遇到错误值 就会现实空的

如图在单元格输入公式:

=AGGREGATE(1,6,B2:B9)

在#DIV/0!的单元格中输入公式:=IF(D3<>0,C4/D3,0),先消除#DIV/0!,

在E5单元格中输入公式:

=AGGREGATE(1,6,B2:B9)

下拉至B10,如图:

把上面单元格原公式改为= iferror(原公式,""),再用求平均函数。