异常数据(粗大误差)处理-3西格玛准则 及其失效原因分析及解决办法

使用说明

3σ原则剔除异常值(粗大误差)如下式,使用步骤:

1. 计算标准差

2. 每一个采样点与均值的差的绝对值与3倍标准差比较,若大于3倍标准差则剔除

3. 重复至步骤1,直到此次循环无任何剔除

|x_i-\bar{x}|>3\sqrt{\frac{(x_1-\bar{x})^2+(x_2-\bar{x})^2+...+(x_n-\bar{x})^2}{n-1}}

失效模式

看下边一组数据,很明显100是一个异常值,但是使用上边的步骤是无法剔除的。

剔除法则左边计算得:86.5 ,右边得98.13. 剔除失效。为什么呢?

1.2
0.9
1
1.4
0.8
1.25
100
1.1

失效分析

从以下推导可以看出,当采样点数目小于等于10的情景下,无论异常值多大,此剔除法则失效。

那怎么办呢?

可以不使用3倍标准差,那使用多大合适呢?很明显此种剔除粗大误差的方法的实效模式的n值取决于这个系数。

此时可以使用格拉布斯法则。

其实拉以达(3西格玛)法则适用于采样点较多的情况,采样点较少时比较适合用格拉布斯法则。

|x_i-\bar{x}|>3\sqrt{\frac{(x_1-\bar{x})^2+(x_2-\bar{x})^2+...+(x_n-\bar{x})^2}{n-1}}

\frac{n-1}{9}(x_i-\bar{x})^2>(x_1-\bar{x})^2+...+(x_i-\bar{x})^2+...+...(x_n-\bar{x})^2

\frac{n-10}{9}(x_i-\bar{x})^2>(x_1-\bar{x})^2+...+(x_{i-1}-\bar{x})^2+(x_{i+1}-\bar{x})^2...+...(x_n-\bar{x})^2

代码实现

点击此处可查看拉依达法则的一个c++实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值