scipy.stats.wishart#

scipy.stats.wishart = <scipy.stats._multivariate.wishart_gen object>[source]#

Wishart 隨機變數。

df 關鍵字指定自由度。scale 關鍵字指定尺度矩陣,該矩陣必須是對稱且正定的。在此上下文中,尺度矩陣通常根據多變量常態精確度矩陣(共變異數矩陣的倒數)來解釋。這些引數必須滿足關係式 df > scale.ndim - 1,但請參閱關於使用 rvs 方法與 df < scale.ndim 的注意事項。

參數:
dfint

自由度,必須大於或等於尺度矩陣的維度

scalearray_like

分佈的對稱正定尺度矩陣

seed{None, int, np.random.RandomState, np.random.Generator}, optional

用於繪製隨機變量。如果 seedNone,則使用 RandomState 單例。如果 seed 是一個整數,則使用一個新的 RandomState 實例,並以 seed 作為種子。如果 seed 已經是 RandomStateGenerator 實例,則使用該物件。預設值為 None

引發:
scipy.linalg.LinAlgError

如果尺度矩陣 scale 不是正定的。

參見

invwishart, chi2

註解

尺度矩陣 scale 必須是對稱正定矩陣。不支援奇異矩陣,包括對稱正半定矩陣。不檢查對稱性;僅使用下三角部分。

Wishart 分佈通常表示為

\[W_p(\nu, \Sigma)\]

其中 \(\nu\) 是自由度,而 \(\Sigma\)\(p \times p\) 尺度矩陣。

wishart 的機率密度函數支援正定矩陣 \(S\);如果 \(S \sim W_p(\nu, \Sigma)\),則其 PDF 由下式給出

\[f(S) = \frac{|S|^{\frac{\nu - p - 1}{2}}}{2^{ \frac{\nu p}{2} } |\Sigma|^\frac{\nu}{2} \Gamma_p \left ( \frac{\nu}{2} \right )} \exp\left( -tr(\Sigma^{-1} S) / 2 \right)\]

如果 \(S \sim W_p(\nu, \Sigma)\) (Wishart),則 \(S^{-1} \sim W_p^{-1}(\nu, \Sigma^{-1})\) (反 Wishart)。

如果尺度矩陣是一維且等於 1,則 Wishart 分佈 \(W_1(\nu, 1)\) 坍縮為 \(\chi^2(\nu)\) 分佈。

[2]rvs 方法實作的演算法可能會產生數值奇異矩陣,其中 \(p - 1 < \nu < p\);使用者可能希望檢查此條件並在必要時產生替換樣本。

在 0.16.0 版本中新增。

參考文獻

[1]

M.L. Eaton,“Multivariate Statistics: A Vector Space Approach”,Wiley,1983。

[2]

W.B. Smith 和 R.R. Hocking,“Algorithm AS 53: Wishart Variate Generator”,Applied Statistics,第 21 卷,第 341-345 頁,1972 年。

範例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.stats import wishart, chi2
>>> x = np.linspace(1e-5, 8, 100)
>>> w = wishart.pdf(x, df=3, scale=1); w[:5]
array([ 0.00126156,  0.10892176,  0.14793434,  0.17400548,  0.1929669 ])
>>> c = chi2.pdf(x, 3); c[:5]
array([ 0.00126156,  0.10892176,  0.14793434,  0.17400548,  0.1929669 ])
>>> plt.plot(x, w)
>>> plt.show()
../../_images/scipy-stats-wishart-1_00_00.png

輸入分位數可以是任何形狀的陣列,只要最後一個軸標記組件即可。

或者,可以呼叫物件(作為函數)以固定自由度和尺度參數,傳回「凍結」的 Wishart 隨機變數

>>> rv = wishart(df=1, scale=1)
>>> # Frozen object with the same methods but holding the given
>>> # degrees of freedom and scale fixed.

方法

pdf(x, df, scale)

機率密度函數。

logpdf(x, df, scale)

機率密度函數的對數。

rvs(df, scale, size=1, random_state=None)

從 Wishart 分佈中抽取隨機樣本。

entropy()

計算 Wishart 分佈的微分熵。