gpt4 book ai didi

python - 检测零膨胀和过度分散的计数数据中的异常值

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:46 27 4
gpt4 key购买 nike

我想提前感谢您考虑我的问题。

我天真地认为这是一个相当简单的问题,涉及对许多不同计数数据集的离群值检测。具体来说,我想确定一系列计数数据中的一个或多个值相对于分布中的其余计数是否高于或低于预期。

混淆因素是我需要对 3,500 个分布执行此操作,其中一些可能适合零膨胀过度分散泊松,而其他可能最适合负二项式或 ZINB,还有一些可能服从正态分布。出于这个原因,简单的 Z 分数或分布图不适用于大部分数据集。这是我要检测异常值的计数数据示例。

counts1=[1 1 1 0 2 1 1 0 0 1 1 1 1 1 0 0 0 0 1 2 1 1 2 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 2 1 1 1 1 1 1 0 1 1 2 0 0 0 1 0 1 2 1 1 0 2 1 1 1 0 0 1 0 0 0 2 0 1 1 0 2 1 0 1 1 0 0 2 1 0 1 1 1 1 2 0 3]

counts2=[0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0]

counts3=[14 13 14 14 14 14 13 14 14 14 14 14 15 14 14 14 14 14 14 15 14 13 14 14 15 12 13 17 13 14 14 14 14 15 14 14 13 14 13 14 14 14 14 13 14 14 14 15 15 14 14 14 14 14 15 14 1414 14 15 14 14 14 14 14 14 14 14 14 14 14 14 13 16]

counts4=[0 3 1.......]

以此类推,直到 counts3500。

最初我认为我需要在 Python 或 R 中编写一个循环,将一组模型应用于每个分布,并根据 AIC 或其他(可能是 R 中的 fitdistrplus?)选择最佳拟合模型。然后我可以问给定分布的极端情况是什么(落在尾部的计数,例如,“4”的计数是否是上面 counts1 分布中的异常值?)。然而,我不确定这是一个有效的策略,而且我想到可能有一种简单的方法来确定我不知道的计数数据中的异常值。考虑到我想查看的发行版数量,我进行了广泛的搜索,但没有发现任何适合我的问题的东西。

我的最终目标是使用统计上最合适的方法检测每个计数分布的计数显着增加或减少。

再次感谢您的宝贵时间。

最佳答案

outliers 包对这种类型的测试有很好的便利。

library(outliers)

x <- c(rep(c(0,1),1000),3)
chisq.test.out(x)

chi-squared test for outlier

data: x
X-squared = 24.6668, p-value = 6.815e-07
alternative hypothesis: highest value 3 is an outlier

> system.time(rep(chisq.out.test(x),3500))
user system elapsed
0.004 0.000 0.002

关于python - 检测零膨胀和过度分散的计数数据中的异常值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com