scipy.stats.multivariate_hypergeom¶
- scipy.stats.multivariate_hypergeom = <scipy.stats._multivariate.multivariate_hypergeom_gen object>[源代码]¶
多变量超几何随机变量。
- 参数
- marray_like
群体中每种类型的对象的数量。那是, \(m[i]\) 是类型为 \(i\) 。
- narray_like
从总体中抽取的样本数量。
- random_state :{无,整型,
numpy.random.Generator
,{无,整型, 如果 seed 为无(或 np.random )、
numpy.random.RandomState
使用的是Singleton。如果 seed 是一个整型、一个新的RandomState
实例,其种子设定为 seed 。如果 seed 已经是一个Generator
或RandomState
实例,则使用该实例。
参见
scipy.stats.hypergeom
超几何分布。
scipy.stats.multinomial
多项式分布。
注意事项
m 必须是正整数数组。如果分位数 \(i\) 包含超出范围的值 \([0, m_i]\) 哪里 \(m_i\) 是类型为 \(i\) 在总体中,或者如果参数彼此不一致(例如
x.sum() != n
),则方法返回适当的值(例如0
为pmf
)。如果 m 或 n 包含负值,则结果将包含nan
那里。的概率质量函数
multivariate_hypergeom
是\[P(X_1=x_1,X_2=x_2,\ldots,X_k=x_k)=\frac{\binom{m_1}{x_1} \binom{m_2}{x_2}\cdots\binom{m_k}{x_k}}{\binom{M}{n}},\quad (x_1,x_2,\ldots,x_k)\in\mathbb{N}^k\text{with} \sum_{i=1}^k x_i=n\]哪里 \(m_i\) 是类型为 \(i\) , \(M\) 是总体中的对象总数(所有 \(m_i\) ),以及 \(n\) 是从总体中抽取的样本的大小。
1.6.0 新版功能.
参考文献
- 1
多元超几何分布(http://www.randomservices.org/random/urn/MultiHypergeometric.html)
- 2
托马斯·J·萨金特和约翰·斯塔丘斯基,2020年,多元超几何分布https://python.quantecon.org/_downloads/pdf/multi_hyper.pdf
示例
估计具有规模二分总体的多元超几何分布的概率质量函数 \(10\) 和 \(20\) ,样本大小为 \(12\) 使用 \(8\) 第一种类型的对象和 \(4\) 第二种类型的对象,请使用:
>>> 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
功能
pmf
,logpmf
,mean
,var
,cov
,以及rvs
支持广播,约定下矢量参数 (x
,m
,以及n
)被解释为好像沿着最后一个轴的每一行都是单个对象。例如,我们可以将前两个调用组合到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 参数,返回一个“冻结”的多变量超几何随机变量。
>>> rv = multivariate_hypergeom(m=[10, 20], n=12) >>> rv.pmf(x=[8, 4]) 0.0025207176631464523
方法:
``pmf(x, m, n)``
概率质量函数。
``logpmf(x, m, n)``
概率质量函数的对数。
``rvs(m, n, size=1, random_state=None)``
从多变量超几何分布中随机抽取样本。
``mean(m, n)``
多元超几何分布的平均值。
``var(m, n)``
多元超几何分布的方差。
``cov(m, n)``
计算多元超几何分布的协方差矩阵。