rv_histogram#
- 類別 scipy.stats.rv_histogram(histogram, *args, density=None, **kwargs)[source]#
產生由直方圖給定的分布。這對於從分箱資料樣本產生範本分布很有用。
作為
rv_continuous
類別的子類別,rv_histogram
從它繼承了一系列通用方法 (請參閱rv_continuous
以取得完整列表),並根據提供的分箱資料樣本的屬性實作它們。- 參數:
- histogramarray_like 的元組
包含兩個 array_like 物件的元組。第一個包含 n 個 bin 的內容,第二個包含 (n+1) 個 bin 邊界。特別是,接受
numpy.histogram
的傳回值。- density布林值,選用
如果為 False,則假設直方圖與每個 bin 的計數成正比;否則,假設它與密度成正比。對於恆定的 bin 寬度,這些是等效的,但當 bin 寬度變化時,區別很重要 (請參閱「注意事項」)。如果為 None (預設值),則為了向後相容性而設定
density=True
,但如果 bin 寬度可變,則會發出警告。明確設定 density 以消除警告。在版本 1.10.0 中新增。
注意事項
當直方圖具有不相等的 bin 寬度時,與每個 bin 的計數成正比的直方圖和與 bin 上的機率密度成正比的直方圖之間存在區別。如果使用預設的
density=False
呼叫numpy.histogram
,則產生的直方圖是每個 bin 的計數數,因此應將density=False
傳遞給rv_histogram
。如果使用density=True
呼叫numpy.histogram
,則產生的直方圖以機率密度表示,因此應將density=True
傳遞給rv_histogram
。為了避免警告,當輸入直方圖具有不相等的 bin 寬度時,請務必明確傳遞density
。除了 loc 和 scale 之外,沒有其他形狀參數。pdf 定義為來自所提供直方圖的階梯函數。cdf 是 pdf 的線性內插。
在版本 0.19.0 中新增。
範例
從 numpy 直方圖建立 scipy.stats 分布
>>> import scipy.stats >>> import numpy as np >>> data = scipy.stats.norm.rvs(size=100000, loc=0, scale=1.5, ... random_state=123) >>> hist = np.histogram(data, bins=100) >>> hist_dist = scipy.stats.rv_histogram(hist, density=False)
行為類似一般的 scipy rv_continuous 分布
>>> hist_dist.pdf(1.0) 0.20538577847618705 >>> hist_dist.cdf(2.0) 0.90818568543056499
PDF 在直方圖的最高 (最低) bin 之上 (之下) 為零,由原始資料集的最大值 (最小值) 定義
>>> hist_dist.pdf(np.max(data)) 0.0 >>> hist_dist.cdf(np.max(data)) 1.0 >>> hist_dist.pdf(np.min(data)) 7.7591907244498314e-05 >>> hist_dist.cdf(np.min(data)) 0.0
PDF 和 CDF 遵循直方圖
>>> import matplotlib.pyplot as plt >>> X = np.linspace(-5.0, 5.0, 100) >>> fig, ax = plt.subplots() >>> ax.set_title("PDF from Template") >>> ax.hist(data, density=True, bins=100) >>> ax.plot(X, hist_dist.pdf(X), label='PDF') >>> ax.plot(X, hist_dist.cdf(X), label='CDF') >>> ax.legend() >>> fig.show()
- 屬性:
random_state
取得或設定用於產生隨機變數的產生器物件。
方法
__call__
(*args, **kwds)凍結給定引數的分布。
cdf
(x, *args, **kwds)給定 RV 的累積分布函數。
entropy
(*args, **kwds)RV 的微分熵。
expect
([func, args, loc, scale, lb, ub, ...])透過數值積分計算函數相對於分布的期望值。
fit
(data, *args, **kwds)從資料傳回形狀 (如果適用)、位置和比例參數的估計值。
fit_loc_scale
(data, *args)使用第 1 個和第 2 個動差從資料估計 loc 和 scale 參數。
freeze
(*args, **kwds)凍結給定引數的分布。
interval
(confidence, *args, **kwds)信賴區間,其在中間值周圍具有相等的面積。
isf
(q, *args, **kwds)給定 RV 在 q 的反向存活函數 (
sf
的反函數)。logcdf
(x, *args, **kwds)給定 RV 在 x 的累積分布函數的對數。
logpdf
(x, *args, **kwds)給定 RV 在 x 的機率密度函數的對數。
logsf
(x, *args, **kwds)給定 RV 的存活函數的對數。
mean
(*args, **kwds)分布的平均值。
median
(*args, **kwds)分布的中間值。
moment
(order, *args, **kwds)指定階數的分布的非中心動差。
nnlf
(theta, x)負對數概似函數。
pdf
(x, *args, **kwds)給定 RV 在 x 的機率密度函數。
ppf
(q, *args, **kwds)給定 RV 在 q 的百分點函數 (
cdf
的反函數)。rvs
(*args, **kwds)給定類型的隨機變數。
sf
(x, *args, **kwds)給定 RV 在 x 的存活函數 (1 -
cdf
)。stats
(*args, **kwds)給定 RV 的一些統計量。
std
(*args, **kwds)分布的標準差。
support
(*args, **kwargs)分布的支持度。
var
(*args, **kwds)分布的變異數。