scipy.stats.Binomial.

logpmf#

Биномиальное.logpmf(x, /, *, метод=None)[источник]#

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

Функция вероятности массы ("PMF"), обозначаемая \(f(x)\), это вероятность того, что случайная величина \(X\) будет принимать значение \(x\).

\[f(x) = \frac{d}{dx} F(x)\]

logpmf вычисляет логарифм функции вероятности («log-PMF»), \(\log(f(x))\), но он может быть численно более выгодным по сравнению с наивной реализацией (вычисление \(f(x)\) и взятие логарифма).

logpmf принимает x для \(x\).

Параметры:
xarray_like

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

метод{None, 'formula', 'logexp'}

Стратегия, используемая для вычисления log-PMF. По умолчанию (None), инфраструктура выбирает между следующими вариантами, перечисленными в порядке приоритета.

  • 'formula': использовать формулу для самой log-PMF

  • 'logexp': оценить PMF и взять его логарифм

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

Возвращает:
выходмассив

Логарифм PMF, вычисленный в аргументе x.

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

pmf
logcdf

Примечания

Предположим, что дискретное распределение вероятностей имеет носитель на множестве целых чисел \({l, l+1, ..., r-1, r}\). По определению носителя, логарифм PMF принимает минимальное значение \(-\infty\) (т.е. \(\log(0)\)) для нецелочисленных \(x\) и для \(x\) вне носителя; т.е. для \(x < l\) или \(x > r\).

Для распределений с бесконечным носителем часто бывает, что pmf для возврата значения 0 когда аргумент теоретически находится в пределах носителя; это может произойти, потому что истинное значение PMF слишком мало для представления выбранным типом данных. Однако log-PMF часто будет конечным (не -inf) на гораздо большей области. Следовательно, может быть предпочтительнее работать с логарифмами вероятностей и плотностей вероятностей, чтобы избежать потери значимости.

Ссылки

[1]

Функция плотности вероятности, Википедия, https://en.wikipedia.org/wiki/Probability_density_function

Примеры

любым из целых чисел в полуоткрытом диапазоне

>>> import numpy as np
>>> from scipy import stats
>>> X = stats.Binomial(n=10, p=0.5)

Вычислить логарифм PMF при желаемом аргументе:

>>> X.logpmf(5)
np.float64(-1.4020427180880297)
>>> np.allclose(X.logpmf(5), np.log(X.pmf(5)))
True