使用说明
3σ原则剔除异常值(粗大误差)如下式,使用步骤:
1. 计算标准差
2. 每一个采样点与均值的差的绝对值与3倍标准差比较,若大于3倍标准差则剔除
3. 重复至步骤1,直到此次循环无任何剔除
失效模式
看下边一组数据,很明显100是一个异常值,但是使用上边的步骤是无法剔除的。
剔除法则左边计算得:86.5 ,右边得98.13. 剔除失效。为什么呢?
1.2 |
0.9 |
1 |
1.4 |
0.8 |
1.25 |
100 |
1.1 |
失效分析
从以下推导可以看出,当采样点数目小于等于10的情景下,无论异常值多大,此剔除法则失效。
那怎么办呢?
可以不使用3倍标准差,那使用多大合适呢?很明显此种剔除粗大误差的方法的实效模式的n值取决于这个系数。
此时可以使用格拉布斯法则。
其实拉以达(3西格玛)法则适用于采样点较多的情况,采样点较少时比较适合用格拉布斯法则。
代码实现
点击此处可查看拉依达法则的一个c++实现。