zoukankan      html  css  js  c++  java
  • Matlab IQR准则剔除异常值

    时间序列分析中,要先进行数据的预处理工作,也即异常值的剔除和插补。

    先介绍异常值的剔除。异常值的剔除方法有很多种,在此实现很多论文中提到过的所谓的IQR准则。

    理论基础:

                                                                                         (摘自《区域CORS站坐标时间序列特征分析》硕士论文)

    代码实现:

     1  N1=N(1:337);                            
     2  Q1=prctile(N1,25);  3  Q2=prctile(N1,75);
     4  R=iqr(N1);
     5  num = find(N<Q1-1.5*R | N>Q2+1.5*R)
     6 
     7 %1、根据多篇文献的经验,窗长选取为1年(在这里选了从1到337个数
     8 %据),N为6年的数据
     9 %2、Q1为上四分位数
    10 %3、Q2为下四分位数
    11 %4、R为四分位数的极差,其实R也等于Q2-Q1
    12 %5、求取异常值,num为包含异常值的向量
    13 %6、从以上代码基础上剔除异常值,比如,num = [1 2 3],则
    14 %输入代码:
    15 N1(N1 == 1 | N1 == 2 | N1 ==3) = [];
    16 % 解释:逻辑与(或)|和||表达意思是一样的,只不过|应用范围更广一些
    17 % 以上代码表示把N1中的值为num的那些元素剔除掉。

     --------------------------------------------------------------------补充---------------------------------------------------------------

    注意:上述步骤有些问题,摘自硕士论文的最后两句抹去,应该是对最后的噪声进行异常值的去除而不是对原始时间序列。

    IQR是在时间序列为标准正态分布的前提下,是以标准正态分布为基础的。

    所以以上对于gps原始时间序列,如果没有进行公式拟合、去趋势化之后是不适用于IQR准则的。

    在趋势化之后得到的噪声才适用于本准则。

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/gzl0928/p/8707276.html
Copyright © 2011-2022 走看看