scipy.special.nbdtrik#

scipy.special.nbdtrik(y, n, p, выход=None) = 'nbdtrik'>#

Функция процентиля отрицательного биномиального распределения.

Возвращает обратное значение относительно параметра k of y = nbdtr(k, n, p), кумулятивная функция распределения отрицательного биномиального распределения.

Параметры:
yarray_like

Вероятность k или меньше сбоев до n успехи (float).

narray_like

Целевое количество успехов (положительное целое число).

parray_like

Вероятность успеха в отдельном событии (float).

выходndarray, необязательно

Необязательный выходной массив для результатов функции

Возвращает:
kскаляр или ndarray

Максимальное количество допустимых сбоев, при котором nbdtr(k, n, p) = y.

Смотрите также

nbdtr

Кумулятивная функция распределения отрицательного биномиального распределения.

nbdtrc

Функция выживания отрицательного биномиального распределения.

nbdtri

Обратная относительно p of nbdtr(k, n, p).

nbdtrin

Обратная относительно n of nbdtr(k, n, p).

scipy.stats.nbinom

Отрицательное биномиальное распределение

Примечания

Wrapper for the CDFLIB [1] Подпрограмма Fortran cdfnbn.

Формула 26.5.26 из [2],

\[\sum_{j=k + 1}^\infty {{n + j - 1} \choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\]

используется для сведения вычисления функции кумулятивного распределения к таковой для регуляризованной неполной бета-функции \(I\).

Вычисление k включает поиск значения, которое дает желаемое значение y. Поиск основан на монотонности y с k.

Ссылки

[1]

Barry Brown, James Lovato и Kathy Russell, CDFLIB: Библиотека подпрограмм Fortran для кумулятивных функций распределения, обратных функций и других параметров.

[2]

Милтон Абрамовиц и Ирен А. Стегун, ред. Справочник по математическим функциям с формулами, графиками и математическими таблицами. Нью-Йорк: Dover, 1972.

Примеры

Вычислите функцию кумулятивного распределения отрицательного бинома для примерного набора параметров.

>>> import numpy as np
>>> from scipy.special import nbdtr, nbdtrik
>>> k, n, p = 5, 2, 0.5
>>> cdf_value = nbdtr(k, n, p)
>>> cdf_value
0.9375

Проверить, что nbdtrik восстанавливает исходное значение для k.

>>> nbdtrik(cdf_value, n, p)
5.0

Построить график функции для различных наборов параметров.

>>> import matplotlib.pyplot as plt
>>> p_parameters = [0.2, 0.5, 0.7, 0.5]
>>> n_parameters = [30, 30, 30, 80]
>>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
>>> parameters_list = list(zip(p_parameters, n_parameters, linestyles))
>>> cdf_vals = np.linspace(0, 1, 1000)
>>> fig, ax = plt.subplots(figsize=(8, 8))
>>> for parameter_set in parameters_list:
...     p, n, style = parameter_set
...     nbdtrik_vals = nbdtrik(cdf_vals, n, p)
...     ax.plot(cdf_vals, nbdtrik_vals, label=rf"$n={n},\ p={p}$",
...             ls=style)
>>> ax.legend()
>>> ax.set_ylabel("$k$")
>>> ax.set_xlabel("$CDF$")
>>> ax.set_title("Negative binomial percentile function")
>>> plt.show()
../../_images/scipy-special-nbdtrik-1_00_00.png

Отрицательное биномиальное распределение также доступно как scipy.stats.nbinom. Метод функции процентиля ppf возвращает результат nbdtrik округлено до целых чисел:

>>> from scipy.stats import nbinom
>>> q, n, p = 0.6, 5, 0.5
>>> nbinom.ppf(q, n, p), nbdtrik(q, n, p)
(5.0, 4.800428460273882)