012. 数据预处理〔1〕——剔除异常值及平滑处理
测量数据在其采集及传输过程中,由于环境干扰或人为因素有可能造成个别数据不切合实际或丧失,
这种数据称为异常值。为了恢复数据的客观真实性以便将来得到更好的分析结果,有必要先对原始数据
〔1〕剔除异常值;
另外,无论是人工观测的数据还是由数据采集系统获取的数据,都不可防止叠加上“噪声〞干扰〔反
映在曲线图形上就是一些“毛刺和尖峰〞〕。为了提高数据的质量,必须对数据进展〔2〕平滑处理〔去噪
声干扰〕;
〔一〕剔除异常值。
注:假设是有空缺值,或导入 Matlab 数据显示为“NaN〞〔非数〕,需要①忽略整条空缺值数据,或
者②填上空缺值。
填空缺值的方法,通常有两种:A. 使用样本平均值填充;B. 使用判定树或贝叶斯分类等方法推导最
可能的值填充〔略〕。
一、根本思想:
规定一个置信水平,确定一个置信限度,但凡超过该限度的误差,就认为它是异常值,从而予以剔
除。
二、常用方法:拉依达方法、肖维勒方法、一阶差分法。
注意:这些方法都是假设数据依正态分布为前提的。
1. 拉依达方法〔非等置信概率〕
如果某测量值及平均值之差大于标准偏差的三倍,那么予以剔除。
其中,
为样本均值,
1
2
2
1
1
( )
1
n
x
i
i
S x x
n
=
æ ö
ç ÷
è ø
= -
-
å
为样本的标准偏差。
注:适合大样本数据,建议测量次数≥50 次。
代码实例〔略〕。
2. 肖维勒方法〔等置信概率〕
在 n 次测量结果中,如果某误差可能出现的次数小于半次时,就予以剔除。
这实质上是规定了置信概率为 1-1/2n,根据这一置信概率,可计算出肖维勒系数,也可从表中查出,
当要求不很严格时,还可按以下近似公式计算:
Tab1. 肖维勒系数表
如果某测量值及平均值之差的绝对值大于标准偏差及肖维勒系数之积,那么该测量值被剔除。
例1. 利用肖维勒方法对以下数据的异常值〔2.5000〕进展剔除:
上述
代码:
x=load('error.dat');
n=length(x);
- 1
- 2
- 3
前往页