scipy.stats.nbinom#

scipy.stats.nbinom = object>[источник]#

Отрицательная биномиальная дискретная случайная величина.

Как экземпляр rv_discrete класс, nbinom объект наследует от него коллекцию общих методов (см. ниже полный список), и дополняет их деталями, специфичными для этого конкретного распределения.

Методы

rvs(n, p, loc=0, size=1, random_state=None)

Случайные величины.

pmf(k, n, p, loc=0)

Функция вероятности массы.

logpmf(k, n, p, loc=0)

Логарифм функции вероятности.

cdf(k, n, p, loc=0)

Интегральная функция распределения.

logcdf(k, n, p, loc=0)

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

sf(k, n, p, loc=0)

Функция выживания (также определяется как 1 - cdf, но sf иногда более точный).

logsf(k, n, p, loc=0)

Логарифм функции выживания.

ppf(q, n, p, loc=0)

Процентная точка функции (обратная cdf — процентили).

isf(q, n, p, loc=0)

Обратная функция выживания (обратная к sf).

stats(n, p, loc=0, moments='mv')

Среднее ('m'), дисперсия ('v'), асимметрия ('s') и/или эксцесс ('k').

entropy(n, p, loc=0)

(Дифференциальная) энтропия случайной величины.

expect(func, args=(n, p), loc=0, lb=None, ub=None, conditional=False)

Ожидаемое значение функции (одного аргумента) относительно распределения.

median(n, p, loc=0)

Медиана распределения.

mean(n, p, loc=0)

Среднее распределения.

var(n, p, loc=0)

Дисперсия распределения.

std(n, p, loc=0)

Стандартное отклонение распределения.

interval(confidence, n, p, loc=0)

Доверительный интервал с равными площадями вокруг медианы.

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

hypergeom, binom, nhypergeom

Примечания

Отрицательное биномиальное распределение описывает последовательность независимых испытаний Бернулли, повторяемых до достижения предопределённого, неслучайного числа успехов.

Функция вероятности массы количества отказов для nbinom равен:

\[f(k) = \binom{k+n-1}{n-1} p^n (1-p)^k\]

для \(k \ge 0\), \(0 < p \leq 1\)

nbinom принимает \(n\) и \(p\) в качестве параметров формы, где \(n\) это количество успехов, \(p\) это вероятность единичного успеха, и \(1-p\) это вероятность единичного отказа.

Другая распространённая параметризация отрицательного биномиального распределения выражается через среднее количество неудач \(\mu\) для достижения \(n\) успехов. Среднее \(\mu\) связано с вероятностью успеха как

\[p = \frac{n}{n + \mu}\]

Количество успехов \(n\) также может быть задан через параметр "дисперсии", "гетерогенности" или "агрегации" \(\alpha\), которая связывает среднее значение \(\mu\) к дисперсии \(\sigma^2\), например. \(\sigma^2 = \mu + \alpha \mu^2\). Независимо от используемого соглашения для \(\alpha\),

\[\begin{split}p &= \frac{\mu}{\sigma^2} \\ n &= \frac{\mu^2}{\sigma^2 - \mu}\end{split}\]

Это распределение использует процедуры из библиотеки Boost Math C++ для вычисления pmf, cdf, sf, ppf, isf и stats методы. [1]

Функция вероятности массы выше определена в «стандартизированной» форме. Для сдвига распределения используйте loc параметра. В частности, nbinom.pmf(k, n, p, loc) тождественно эквивалентно nbinom.pmf(k - loc, n, p).

Ссылки

[1]

Разработчики Boost. «Boost C++ Libraries». https://www.boost.org/.

Примеры

>>> import numpy as np
>>> from scipy.stats import nbinom
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots(1, 1)

Получить поддержку:

>>> n, p = 5, 0.5
>>> lb, ub = nbinom.support(n, p)

Вычислить первые четыре момента:

>>> mean, var, skew, kurt = nbinom.stats(n, p, moments='mvsk')

Отображение функции вероятности массы (pmf):

>>> x = np.arange(nbinom.ppf(0.01, n, p),
...               nbinom.ppf(0.99, n, p))
>>> ax.plot(x, nbinom.pmf(x, n, p), 'bo', ms=8, label='nbinom pmf')
>>> ax.vlines(x, 0, nbinom.pmf(x, n, p), colors='b', lw=5, alpha=0.5)

Альтернативно, объект распределения может быть вызван (как функция) для фиксации формы и положения. Это возвращает «замороженный» объект RV, содержащий заданные фиксированные параметры.

Зафиксировать распределение и отобразить зафиксированное pmf:

>>> rv = nbinom(n, p)
>>> ax.vlines(x, 0, rv.pmf(x), colors='k', linestyles='-', lw=1,
...         label='frozen pmf')
>>> ax.legend(loc='best', frameon=False)
>>> plt.show()
../../_images/scipy-stats-nbinom-1_00_00.png

Проверить точность cdf и ppf:

>>> prob = nbinom.cdf(x, n, p)
>>> np.allclose(x, nbinom.ppf(prob, n, p))
True

Генерировать случайные числа:

>>> r = nbinom.rvs(n, p, size=1000)