首页 > 解决方案 > 使用 numpy 确定观察提供分布的概率

问题描述

我有两组大约 15000 个点,描述了根据两种可能状态 S1 或 S2 对看似随机变量的各种观察。这两组存储在 numpy 数组中。让我们假设分布不是“经典的”并且是重叠的。

现在我有了一个新的观察结果,我想知道它是否更可能与状态 S1 或 S2 有关。

我知道如何使用numpy.quantile来获取我的两个分布的任何分位数,但现在我想以相反的方式使用它,以便我可以直接获得每个分布的相关分位数。

我知道如何通过蛮力和二分法搜索来做到这一点,但我觉得必须有一种更有效的“pythonic”方式。

是否有一个 numpy 函数可以这样做?

谢谢

标签: pythonnumpystatistics

解决方案


好吧,愚蠢的问题,显而易见的答案。

显然在 python 中有一些可用的东西,但在 numpy 中没有,在 scipy 中。

from scipy import stats

print(stats.percentileofscore(array_distribution_S1,observation))
print(stats.percentileofscore(array_distribution_S2,observation))

这使得能够选择最可能的分布。


推荐阅读