数据预处理之剔除异常值及平滑处理.pdf
数据预处理——剔除异常值及平滑处理
测量数据在其采集与传输过程中,由于环境干扰或人为因素有可
能造成个别数据不切合实际或丢失,这种数据称为异常值。为了恢复
数据的客观真实性以便将来得到更好的分析结果,有必要先对原始数
据剔除异常值。
另外,无论是人工观测的数据还是由数据采集系统获取的数据,
都不可避免叠加上“噪声”干扰 (反映在曲线图形上就是一些“毛刺
和尖峰”)。为了提高数据的质量,必须对数据进行平滑处理(去噪声
干扰)。
(一)剔除异常值。
注:若是有空缺值,或导入Matlab 数据显示为“NaN”(非数),
需要忽略整条空缺值数据,或者填上空缺值。
填空缺值的方法,通常有两种:A. 使用样本平均值填充;B. 使
用判定树或贝叶斯分类等方法推导最可能的值填充(略)。
一、基本思想:
规定一个置信水平,确定一个置信限度,凡是超过该限度的误差,
就认为它是异常值,从而予以剔除。
二、常用方法:拉依达方法、肖维勒方法、一阶差分法。
注意:这些方法都是假设数据依正态分布为前提的。
1. 拉依达方法(非等置信概率)
如果某测量值与平均值之差大于标准偏差的三倍,则予以剔除。
x x 3S
i x
1
1 n 1 n 2 2
其中,x x 为样本均值, 为样本的标准偏
i Sx (x x )
i
n i 1 n 1 i 1
差。
注:适合大样本数据,建议测量次数≥50 次。
代码实例(略)。
2. 肖维勒方法(等置信概率)
在 n 次测量结果中,如果某误差可能出现的次数小于半次时,
就予以剔除。
这实质上是规定了置信概率为1-1/2n,根据这一置信概率,可计
算出肖维勒系数,也可从表中查出,当要求不很严格时,还可按下列
近似公式计算:
n 1 0.4ln(n )
Tab1. 肖维勒系数表
n 3 4 5 6 7 8 9 10 11 12
ωn 1.38 1.53 1.65 1.73 1.80 1.86 1.92 1.96 2.00 2.03
n 13 14 15 20 30 40 50 100 200 500
ωn 2.07 2.10 2.13 2.24 2.39 2.49 2.58 2.81 3.02 3.20
如果某测量值与平均值之差的绝对值大于标准偏差与肖维勒系
数之积,则该测量值被剔除。
x x S
i n x
例1. 利用肖维勒方法对下列数据的异常值 (2.5000 )进行剔除:
1.5034 1.5062 1.5034 1.5024 1.4985 2.5000 1.5007
1.5067 1.4993 1.4969
上述数据保存于文件erro.dat
代码:
x=load('error.dat');
n=