‘壹’ 如何判别测量数据中是否有异常值
一般异常值的检测方法有基于统计的方法,基于聚类的方法,以及一些专门检测异常值的方法等,下面对这些方法进行相关的介绍。
1. 简单统计
如果使用pandas,我们可以直接使用describe()来观察数据的统计性描述(只是粗略的观察一些统计量),不过统计数据为连续型的,如下:
df.describe()红色箭头所指就是异常值。
以上是常用到的判断异常值的简单方法。下面来介绍一些较为复杂的检测异常值算法,由于涉及内容较多,仅介绍核心思想,感兴趣的朋友可自行深入研究。
4. 基于模型检测
这种方法一般会构建一个概率分布模型,并计算对象符合该模型的概率,把具有低概率的对象视为异常点。如果模型是簇的集合,则异常是不显着属于任何簇的对象;如果模型是回归时,异常是相对远离预测值的对象。
离群点的概率定义:离群点是一个对象,关于数据的概率分布模型,它具有低概率。这种情况的前提是必须知道数据集服从什么分布,如果估计错误就造成了重尾分布。
比如特征工程中的RobustScaler方法,在做数据特征值缩放的时候,它会利用数据特征的分位数分布,将数据根据分位数划分为多段,只取中间段来做缩放,比如只取25%分位数到75%分位数的数据做缩放。这样减小了异常数据的影响。
优缺点:(1)有坚实的统计学理论基础,当存在充分的数据和所用的检验类型的知识时,这些检验可能非常有效;(2)对于多元数据,可用的选择少一些,并且对于高维数据,这些检测可能性很差。
5. 基于近邻度的离群点检测
统计方法是利用数据的分布来观察异常值,一些方法甚至需要一些分布条件,而在实际中数据的分布很难达到一些假设条件,在使用上有一定的局限性。
确定数据集的有意义的邻近性度量比确定它的统计分布更容易。这种方法比统计学方法更一般、更容易使用,因为一个对象的离群点得分由到它的k-最近邻(KNN)的距离给定。
需要注意的是:离群点得分对k的取值高度敏感。如果k太小,则少量的邻近离群点可能导致较低的离群点得分;如果K太大,则点数少于k的簇中所有的对象可能都成了离群点。为了使该方案对于k的选取更具有鲁棒性,可以使用k个最近邻的平均距离。
优缺点:(1)简单;(2)缺点:基于邻近度的方法需要O(m2)时间,大数据集不适用;(3)该方法对参数的选择也是敏感的;(4)不能处理具有不同密度区域的数据集,因为它使用全局阈值,不能考虑这种密度的变化。
5. 基于密度的离群点检测
从基于密度的观点来说,离群点是在低密度区域中的对象。基于密度的离群点检测与基于邻近度的离群点检测密切相关,因为密度通常用邻近度定义。一种常用的定义密度的方法是,定义密度为到k个最近邻的平均距离的倒数。如果该距离小,则密度高,反之亦然。另一种密度定义是使用DBSCAN聚类算法使用的密度定义,即一个对象周围的密度等于该对象指定距离d内对象的个数。
优缺点:(1)给出了对象是离群点的定量度量,并且即使数据具有不同的区域也能够很好的处理;(2)与基于距离的方法一样,这些方法必然具有O(m2)的时间复杂度。对于低维数据使用特定的数据结构可以达到O(mlogm);(3)参数选择是困难的。虽然LOF算法通过观察不同的k值,然后取得最大离群点得分来处理该问题,但是,仍然需要选择这些值的上下界。
6. 基于聚类的方法来做异常点检测
基于聚类的离群点:一个对象是基于聚类的离群点,如果该对象不强属于任何簇,那么该对象属于离群点。
离群点对初始聚类的影响:如果通过聚类检测离群点,则由于离群点影响聚类,存在一个问题:结构是否有效。这也是k-means算法的缺点,对离群点敏感。为了处理该问题,可以使用如下方法:对象聚类,删除离群点,对象再次聚类(这个不能保证产生最优结果)。
优缺点:(1)基于线性和接近线性复杂度(k均值)的聚类技术来发现离群点可能是高度有效的;(2)簇的定义通常是离群点的补,因此可能同时发现簇和离群点;(3)产生的离群点集和它们的得分可能非常依赖所用的簇的个数和数据中离群点的存在性;(4)聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大。
7. 专门的离群点检测
其实以上说到聚类方法的本意是是无监督分类,并不是为了寻找离群点的,只是恰好它的功能可以实现离群点的检测,算是一个衍生的功能。
‘贰’ 异常值的判断处理
检验批中异常数据的判断处理
1、依据标准
《计数抽样检验程序》(GB2828)、《正态样本异常值的判断和处理》(GB4883)。
2、异常值定义
异常值是指样本中的个别值,其数值明显偏离它(或他们)所属样本的其余观测值。
3、异常值的种类
(1)可能是总体固有的随机变异性的极端现,属同一总体;
(2)可能是试验条件和方法的偶然偏离,不属同一总体。
4、判断异常值的统计学原则
(1)上侧情形:异常值为高端值;
(2)下侧情形:异常值为低端值;
(3)双侧情形:异常值在两端可能出现极端值。
5、判断异常值的规则:
(1)标准差已知——奈尔(Nair)检验法;
(2)标准差未知——格拉布斯(Grubbs)检验法和狄克逊(Dixon)检验法。
6、格拉布斯(Grubbs)检验法
(1)计算统计量
μ=(X1+X2+…+Xn)/n
s=(∑(Xi-μ)/(n-1))½(i=1,2…n)
Gn=(X(n)-μ)/s
式中μ——样本平均值;
s——样本标准差;
Gn——格拉布斯检验统计量。
(2)确定检出水平α,查表(见GB4883)得出对应n,α的格拉布斯检验临界值G1-α(n)。
(3)当Gn>G1-α(n),则判断Xn为异常值,否则无异常值。
(4)给出剔除水平α’的G1-α’(n),当当Gn>G1-α’(n)时,Xn为高度异常值,应剔除。
三、格拉布斯检验法在回弹法检测砼强度中的应用
将测区混凝土强度换算值按从小到大的顺序排列f1、f2、…fn,计算格拉布斯检验统计量:
Gn=(fn-m)/s
Gn’=(m-f1)/s
式中m——测区混凝土强度换算值的平均值;
s——测区混凝土强度标准差。
取检出水平α为5%,剔除水平α’为1%,按双侧情形检验,从附表中查得检出水平α对应格拉布斯检验临界值G0.975,剔除水平α’对应格拉布斯检验临界值G0.995。
若Gn>Gn’,且Gn>G0.975,则判断fn为异常值,否则,判断无异常值;
若Gn>Gn’,且Gn>G0.995,则判断fn为高度异常值,可考虑剔除;
若Gn’>Gn,且Gn’>G0.975,则判断f1为异常值,否则,判断无异常值;
若Gn’>Gn,且Gn’>G0.995,则判断f1为高度异常值,可考虑剔除;
分析异常值出现原因,判断异常值是否舍弃。不得随意舍去异常值,应检查异常值出现是否系材料或施工质量变化等原因所致。
若检出了一个异常值,对除去已检出异常值后余下得数值继续用格拉布斯检验法检验,直到不能检出异常值为止。
‘叁’ 有哪些比较好的做异常值检测的方法
在回弹法检测砼强度中,按批抽样检测的测区数量往往很多,这就不可避免出现较多的检测异常值,怎样判断和处理这些异常值,对于提高检测结果的准确性意义重大。格拉布斯检验法是土木工程中常用的一种检验异常值的方法
‘肆’ 工程测量时,如何用格拉布斯准则剔除异常值
在做测量不确定度的评定时,对于测量结果进行数据处理之前,往往要进行异常值的剔除工作。超出在规定条件下预期的误差叫做异常值。产生异常值的原因一般是由于疏忽、失误或突然发生的不该发生的原因造成的,如读错、记错、仪器示值突然跳动、突然震动、操作失误等。所以必须在计算测量结果及不确定度评定中要考虑异常值的判别和剔除。
异常值的判别方法也叫异常值检验法,即:判断异常值的统计检验法。其方法有很多种,例如格拉布斯法、狄克逊法、偏度-峰度法、拉依达法、奈尔法等等。每种方法都有其适用范围和优缺点。每种统计检验法都会犯错误1和错误2。但是有人做过统计,在所有方法中,格拉布斯法犯这两种错误的概率最小,所以本文介绍如何使用格拉布斯法来剔除异常值,其判别步骤如下:
1、假设现在有一组测量数据为:例如测量10次(n=10),获得以下数据:8.2、5.4、14.0、7.3、4.7、9.0、6.5、10.1、7.7、6.0。
2、排列数据:将上述测量数据按从小到大的顺序排列,得到4.7、5.4、6.0、6.5、7.3、7.7、8.2、9.0、10.1、14.0。可以肯定,可疑值不是最小值就是最大值。
3、计算平均值x-和标准差s:x-=7.89;标准差s=2.704。计算时,必须将所有10个数据全部包含在内。
4、计算偏离值:平均值与最小值之差为7.89-4.7=3.19;最大值与平均值之差为14.0-7.89=6.11。
5、确定一个可疑值:比较起来,最大值与平均值之差6.11大于平均值与最小值之差3.19,因此认为最大值14.0是可疑值。
6、计算Gi值:Gi=(xi-x- )/s;其中i是可疑值的排列序号——10号;因此G10=( x10-x- )/s=(14.0-7.89)/2.704=2.260。由于 x10-x-是残差,而s是标准差,因而可认为G10是残差与标准差的比值。下面要把计算值Gi与格拉布斯表给出的临界值GP(n)比较,如果计算的Gi值大于表中的临界值GP(n),则能判断该测量数据是异常值,可以剔除。但是要提醒,临界值GP(n)与两个参数有关:检出水平α (与置信概率P有关)和测量次数n (与自由度f有关)。
7、定检出水平α:如果要求严格,检出水平α可以定得小一些,例如定α=0.01,那么置信概率P=1-α=0.99;如果要求不严格,α可以定得大一些,例如定α=0.10,即P=0.90;通常定α=0.05,P=0.95。
8、查格拉布斯表获得临界值:根据选定的P值(此处为0.95)和测量次数n(此处为10),查格拉布斯表,横竖相交得临界值G95(10)=2.176。
9、比较计算值Gi和临界值G95(10):Gi=2.260,G95(10)=2.176,Gi>G95(10)。
10、判断是否为异常值:因为Gi>G95(10),可以判断测量值14.0为异常值,将它从10个测量数据中剔除。
11、余下数据考虑:剩余的9个数据再按以上步骤计算,如果计算的Gi>G95(9),仍然是异常值,剔除;如果Gi<G95(9),不是异常值,则不剔除。本例余下的9个数据中没有异常值。
‘伍’ spss 如何做异常点的检验
异常点。即:异常值
Spss中异常值检查方法如下:
检查异常值方法1:
最常用的方法就是对变量进行排序,这也是最简单的方法。排序后对照最大值和最小值、全距等统计量可以看出数据的离群状况。
检查异常值方法2:
散点图的优势就在于直观的呈现两两变量间的关系,尤其在两变量间的线性关联比较强的时候,如果有离群值,图形侦察的结果会很明显,不过(也包括矩阵散点等图形)其局限在于,其本质还是变量间的两两间的关系,更多的多维信息的提供还是需要经验去判断。
检查异常值方法3:
箱体图为我们提供了数据百分位数的概念,例如四分位数(25%和75%)是将该变量分成约4个部分,分别提供了数据不同分位点附件的离散性,而且同时提供描述数据集中性的中位数,这样在中间50%的数据上提供的信息将是异常丰富的。
检查异常值方法4:
在主要统计建模过程中大多会提供异常值或极端值的诊断,例如距离的测算:cook距离、杠杆值等;影响统计量:DfBeta、协方差比率等。它们均有相应的经验上的判断标准,如果有些指标没有相应的判断异常值的标准,则可以通过排序的方式,找到其相对大小。
检查异常值方法5:
标识异常个案,这里提供的是统计建模的方式侦查异常个案(注意它的结果有可能和我们其他方式侦查的结果有出处),这种方法主要通过两步聚类的思想,找到不同个案间的相似性,通过对所在类别的评价计算出异常索引,然后找到对应的ID号,则该个案可能为异常值,至于对这些异常个案怎么处理,分析人员作出何种决定,这个最好结合专业背景综合判断后续的处理方法。
检查异常值方法6:
如果涉及的是时序数据,控制图是不错的选择,在控制规则里提供了异常丰富的侦查异常个案的选项。
当然其他过程里也有一些细节的处理,例如,排列图、误差条形图、可视离散化、缺失值诊断、数据验证过程等。
‘陆’ 如何剔除数据中的异常值
剔除数据中的异常值的方法:
一、异常值检测
异常值的检验有很多种方法,最常见的是图示法,也有使用分析方法进行探索。
箱盒图:实验研究时经常使用,非常直观的展示出异常数据。
散点图:研究X和Y的关系时,可直观展示查看是否有异常数据。
描述分析:可通过最大最小值等各类指标大致判断数据是否有异常。
其它:比如结合正态分布图,频数分析等判断是否有异常值。
二、异常值判定
上述已经说明异常值会带来严重的影响,扭曲数据结论等。那么首先需要设定异常值的标准,然后再对其进行处理。异常值的判定标准并不统一,更多是通过人为标准进行设定,SPSSAU提供以下几类判定规则:
1、设置为Null值;此类处理最简单,而且绝大多数情况下均使用此类处理;直接将异常值“干掉”,相当于没有该异常值。如果异常值不多时建议使用此类方法。
2、填补;如果异常值非常多时,则可能需要进行填补设置,SPSSAU共提供平均值,中位数,众数和随机数共四种填补方式。建议使用平均值填补方式。
‘柒’ 剔除“异常值”的一般原则是啥
异常值(outlier)是指一组测定值中与平均值的偏差超过两倍标准差的测定值,与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。异常值outlier:一组测定值中与平均值的偏差超过两倍标准差的测定值。与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。在处理数据时,应剔除高度异常的异常值。异常值是否剔除,视具体情况而定。在统计检验时,指定为检出异常值的显着性水平α=0.05,称为检出水平;指定为检出高度异常的异常值的显着性水平α=0.01,称为舍弃水平,又称剔除水平(reject level)。异常值是指一组测定值中与平均值的偏差超过两倍标准差的测定值。与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。在处理数据时,应剔除高度异常的异常值。异常值是否剔除,视具体情况而定。在统计检验时,指定为检出异常值的显着性水平α=0.05,称为检出水平;指定为检出高度异常的异常值的显着性水平α=0.01,称为舍弃水平,又称剔除水平(reject level)。标准化数值(Z-score)可用来帮助识别异常值。Z分数标准化后的数据服从正态分布。因此,应用Z分数可识别异常值。我们建议将Z分数低于-3或高于3的数据看成是异常值。这些数据的准确性要复查,以决定它是否属于该数据集。肖维勒准则法(
Chauvenet):经典方法,改善了拉依达准则,过去应用较多,但它没有固定的概率意义,特别是当测量数据值n无穷大时失效。
‘捌’ 异常值是指什么请列举1种识别连续型变量异常值的方法
可以选择以下方法。 用线性回归的办法求得某一点到直线最远,去除这一点即可。 PS:线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。分析按照自变量和因变量之间的关系类
‘玖’ 如何检测业务数据中的异常
处理异常值
异常值的定义是与均值的偏差超过两倍标准,但是在脏数据中,异常值的情况不止这一种:
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:
Zthr值一般设置为2.5、3.0和3.5。该技术是使用KNIME工作流中的行过滤器节点实现的。
这种异常值处理需要结合最终需求来决定怎么处理,常见的是不处理或者按缺失值的方法处理,但是在实际场景中,异常值有时候会有非常突出的表现,比如在现金贷业务中,异常值中的坏账率远高于整体坏账水平或其他区间坏账水平,这时候异常值就得保留并作为决策阈值的参考值。
IQR
观察箱型图,或者通过IQR(InterQuartile Range)计算可以得到数据分布的第一和第四分位数,异常值是位于四分位数范围之外的数据点。
这个方法真的很简单,因为只需要给数据排个序就行了,显然过于笼统,但在实际场景中,观察箱型图仍然是一个很好的探索数据分布的方法。
毕竟,所有复杂的探索,都是从最开始简单的探索一步步得来的嘛!