2014-04-03 81 views
1

嘿傢伙我有一個問題涉及到處理時間序列,我有xy數據並且想要移除異常值,所以我通過位於預測範圍外的定義它,我應用了迴歸函數[B,Bint, R,Rint,stats] = regress(y,x);但是我很困惑如何刪除那些? 任何幫助?如何去除位於Matlab預測邊界之外的異常值?

enter image description here

回答

1

直從the docs

並[b,賓特,R,RINT] =迴歸(Y,X)返回的 間隔的n×2矩陣RINT可以使用的來診斷異常值。如果觀測i的間隔 rint(i,:)不包含零,則相應的 殘差大於預期的95%的新觀察值, 暗示異常值。

因此,找到你的數據異常的位置,應該是剛:

n = rint(:,1)>0|rint(:,2)<0; 

然後你就可以將其刪除,以不同的顏色,或任何繪製出來。

+0

感謝您的回覆 我試過這個命令,但是n = 0;沒有被捕獲的點。 – user3493385

+0

'n'不應該是單個值,而應該是與您的數據長度相同的邏輯向量。你的rint值是什麼樣的? max(rint(:,1))'的值是多少? – nkjt

+0

是的,n具有相同長度的數據,但是這些值是零,這意味着沒有任何一個觀察通過條件,最大(rint(:,1))= -2.628171901599862e + 01 min(rint(:,1)) (rint(:,2))= 1.983066866920183e + 01 max(rint(:2))= 4.309366845822975e + 02 – user3493385

相關問題