scipy.stats.Normal.

icdf#

Normal.icdf(p, /, *, method=None)[源代码]#

累积分布函数的逆函数。

累积分布函数的逆函数(“逆 CDF”),记为 \(F^{-1}(p)\),是使累积分布函数 \(F(x)\) 的值为 \(p\) 的参数 \(x\)

\[F^{-1}(p) = x \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]

分位数函数,维基百科https://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])