scipy.stats.Normal.

icdf#

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

累積分布函數的反函數。

累積分布函數(“反向 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])