scipy.stats.Mixture.

ilogcdf#

Смесь.ilogcdf(p, /, *, метод=None)[источник]#

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

Обратная функция логарифма кумулятивной функции распределения («обратная log-CDF») — это аргумент \(x\) для которого логарифм функции распределения \(\log(F(x))\) вычисляется как \(\log(p)\).

Математически это эквивалентно \(F^{-1}(\exp(y))\), где \(y = \log(p)\), но это может быть численно предпочтительнее по сравнению с наивной реализацией (вычисление \(p = \exp(y)\), затем \(F^{-1}(p)\)).

ilogcdf принимает logp для \(\log(p) ≤ 0\).

Параметры:
logparray_like

Аргумент обратной логарифмической функции распределения.

метод{None, 'formula', 'complement', 'inversion'}

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

  • 'formula': использовать формулу для обратной логарифмической CDF

  • 'complement': вычисление обратной лог-CCDF в логарифмическом дополнении logp (см. Примечания)

  • 'inversion': численно решить для аргумента, при котором log-CDF равен logp

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

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

Обратная логарифмическая CDF, вычисленная для предоставленного аргумента.

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

icdf
logcdf

Примечания

Предположим, распределение вероятностей имеет носитель \([l, r]\). Обратная логарифмическая CDF возвращает свое минимальное значение \(l\) в \(\log(p) = \log(0) = -\infty\) и его максимальное значение \(r\) в \(\log(p) = \log(1) = 0\). Поскольку log-CDF имеет диапазон \([-\infty, 0]\), обратная логарифмическая CDF определена только на отрицательных вещественных числах; для \(\log(p) > 0\), ilogcdf возвращает nan.

Иногда необходимо найти аргумент CDF, для которого результирующая вероятность очень близка к 0 или 1 - слишком близко для точного представления с плавающей точкой. Однако во многих случаях логарифм этой результирующей вероятности может быть представлена в арифметике с плавающей запятой, в этом случае эта функция может использоваться для нахождения аргумента CDF, для которого логарифм результирующей вероятности \(y = \log(p)\).

«Логарифмическое дополнение» числа \(z\) математически эквивалентно \(\log(1-\exp(z))\), но он вычисляется, чтобы избежать потери точности, когда \(\exp(z)\) почти \(0\) или \(1\).

Примеры

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

>>> import numpy as np
>>> from scipy import stats
>>> X = stats.Uniform(a=-0.5, b=0.5)

Вычислить обратную логарифмическую CDF при заданном аргументе:

>>> X.ilogcdf(-0.25)
0.2788007830714034
>>> np.allclose(X.ilogcdf(-0.25), X.icdf(np.exp(-0.25)))
True