scipy.stats.Uniform.
icdf#
- Uniform.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。
筆記
假設連續機率分布具有支援 \([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])