scipy.stats.multivariate_hypergeom#
-
scipy.stats.multivariate_hypergeom =
object> [источник]# Многомерная гипергеометрическая случайная величина.
- Параметры:
- marray_like
Количество объектов каждого типа в популяции. То есть, \(m[i]\) является количеством объектов типа \(i\).
- narray_like
Количество выборок, взятых из популяции.
- seed{None, int, np.random.RandomState, np.random.Generator}, опционально
Используется для генерации случайных величин. Если seed является None, RandomState используется синглтон. Если seed является int, новый
RandomStateиспользуется экземпляр, инициализированный с seed. Если seed уже являетсяRandomStateилиGeneratorэкземпляр, то этот объект используется. По умолчанию None.
Методы
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)
Вычислить ковариационную матрицу многомерного гипергеометрического распределения.
Смотрите также
scipy.stats.hypergeomГипергеометрическое распределение.
scipy.stats.multinomialМультиномиальное распределение.
Примечания
m должен быть массивом положительных целых чисел. Если квантиль \(i\) содержит значения вне диапазона \([0, m_i]\) где \(m_i\) — это количество объектов типа \(i\) в популяции или если параметры противоречат друг другу (например,
x.sum() != n), методы возвращают соответствующее значение (например,0дляpmf). Если m или n содержат отрицательные значения, результат будет содержатьnanтам.Функция вероятности массы для
multivariate_hypergeomявляется\[\begin{split}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\end{split}\]где \(m_i\) — это количество объектов типа \(i\), \(M\) — это общее количество объектов в популяции (сумма всех \(m_i\)), и \(n\) это размер выборки, которую нужно взять из популяции.
Добавлено в версии 1.6.0.
Ссылки
[1]Многомерное гипергеометрическое распределение, http://www.randomservices.org/random/urn/MultiHypergeometric.html
[2]Thomas J. Sargent и John Stachurski, 2020, Многомерное гипергеометрическое распределение https://python.quantecon.org/multi_hyper.html
Примеры
Для вычисления функции вероятности многомерного гипергеометрического распределения с дихотомической популяцией размера \(10\) и \(20\), при размере выборки \(12\) с \(8\) объекты первого типа и \(4\) объектов второго типа используйте:
>>> from scipy.stats import multivariate_hypergeom >>> multivariate_hypergeom.pmf(x=[8, 4], m=[10, 20], n=12) 0.0025207176631464523
The
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