Python 中的多元超几何分布

Multivariate Hypergeometric Distribution in Python

是否有用于多元超几何分布(包括计算 CDF)的 python 包?

我希望从 scipy 中找到一个,但没有找到。

我正在考虑对超几何分布使用二项式近似,然后依赖 scipy 支持的多项式分布。 您认为这是一个好的方法吗?

multivar-hypergeom

的一般用法

使用 multivar-hypergeom,使用 pip install multivar-hypergeom 轻松安装。

multivar-hypergeom CDF

测试中的示例用法:

# CDF method tests
@given(st.lists(st.integers(min_value=1, max_value=10000), min_size=2, max_size=10))
@settings(max_examples=100, deadline=5000)
def test_cdf_summing_to_1(xs):
    dist = MultivarHypergeom(xs)
    assert 1 - 1e-10 < list(dist.cdf())[-1] < 1 + 1e10
    for i in range(sum(xs)):
        dist.sample1()
        assert 1 - 1e-10 < list(dist.cdf())[-1] < 1 + 1e10

一代

使用 NumPy 的 Generator.multivariate_hypergeometric