2

我用谷歌搜索并找不到内置的 Dixon's 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

谢谢!

4

1 回答 1

1

Dixon 的 Q 检验的要点是通过偏离正态分布来识别异常值,但在这种情况下,如果 fluff=-999,您知道绒毛(可能还有行/读数中的所有其他数据)是异常值。所以听起来你不需要 Dixon's Q。

尽管如此,这里有一个用 Python 进行的 Dixon's Q 测试的原始实现。

于 2016-09-07T17:18:29.967 回答