scipy.special.nbdtrc#

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

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

Возвращает сумму членов k + 1 до бесконечности функции вероятности отрицательного биномиального распределения,

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

В последовательности испытаний Бернулли с индивидуальными вероятностями успеха p, это вероятность того, что более чем k неудачи предшествуют n-му успеху.

Параметры:
karray_like

Максимальное допустимое количество сбоев (неотрицательное целое число).

narray_like

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

parray_like

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

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

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

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

Вероятность k + 1 или более сбоев до n успехов в последовательности событий с индивидуальной вероятностью успеха p.

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

nbdtr

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

nbdtrik

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

scipy.stats.nbinom

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

Примечания

Если переданы значения с плавающей точкой для k или n, они будут усечены до целых чисел.

Слагаемые не суммируются напрямую; вместо этого используется регуляризованная неполная бета-функция, согласно формуле,

\[\mathrm{nbdtrc}(k, n, p) = I_{1 - p}(k + 1, n).\]

Обертка для Cephes [1] рутина nbdtrc.

Отрицательное биномиальное распределение также доступно как scipy.stats.nbinom. Использование nbdtrc непосредственно может улучшить производительность по сравнению с sf метод scipy.stats.nbinom (см. последний пример).

Ссылки

[1]

Библиотека математических функций Cephes, http://www.netlib.org/cephes/

Примеры

Вычислить функцию для k=10 и n=5 в p=0.5.

>>> import numpy as np
>>> from scipy.special import nbdtrc
>>> nbdtrc(10, 5, 0.5)
0.059234619140624986

Вычислить функцию для n=10 и p=0.5 в нескольких точках, предоставив массив NumPy или список для k.

>>> nbdtrc([5, 10, 15], 10, 0.5)
array([0.84912109, 0.41190147, 0.11476147])

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

>>> import matplotlib.pyplot as plt
>>> k = np.arange(130)
>>> n_parameters = [20, 20, 20, 80]
>>> p_parameters = [0.2, 0.5, 0.8, 0.5]
>>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
>>> parameters_list = list(zip(p_parameters, n_parameters,
...                            linestyles))
>>> fig, ax = plt.subplots(figsize=(8, 8))
>>> for parameter_set in parameters_list:
...     p, n, style = parameter_set
...     nbdtrc_vals = nbdtrc(k, n, p)
...     ax.plot(k, nbdtrc_vals, label=rf"$n={n},\, p={p}$",
...             ls=style)
>>> ax.legend()
>>> ax.set_xlabel("$k$")
>>> ax.set_title("Negative binomial distribution survival function")
>>> plt.show()
../../_images/scipy-special-nbdtrc-1_00_00.png

Отрицательное биномиальное распределение также доступно как scipy.stats.nbinom. Использование nbdtrc напрямую может быть значительно быстрее, чем вызов sf метод scipy.stats.nbinom, особенно для небольших массивов или отдельных значений. Чтобы получить те же результаты, необходимо использовать следующую параметризацию: nbinom(n, p).sf(k)=nbdtrc(k, n, p).

>>> from scipy.stats import nbinom
>>> k, n, p = 3, 5, 0.5
>>> nbdtr_res = nbdtrc(k, n, p)  # this will often be faster than below
>>> stats_res = nbinom(n, p).sf(k)
>>> stats_res, nbdtr_res  # test that results are equal
(0.6367187499999999, 0.6367187499999999)

nbdtrc может оценивать различные наборы параметров, предоставляя массивы с формами, совместимыми для трансляции для k, n и p. Здесь мы вычисляем функцию для трех различных k в четырёх местах p, в результате получается массив 3x4.

>>> k = np.array([[5], [10], [15]])
>>> p = np.array([0.3, 0.5, 0.7, 0.9])
>>> k.shape, p.shape
((3, 1), (4,))
>>> nbdtrc(k, 5, p)
array([[8.49731667e-01, 3.76953125e-01, 4.73489874e-02, 1.46902600e-04],
       [5.15491059e-01, 5.92346191e-02, 6.72234070e-04, 9.29610100e-09],
       [2.37507779e-01, 5.90896606e-03, 5.55025308e-06, 3.26346760e-13]])