数据中异常值的处理方法_总(仅供参照)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据中异常值的检测与处理方法
一、数据中的异常值
各种类型的异常值:
•数据输入错误:数据收集,记录或输入过程中出现的人为错误可能导致数据异常。例如:一个客户的年收入是$ 100,000。数据输入运算符偶然会在图中增加一个零。现在收入是100万美元,是现在的10倍。显然,与其他人口相比,这将是异常值。
•测量误差:这是最常见的异常值来源。这是在使用的测量仪器出现故障时引起的。例如:有10台称重机。其中9个是正确的,1个是错误的。
有问题的机器上的人测量的重量将比组中其他人的更高/更低。在错误的机器上测量的重量可能导致异常值。
•实验错误:异常值的另一个原因是实验错误。举例来说:在七名跑步者的100米短跑中,一名跑步者错过了专注于“出发”的信号,导致他迟到。因此,这导致跑步者的跑步时间比其他跑步者多。他的总运行时间可能是一个离群值。
•故意的异常值:这在涉及敏感数据的自我报告的度量中通常被发现。例如:青少年通常会假报他们消耗的酒精量。只有一小部分会报告实际价值。这里的实际值可能看起来像异常值,因为其余的青少年正在假报消费量。
•数据处理错误:当我们进行数据挖掘时,我们从多个来源提取数据。某些操作或提取错误可能会导致数据集中的异常值。
•抽样错误:例如,我们必须测量运动员的身高。错误地,我们在样本中包括一些篮球运动员。这个包含可能会导致数据集中的异常值。
•自然异常值:当异常值不是人为的(由于错误),这是一个自然的异常值。例如:保险公司的前50名理财顾问的表现远远高于其他人。令人惊讶的是,这不是由于任何错误。因此,进行任何数据挖掘时,我们会分别处理这个细分的数据。
在以上的异常值类型中,对于房地产数据,可能出现的异常值类型主要有:(1)数据输入错误,例如房产经纪人在发布房源信息时由于输入错误,而导致房价、面积等相关信息的异常;在数据的提取过程中也可能会出现异常值,比如在提取出售二手房单价时,遇到“1室7800元/m2”,提取其中的数字结果为“17800”,这样就造成了该条案例的单价远远异常于同一小区的其他房源价格,如果没有去掉这个异常值,将会导致整个小区的房屋单价均值偏高,与实际不符。(2)故意的异常值,可能会存在一些人,为了吸引别人来电询问房源,故意把价格压低,比如房屋单价为1元等等;(3)自然异常值。房价中也会有一些实际就是比普通住宅价格高很多的真实价格,这个就需要根据实际请况进行判断,或在有需求时单独分析。
二、数据中异常值的检测
各种类型的异常值检测:
1、四分位数展布法
方法[1]:大于下四分位数加1.5倍四分位距或小于上四分位数减1.5倍。
把数据按照从小到大排序,其中25%为下四分位用FL表示,75%处为上四
分位用FU 表示。
计算展布为:L U F F F d -=,展布(间距)为上四分位数减去下四分位数。 最小估计值(下截断点):F L d F 5.1-
最大估计值(上截断点):F U d F 5.1+
数据集中任意数用X 表示,F U F L d F X d F 5.15.1+<<-,
上面的参数1.5不是绝对的,而是根据经验,但是效果很好。计算的是中度异常,参数等于3时,计算的是极度异常。我们把异常值定义为小于下截断点,或者大于上截断点的数据称为异常值。
优点:与方差和极差相比,更加不容易受极端值的影响,且处理大规模数据效果很好。
缺点:小规模处理略显粗糙。而且只适合单个属相的检测。
2、识别不遵守分布或回归方程的值
方法:双变量和多变量离群值通常使用影响力或杠杆指数或距离来衡量,像Mahalanobis 的距离和Cook‘s D 这样的流行指数经常被用来检测异常值。在
SAS 中,我们可以使用PROC Univariate, PROC SGPLOT ,为了识别异常值和有影响力的观测,我们还研究了STUDENT 、COOKD 、RSTUDENT 等统计指标。
马氏距离法[1]:假设两个变量Xi 和Xj 具有较高的正相关关系,某样本Xk 在这两个变量上的取值为(Xki ,Xkj ),若Xki 远远大于Xi 的平均值,而Xkj 却远小于Xj 的平均值,则这个样品就很可能是异常的。检验这种异常品可以采用马氏平方距离法。主要思想是:把n 个P 维样品看作p 维空间中的n 个点,则第i 个样品所对应的坐标为(Xi1,Xi2,…,Xip )。样品在空间中的相对位置可通过各样品与总体重心(以各变量均值(X1,X2,…,Xp )为坐标的点)之间的距离来求得。
设X(1),X(2),…,X(p)(其中(Xi1,Xi2,…,Xip )为来自Np 中的n 个样品,其中1212(,,...,),(,,...,)p k k k nk X X X X X mean x x x ==
则样品X(i)到重心12(,,...,)p X X X 的马氏平方距离定义为
1
211221122(,,...,)'(,,...,)i i i ip p i i ip p D x x x x x x x x x x x x -=------∑ 其中∑可由样本协方差阵来估计
'()()1
1(,()())1n i i i S S x x x x n ===---∑∑ 容易证明,当n 较大时,2i D 近似服从2p
x 其临界值true D 可由2x 分布表来查出、当2i true D D >=时,将第i 个样品判为异常。
稳健马氏距离:
由于异常值的存在会显著影响中心值和协方差矩阵的估计,使一般马氏
距离不能正确反映各个观测的偏离程度。对于这类数据,需要通过稳健统计的方法,构建稳定的均值和协方差矩阵统计量。
具体算法:
设数据集为一个n 行p 列的矩阵X n×p ,从中随机抽取h 个样本数据,并计算这个样本数据的样本均值T 1和协方差矩阵S 1。 然后通过)()()(d 111'11T x S T x i i i --=-计算这 n 个样本数据到中心T 1的马氏距离,选出这n 个距离中最小的h 个,再通过这个h 个样本计算样本均值T 2和协方差矩阵S 2。根据Rousseeuw,Van Driessen(1999)可以证明 det(S 2)≤ det(S 1),仅当T 1=T 2时候等号成立。这样子不断迭代下去,当 det(S m )≤ det(S m-1)停止迭代。这时再通过S m 进行加权计算就能求出稳健的协方差矩阵估计量。
(1)确定h 的值。h 值在0.5n 和n 之间,一般来说h 越小,它的抵抗异常值能力越强,但是最小不能少于50%,因为少于50%已经不能分辨哪些是正常值哪些是异常值,所以作为一种折中,h 默认是取h=0.75*n ,而当样本数量比较少时,h 一般取0.9n 。
(2)如果h=n ,这时计算的是整个样本数据的均值向量和协方差矩阵,返回计算结果并停止。
(3)从n 个样本中随机抽取p+1个样本构造协方差矩阵,并计算其行列式,如果行列式为0,再随机加入一个样本直到行列式不为0,这时这个协方差矩阵为初始协方差矩阵S 0,并利用随机选择出来的样本计算初始样本均值 T 0。
(4)当n 值较小(小于600)时,直接从T 0、S 0计算得到T 1、S 1并开始迭代,