异常值检验有很多种方法,这里主要说箱形图。所谓的异常就是和大众不一样呗,就是指样本中出现的明显偏离大多数观测值的个别值。
- 箱线图(boxplot)
知识原理
(我手画了下,因为最开始是发在公众号上的,现在移图想去水印,图上有些可能看不清)
适用
不要求数据服从正态分布;
判断异常条件
数据小于Q1-QR1.5或者数据大于Q3+1.5QR为异常值;
实例
数据来自:http://www.uni-koeln.de/themen/statistik/data/cluster/birth.dat
数据解释:该数据集含有68个国家和地区的出生率(%)与死亡率(%)
实例结果及结论:Spss输出结果(我的spss版本是18.0)如下,变量2(下面第二个图,出生率)没有异常值;变量3(下面第一个图, 死亡率)中,样本4和5是极端值(外限以外的数据,spss用星星标示),样本7、9和50是异常值(内限以外的数据,spss里用圈圈标示) - Z分标准化法(正负三倍标准差以外的数据为高度异常值,予以剔除)
适用:数据服从正态分布。往往实际数据并不服从正态分布,并且Z分标准化法在计算过程中涉及的标准差和均值本身就受到异常值的影响,异常值产生的个数不会超过总数的0.7%,箱形图是根据客观数据识别异常值,比较客观。 - 异常值检测有很多很多种方法….
有个小思考,我还没有想通:
异常值这个问题的起源在于前几天一个学课程论的美女学姐问了我这么一个问题:她现在有七个指标,要让10个专家对每个指标赋予一定的权重,比如其中一位专家分别赋予0.1 0.1 0.1 0.1 0.1 0.1 0.4 ,总的是1。现在美女学姐说她想知道这10个专家的意见是不是一致或者大体一致。。对于这个问题。我第一反映就是现在是10*7的数据,我可以看看每列有没有异常值,这抬眼一看稍微一算就出来了,但想想还是要好好对学姐,再认真一点,就查了下一致性检验(非层次分析里的一致性检验,也非数理统计里的相合性),看到了kappa检验,然后就发现了问题,kappa适用于 假如有两个评分者针对一批作文进行分级,分为好中差三级,然后去判定这两个评分者的评分结果是否一致,注意这里是一批作文,是属于很多个样本。。而美女学姐的问题实际每个专家在每个指标上只有一个值,也就是说相当于两个专家对很多独立同分布的样本进行赋予权重,然后来判断两个专家的评判是否具有一致性,和这个问题是不一样的,这样就没有办法采用kappa。对于这种一个样本的问题,我也觉得很无奈,就想聚类上面不是有很多度量这种类型的的两列数据的方法么,可不可以用马氏距离去做,即假设这十个样本(每个七个维度)来自同一个总体,但是距离要小于多少才能算一致呢。。其实想来想去,就直接做出每列数据的异常值多简单明了,可以采用不需要数据分布的箱形图或者基于正态分布的三倍标准差法则去找出异常值,多简单啊。
那么现在我思考的是,对于这种10*7的数据,怎么算出总体的一致性,直接去算一致性,而不是像我这样一列一列的去看数据的异常值(每一列是10个数据,代表10位专家给同一个指标赋予的权重)。先把这个问题记在着,以后有机会遇到合适的方法或者有时间查资料时再去扩充。