2013-04-16 64 views
1

我已經谷歌搜索並找不到內置的Dixon Q-test for python。我知道R有一個,但我的問題是我有多達9個地點,每個地點都有一臺儀器讀取數據,報告一個時間值(我們稱它爲絨毛)。由於我們不會涉及的原因,如果儀器出現嚴重錯誤,數據將以fluff = -999存儲。另外,如果風吹錯等,儀器可能會收到瘋狂的讀數。我想要做的就是對數據調用Dixon的Qtest,以查看某個位置的讀數是否應該被拋出,而不是用於計算其他數據統計。也許這將有助於...Dixon對異常值的Q測試

Data[location][time]是一本字典的詞典。

for t in Time:  
    L = [] 
    for loc in Location: 
     L.append(Data[loc][t]) 

    #perform Dixon's Outlier test 
    average = sum(L)/len(L) 
    AverData[t] = average 

    #more analysis 

謝謝!

回答

0

狄克遜Q檢驗的要點是通過偏離正態分佈來識別異常值,但在這種情況下,如果fluff = 1,則知道絨毛(並且可能是該行/閱讀中的其他每一條數據) -999。所以這聽起來像迪克森的Q對你來說是不必要的。

儘管如此,在Python here中有一個Dixon's Q測試的原始實現。