Uniform#
- class scipy.stats.Uniform(*, a=None, b=None, **kwargs)[source]#
均勻分佈。
均勻分佈的機率密度函數為
\[f(x; a, b) = \frac{1} {b - a}\]對於 \(x\) 在 [a, b] 區間。 此類別接受一種參數化:
a
對於 \(a \in (-\infty, \infty)\),b
對於 \(b \in (a, \infty)\)。- 參數:
- tol正浮點數,可選
計算所需的相對容忍度。 若未指定,計算速度可能會更快;若有提供,計算結果可能更符合所需的準確度。
- validation_policy{None, “skip_all”}
指定要執行的輸入驗證等級。 若未指定,則會執行輸入驗證,以確保在邊緣情況(例如,參數超出定義域、引數超出分佈支援等)下的適當行為,並提高輸出 dtype、形狀等的一致性。 傳遞
'skip_all'
以避免在可接受粗略邊緣時,進行這些檢查的計算開銷。- cache_policy{None, “no_cache”}
指定快取中間結果的程度。 若未指定,則會快取某些計算的中間結果(例如,分佈支援、動差等),以提高未來計算的效能。 傳遞
'no_cache'
以減少類別實例保留的記憶體。
另請參閱
- 隨機變數轉換指南
教學
筆記
以下縮寫用於整個文件。
PDF:機率密度函數
CDF:累積分布函數
CCDF:互補 CDF
entropy:微分熵
log-F:F 的對數 (例如 log-CDF)
inverse F:F 的反函數 (例如 inverse CDF)
API 文件旨在描述 API,而非作為統計參考。 我們努力在使用功能所需的層級上保持正確,而非在數學上嚴謹。 例如,可能會隱含地假設連續性和可微分性。 如需精確的數學定義,請查閱您偏好的數學文本。
範例
若要使用分佈類別,必須使用與接受的參數化之一相對應的關鍵字參數來實例化它。
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy import stats >>> from scipy.stats import Uniform >>> X = Uniform(a=0.09, b=188.73)
為了方便起見,可以使用
plot
方法來視覺化分佈的密度和其他函數。>>> X.plot() >>> plt.show()
基礎分佈的支援可使用
support
方法取得。>>> X.support() (0.09, 188.73)
與所有參數化相關聯的參數數值可作為屬性使用。
>>> X.a, X.b, X.ab (0.09, 188.73, 188.64)
若要在引數
x=60.45
處評估基礎分佈的機率密度函數>>> x = 60.45 >>> X.pdf(x) 0.005301102629346905
累積分布函數、其互補函數以及這些函數的對數,其評估方式類似。
>>> np.allclose(np.exp(X.logccdf(x)), 1 - X.cdf(x)) True
這些函數相對於引數
x
的反函數也可用。>>> logp = np.log(1 - X.ccdf(x)) >>> np.allclose(X.ilogcdf(logp), x) True
請注意,分佈函數及其對數也具有雙引數版本,可用於處理兩個引數之間的機率質量。 結果往往比樸素的實作更準確,因為它可以避免減法抵消。
>>> y = 120.82 >>> np.allclose(X.ccdf(x, y), 1 - (X.cdf(y) - X.cdf(x))) True
有方法可用於計算集中趨勢、離散程度、更高階動差和熵的度量。
>>> X.mean(), X.median(), X.mode() (94.41, 94.41, 94.41) >>> X.variance(), X.standard_deviation() (2965.4208, 54.4556773899655) >>> X.skewness(), X.kurtosis() (1.4418186690070737e-15, 1.7999999999999878) >>> np.allclose(X.moment(order=6, kind='standardized'), ... X.moment(order=6, kind='central') / X.variance()**3) True >>> np.allclose(np.exp(X.logentropy()), X.entropy()) True
可以使用
sample
從基礎分佈中繪製偽隨機樣本。>>> X.sample(shape=(4,)) array([156.56241121, 4.74906191, 187.80175725, 49.83554959]) # may vary
- 屬性:
- 所有參數都可作為屬性使用。
方法
support
()隨機變數的支援
plot
([x, y, t, ax])繪製分佈的函數。
sample
([shape, method, rng])從分佈中取得隨機樣本。
moment
([order, kind, method])正整數階的原始、中心或標準動差。
mean
(*[, method])平均值(關於原點的原始一階動差)
median
(*[, method])中位數(第 50 個百分位數)
mode
(*[, method])眾數(最可能的值)
variance
(*[, method])變異數(中心二階動差)
standard_deviation
(*[, method])標準差(中心二階動差的平方根)
skewness
(*[, method])偏度(標準化三階動差)
kurtosis
(*[, method, convention])峰度(標準化四階動差)
pdf
(x, /, *[, method])機率密度函數
logpdf
(x, /, *[, method])機率密度函數的對數
cdf
(x[, y, method])累積分布函數
icdf
(p, /, *[, method])累積分布函數的反函數。
ccdf
(x[, y, method])互補累積分布函數
iccdf
(p, /, *[, method])互補累積分布函數的反函數。
logcdf
(x[, y, method])累積分布函數的對數
ilogcdf
(logp, /, *[, method])累積分布函數對數的反函數。
logccdf
(x[, y, method])互補累積分布函數的對數
ilogccdf
(logp, /, *[, method])互補累積分布函數對數的反函數。
entropy
(*[, method])微分熵
logentropy
(*[, method])微分熵的對數