当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.multivariate_hypergeom用法及代码示例


本文简要介绍 python 语言中 scipy.stats.multivariate_hypergeom 的用法。

用法:

scipy.stats.multivariate_hypergeom = <scipy.stats._multivariate.multivariate_hypergeom_gen object>#

多元超几何随机变量。

参数

m array_like

总体中每种类型对象的数量。也就是说, 是类型为 的对象的数量。

n array_like

从总体中抽取的样本数。

seed {无,int,np.random.RandomState,np.random.Generator},可选

用于绘制随机变量。如果种子None, 这RandomState使用单例。如果种子是一个 int,一个新的RandomState使用实例,用种子播种。如果种子已经是一个RandomState或者Generator实例,然后使用该对象。默认为None.

注意

m必须是正整数数组。如果分位数\(i\) 包含超出范围的值\([0, m_i]\) 其中\(m_i\) 是类型对象的数量\(i\) 在总体中,或者如果参数彼此不一致(例如x.sum() != n),方法返回适当的值(例如0为了pmf)。如果m或者n包含负值,结果将包含nan那里。

multivariate_hypergeom 的概率质量函数为

其中 是类型为 的对象的数量, 是总体中的对象总数(所有 的总和),而 是要采集的样本的大小从人口。

参考

[2]

Thomas J. Sargent 和 John Stachurski,2020,多元超几何分布https://python.quantecon.org/_downloads/pdf/multi_hyper.pdf

例子

为了评估多元超几何分布的概率质量函数,具有大小为 的二分总体,在大小为 的样本中,具有第一类型的 对象和 对象第二种,使用:

>>> from scipy.stats import multivariate_hypergeom
>>> multivariate_hypergeom.pmf(x=[8, 4], m=[10, 20], n=12)
0.0025207176631464523

当群体中仅存在两种类型(好和坏)的对象时,multivariate_hypergeom 分布与相应的 hypergeom 分布相同(尽管有微小的数值差异),如上例所示。考虑另一个与超几何分布进行比较的例子:

>>> from scipy.stats import hypergeom
>>> multivariate_hypergeom.pmf(x=[3, 1], m=[10, 5], n=4)
0.4395604395604395
>>> hypergeom.pmf(k=3, M=15, n=4, N=10)
0.43956043956044005

函数 pmflogpmfmeanvarcovrvs 支持广播,约定向量参数( xmn ) 是解释为好像沿最后一个轴的每一行都是单个对象。例如,我们可以将前两次调用 multivariate_hypergeom 组合为

>>> multivariate_hypergeom.pmf(x=[[8, 4], [3, 1]], m=[[10, 20], [10, 5]],
...                            n=[12, 4])
array([0.00252072, 0.43956044])

此广播也适用于 cov ,其中输出对象是大小为 m.shape[-1] 的方阵。例如:

>>> multivariate_hypergeom.cov(m=[[7, 9], [10, 15]], n=[8, 12])
array([[[ 1.05, -1.05],
        [-1.05,  1.05]],
       [[ 1.56, -1.56],
        [-1.56,  1.56]]])

也就是说,result[0] 等于 multivariate_hypergeom.cov(m=[7, 9], n=8) 并且 result[1] 等于 multivariate_hypergeom.cov(m=[10, 15], n=12)

或者,可以调用对象(作为函数)来固定 m 和 n 参数,返回 “frozen” 多元超几何随机变量。

>>> rv = multivariate_hypergeom(m=[10, 20], n=12)
>>> rv.pmf(x=[8, 4])
0.0025207176631464523

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.multivariate_hypergeom。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。