numpy.random.RandomState.hypergeometric#
метод
- random.RandomState.гипергеометрический(ngood, nbad, nsample, размер=None)#
Извлечь выборки из гипергеометрического распределения.
Выборки берутся из гипергеометрического распределения с заданными параметрами, ngood (способы сделать хороший выбор), nbad (способы сделать неправильный выбор), и nsample (количество выбранных элементов, которое меньше или равно сумме
ngood + nbad).Примечание
Новый код должен использовать
hypergeometricметодGeneratorэкземпляр вместо; пожалуйста, смотрите Быстрый старт.- Параметры:
- ngoodint или array_like из int
Количество способов сделать хороший выбор. Должно быть неотрицательным.
- nbadint или array_like из int
Количество способов сделать неправильный выбор. Должно быть неотрицательным.
- nsampleint или array_like из int
Количество элементов для выборки. Должно быть не менее 1 и не более
ngood + nbad.- размерint или кортеж ints, опционально
Форма вывода. Если заданная форма, например,
(m, n, k), затемm * n * kобразцы извлекаются. Если size равенNone(по умолчанию), возвращается единственное значение, если ngood, nbad, и nsample все являются скалярами. В противном случае,np.broadcast(ngood, nbad, nsample).sizeвыбираются образцы.
- Возвращает:
- выходndarray или скаляр
Извлеченные выборки из параметризированного гипергеометрического распределения. Каждая выборка – это количество хороших элементов в случайно выбранном подмножестве размера nsample взяты из набора ngood хорошие элементы и nbad плохие элементы.
Смотрите также
scipy.stats.hypergeomфункция плотности вероятности, распределение или интегральная функция распределения и т.д.
random.Generator.hypergeometricкоторый следует использовать для нового кода.
Примечания
Функция вероятности (PMF) для гипергеометрического распределения
\[P(x) = \frac{\binom{g}{x}\binom{b}{n-x}}{\binom{g+b}{n}},\]где \(0 \le x \le n\) и \(n-b \le x \le g\)
для P(x) вероятности
xхорошие результаты в выбранной выборке, g = ngood, b = nbad, и n = nsample.Рассмотрим урну с чёрными и белыми шариками, ngood из них чёрные и nbad являются белыми. Если вы рисуете nsample шаров без возвращения, тогда гипергеометрическое распределение описывает распределение черных шаров в выбранной выборке.
Обратите внимание, что это распределение очень похоже на биномиальное распределение, за исключением того, что в этом случае выборки извлекаются без возвращения, тогда как в биномиальном случае выборки извлекаются с возвращением (или пространство выборок бесконечно). По мере увеличения пространства выборок это распределение приближается к биномиальному.
Ссылки
[1]Лентнер, Марвин, "Элементарная прикладная статистика", Богден и Куигли, 1972.
[2]Вайсштейн, Эрик В. «Гипергеометрическое распределение». Из MathWorld – веб-ресурс Wolfram. https://mathworld.wolfram.com/HypergeometricDistribution.html
[3]Википедия, "Гипергеометрическое распределение", https://en.wikipedia.org/wiki/Hypergeometric_distribution
Примеры
Извлечь выборки из распределения:
>>> ngood, nbad, nsamp = 100, 2, 10 # number of good, number of bad, and number of samples >>> s = np.random.hypergeometric(ngood, nbad, nsamp, 1000) >>> from matplotlib.pyplot import hist >>> hist(s) # note that it is very unlikely to grab both bad items
Предположим, у вас есть урна с 15 белыми и 15 чёрными шариками. Если вы вытащите 15 шариков случайным образом, какова вероятность, что 12 или более из них будут одного цвета?
>>> s = np.random.hypergeometric(15, 15, 15, 100000) >>> sum(s>=12)/100000. + sum(s<=3)/100000. # answer = 0.003 ... pretty unlikely!