scipy.stats.multivariate_normal的使用


參考:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.multivariate_normal.html

一個多元正態隨機變量。
mean關鍵字指定平均值,cov關鍵字指定協方差矩陣。
新版本0.14.0。

 

補充:高斯分布

Gaussian Distribution(Normal Distribution)其圖形特點為中間高,兩頭低,是鍾形曲線(bell-shaped curve)。在高斯分布中,以數學期望μ(即mean)表示鍾型的中心位置(也即曲線的位置),而標准差(standard deviation)σ表征曲線的離散程度。

 

協方差矩陣,參考百度百科:

協方差矩陣的每個元素是各個向量元素之間的協方差

協方差矩陣可用來表示多維隨機變量的概率密度,從而可通過協方差矩陣達到對多維隨機變量的研究

 

1)參數:

  • x : 數組,分位數,最后一個x軸標記組件。
  • mean:數組,可選的。分布的均值(默認為0)
  • cov :數組,可選的。分布的協方差矩陣(默認為1)

可以該multivariate_normal對象可以被調用(作為函數)來固定均值和協方差參數,返回一個“frozen”的多元正態隨機變量rv:

rv = multivariate_normal(mean=None, scale=1)

凍結對象采用相同的方法,但保持給定的均值和協方差不變。

 

2)注意:

將參數均值mean設為None等價於將均值mean設為零向量。參數cov可以是一個標量,在這種情況下,協方差矩陣是該值的單位乘、協方差矩陣的對角項向量,或者二維數組。

協方差矩陣cov必須是一個(對稱的)正半定矩陣。將cov的行列式和逆分別計算為偽行列式和偽逆,使cov不需要滿秩。

multivariate_normal的概率密度函數是:

μ是平均值mean,默認為0;∑即cov是協方差矩陣,默認為1;k是x獲取值的空間的維度

 

3)舉例:

from scipy.stats import multivariate_normal
x = np.linspace(0, 5, 10, endpoint=False)
y = multivariate_normal.pdf(x, mean=2.5, cov=0.5);
x,y

返回,y得到的值x的值在mean=2.5取值點附近的可能性:

(array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5]),
 array([0.00108914, 0.01033349, 0.05946514, 0.20755375, 0.43939129,
        0.56418958, 0.43939129, 0.20755375, 0.05946514, 0.01033349]))

畫圖:

plt.plot(x, y)

 

輸入分位數x可以是任何形狀的數組,只要最后一個軸標記組件。這使得我們可以在二維中顯示非各向同性隨機變量的凍結pdf,如下:

補充np.mgrid的用法

x, y = np.mgrid[-1:1:.01, -1:1:.01]
pos = np.empty(x.shape + (2,)) #從x.shape=(200,200)變為(200,200,2)
pos[:, :, 0] = x
pos[:, :, 1] = y
#mean=[0.5, -0.2],cov=[[2.0, 0.3], [0.3, 0.5]],聲明一個帶着指定mean和cov的rv對象
rv = multivariate_normal([0.5, -0.2], [[2.0, 0.3], [0.3, 0.5]])
#將f(X,Y)=rv.pdf(pos)的值對應到color map的暖色組中尋找(X,Y)對應的點對應的顏色
plt.contourf(x, y, rv.pdf(pos))

返回:

可見使用概率密度函數pdf對數據pos,即(x,y)值進行處理后得到滿足設置的mean和cov的值,使其分布滿足高斯分布。rv.pdf(pos).shape為(200,200)

 

4)可使用方法:

  • pdf(x, mean=None, cov=1) :概率密度函數
  • logpdf(x, mean=None, cov=1) :概率密度函數日志
  • rvs(mean=None, cov=1) :從多元正態分布中隨機抽取樣本
  • entropy() :計算多元法線的微分熵

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM