scipy.stats.Binomial.

icdf#

Binomial.icdf(p, /, *, method=None)[source]#

累积分布函数的逆函数。

对于单调连续分布,累积分布函数的逆函数(“逆 CDF”),表示为 \(F^{-1}(p)\),是自变量 \(x\),对于该自变量,累积分布函数 \(F(x)\) 的值为 \(p\)

\[F^{-1}(p) = x \quad \text{s.t.} \quad F(x) = p\]

当累积分布函数的严格“逆函数”不存在时(例如,离散随机变量),“逆 CDF”按照惯例定义为支持度 \(\chi\) 内的最小值,对于该最小值,\(F(x)\) 至少为 \(p\)

\[F^{-1}(p) = \min_\chi \quad \text{s.t.} \quad F(x) ≥ p\]

icdf 接受 p 作为 \(p \in [0, 1]\)

参数:
parray_like

逆 CDF 的自变量。

method{None, ‘formula’, ‘complement’, ‘inversion’}

用于评估逆 CDF 的策略。默认情况下 (None),基础设施在以下选项之间进行选择,并按优先级顺序列出。

  • 'formula':使用逆 CDF 本身的公式

  • 'complement':在 p 的补集处评估逆 CCDF

  • 'inversion':以数值方式求解 CDF 等于 p 时的自变量

并非所有 method 选项都适用于所有分布。如果选择的 method 不可用,则会引发 NotImplementedError

返回值:
outarray

在提供的自变量处评估的逆 CDF。

参见

cdf
ilogcdf

备注

假设概率分布的支持度为 \([l, r]\)。逆 CDF 在 \(p = 0\) 时返回其最小值 \(l\),在 \(p = 1\) 时返回其最大值 \(r\)。由于 CDF 的范围为 \([0, 1]\),因此逆 CDF 仅在域 \([0, 1]\) 上定义;对于 \(p < 0\)\(p > 1\)icdf 返回 nan

逆 CDF 也称为分位数函数、百分位数函数和百分点函数。

参考文献

[1]

分位数函数,Wikipediahttps://en.wikipedia.org/wiki/Quantile_function

示例

使用所需的参数实例化分布

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

在所需的自变量处评估逆 CDF

>>> X.icdf(0.25)
-0.25
>>> np.allclose(X.cdf(X.icdf(0.25)), 0.25)
True

当自变量超出域时,此函数返回 NaN。

>>> X.icdf([-0.1, 0, 1, 1.1])
array([ nan, -0.5,  0.5,  nan])