mars.tensor.random.hypergeometric#

mars.tensor.random.hypergeometric(ngood, nbad, nsample, size=None, chunk_size=None, gpu=None, dtype=None)[来源]#

从超几何分布中抽取样本。

样本是从具有指定参数的超几何分布中抽取的,ngood(做出良好选择的方式)、nbad(做出不良选择的方式),以及nsample = 抽取的项目数量,该数量小于或等于ngood + nbad的总和。

Parameters
  • ngood (int数组形式整数) – 形成一个良好选择的方式数量。 必须为非负数。

  • nbad (intarray_likeints) – 生成不良选择的方式数。必须是非负的。

  • nsample (intarray_likeints) – 采样的项目数。必须至少为 1,最多为 ngood + nbad

  • size (int 或者 tupleints, 可选) – 输出形状。如果给定的形状是,例如,(m, n, k),那么 m * n * k 个样本将被抽取。如果 size 是 None (默认), 如果 ngoodnbadnsample 都是标量,则返回一个单一值。否则,将抽取 np.broadcast(ngood, nbad, nsample).size 个样本。

  • chunk_size (inttupleinttupleints, 可选) – 每个维度上所需的块大小

  • gpu (bool, 可选) – 如果为True,则在GPU上分配张量,默认为False

  • dtype (数据类型, 可选) – 返回的张量的数据类型。

Returns

out – 从参数化超几何分布中抽取的样本。

Return type

张量或标量

另请参阅

scipy.stats.hypergeom

概率密度函数,分布或累积分布函数等。

备注

超几何分布的概率密度是

\[P(x) = \frac{\binom{m}{n}\binom{N-m}{n-x}}{\binom{N}{n}},\]

其中 \(0 \le x \le m\)\(n+m-N \le x \le n\)

对于 P(x) 成功的概率,其中 n = ngood,m = nbad,N = 样本数量。

考虑一个装有黑色和白色球的 urn,其中有 ngood 个黑球和 nbad 个白球。如果您在不放回的情况下抽取 nsample 个球,则超几何分布描述了抽样中黑球的分布。

请注意,这个分布与二项分布非常相似,除了在这种情况下,样本是无替换抽取的,而在二项分布的情况下,样本是有替换抽取的(或者样本空间是无限的)。随着样本空间变大,这个分布趋近于二项分布。

参考文献

1

Lentner, Marvin, “基础应用统计学”, Bogden和Quigley, 1972.

2

韦斯坦,埃里克 W. “超几何分布。” 来自 MathWorld–一个Wolfram网络资源。 http://mathworld.wolfram.com/HypergeometricDistribution.html

3

维基百科,“超几何分布”, http://en.wikipedia.org/wiki/Hypergeometric_distribution

示例

从分布中抽样:

>>> import mars.tensor as mt
>>> ngood, nbad, nsamp = 100, 2, 10
# number of good, number of bad, and number of samples
>>> s = mt.random.hypergeometric(ngood, nbad, nsamp, 1000)
>>> hist(s)
#   note that it is very unlikely to grab both bad items

假设你有一个罐子,里面有15个白色和15个黑色的弹珠。 如果你随机抽取15个弹珠,12个或更多都是同一种颜色的概率有多大?

>>> s = mt.random.hypergeometric(15, 15, 15, 100000)
>>> (mt.sum(s>=12)/100000. + mt.sum(s<=3)/100000.).execute()
#   answer = 0.003 ... pretty unlikely!