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.
Примечания
Предположим, что дискретное распределение вероятностей имеет носитель на множестве целых чисел \({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