numpy.random.Generator.negative_binomial#
метод
- random.Generator.negative_binomial(n, p, размер=None)#
Извлекать выборки из отрицательного биномиального распределения.
Выборки берутся из отрицательного биномиального распределения с заданными параметрами, n успехов и p вероятность успеха, где n > 0 и p находится в интервале (0, 1].
- Параметры:
- nfloat или array_like из float
Параметр распределения, > 0.
- pfloat или array_like из float
Параметр распределения. Должен удовлетворять условию 0 < p <= 1.
- размерint или кортеж ints, опционально
Форма вывода. Если заданная форма, например,
(m, n, k), затемm * n * kобразцы извлекаются. Если size равенNone(по умолчанию), возвращается единственное значение, еслиnиpоба являются скалярами. В противном случае,np.broadcast(n, p).sizeвыбираются образцы.
- Возвращает:
- выходndarray или скаляр
Выбранные образцы из параметризованного отрицательного биномиального распределения, где каждый образец равен N, количеству неудач, которые произошли до достижения общего числа n успехов.
Примечания
Функция вероятности отрицательного биномиального распределения равна
\[P(N;n,p) = \frac{\Gamma(N+n)}{N!\Gamma(n)}p^{n}(1-p)^{N},\]где \(n\) это количество успехов, \(p\) это вероятность успеха, \(N+n\) — это количество испытаний, а \(\Gamma\) — это гамма-функция. Когда \(n\) является целым числом, \(\frac{\Gamma(N+n)}{N!\Gamma(n)} = \binom{N+n-1}{N}\), что является более распространенной формой этого термина в pmf. Отрицательное биномиальное распределение дает вероятность N неудач при n успехах, с успехом на последнем испытании.
Если бросать кубик повторно до третьего появления "1", то распределение вероятностей количества не-"1", которые появятся до третьей "1", является отрицательным биномиальным распределением.
Поскольку этот метод внутренне вызывает
Generator.poissonс промежуточным случайным значением, ValueError возникает при выборе \(n\) и \(p\) приведет к тому, что среднее + 10 сигма выборочного промежуточного распределения превысит максимально допустимое значениеGenerator.poissonметод. Это происходит, когда \(p\) слишком низок (много неудач происходит для каждого успеха) и \(n\) слишком велик ( допускается много успехов). Поэтому \(n\) и \(p\) значения должны удовлетворять ограничению:\[n\frac{1-p}{p}+10n\sqrt{n}\frac{1-p}{p}<2^{63}-1-10\sqrt{2^{63}-1},\]Где левая часть уравнения — это полученное среднее + 10 сигма выборки из гамма-распределения, внутренне используемого как \(lam\) параметр выборки Пуассона, а правая часть уравнения — ограничение на максимальное значение \(lam\) в
Generator.poisson.Ссылки
[1]Вайсштейн, Эрик В. «Отрицательное биномиальное распределение». Из MathWorld – веб-ресурс Wolfram. https://mathworld.wolfram.com/NegativeBinomialDistribution.html
[2]Википедия, «Отрицательное биномиальное распределение», https://en.wikipedia.org/wiki/Negative_binomial_distribution
Примеры
Извлечь выборки из распределения:
Пример из реального мира. Компания бурит разведочные нефтяные скважины, каждая с оценочной вероятностью успеха 0,1. Какова вероятность одного успеха для каждой последующей скважины, то есть какова вероятность одного успеха после бурения 5 скважин, после 6 скважин и т.д.?
>>> rng = np.random.default_rng() >>> s = rng.negative_binomial(1, 0.1, 100000) >>> for i in range(1, 11): ... probability = sum(s<i) / 100000. ... print(i, "wells drilled, probability of one success =", probability)