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准則的。

在趨勢化之后得到的噪聲才適用於本准則。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM