我有Google搜索,无法找到内置的Dixon的Q-test for python。我知道R有一个,但我的问题是我有多达9个位置,每个位置有一个仪器读取数据,报告一个值(我们称之为绒毛)一个时间实例。由于我们不会进入的原因,如果仪器出现严重错误,数据将存储为fluff = -999。此外,如果风吹错等,仪器可能会收到疯狂的读数。我想做的是在数据上称为Dixon的Qtest,以查看某个位置的读数是否应该被抛出而不用于计算数据的其他统计数据。也许这会有所帮助......
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 :(得分:0)
Dixon Q检验的目的是通过偏离正态分布来识别异常值,但在这种情况下,如果绒毛= - 你知道绒毛(可能是行/读数中的每一个其他数据)都是异常值 - 999。所以听起来像Dixon的Q对你来说是不必要的。
尽管如此,在Python here中有一个Dixon Q测试的原始实现。