高斯分佈和卡方分佈

高斯分佈和卡方分佈

高斯分佈

1 單元高斯分佈

1.1 一維隨機變量

定義:若連續型隨機變量XX的概率密度爲
(1.1)f(x)=12πσe(xμ)22σ2,<x<,f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}, -\infty<x<\infty,\tag{1.1}
其中μ,σ(σ>0)\mu,\sigma(\sigma>0)爲常數,則稱XX服從參數爲μ,σ\mu,\sigma的正太/高斯分佈,記爲XN(μ,σ2)X\sim N(\mu,\sigma^2).
性質:

  • f(x)0f(x)\ge 0
  • f(x)dx=1\int_{-\infty}^{\infty}f(x)dx=1

下圖爲均值爲μ,σ\mu,均方根爲\sigma的高斯分佈圖,峯值最大值爲f(x)max=12πσ,x=μ.f(x)_{max}=\frac{1}{\sqrt{2\pi}\sigma}, x=\mu.
在這裏插入圖片描述
特點:

  • 如果固定方差σ2\sigma^2, 改變參數μ\mu,則正太曲線沿着xx軸平行移動,而圖形的形狀不改變。
    在這裏插入圖片描述
    這個問題很容易想明白,因爲均值μ\mu是跟(xμ)(x-\mu)一起的,因此(x(μ+δ))=((xδ)μ)(x-(\mu+\delta))=((x-\delta)-\mu), 即對xx做了平移處理。
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist

#定義座標軸函數
def setup_axes(fig, rect):
    ax = axisartist.Subplot(fig, rect)
    fig.add_axes(ax)

    ax.set_ylim(-.2, 1.2)
    #自定義刻度
#    ax.set_yticks([-10, 0,9])
    ax.set_xlim(-10,10)
    ax.axis[:].set_visible(False)

	#第2條線,即y軸,經過x=0的點
    ax.axis["y"] = ax.new_floating_axis(1, 0)
    ax.axis["y"].set_axisline_style("-|>", size=1.5)
#    第一條線,x軸,經過y=0的點
    ax.axis["x"] = ax.new_floating_axis(0, 0)
    ax.axis["x"].set_axisline_style("-|>", size=1.5)

    return(ax)

def gaussian(x,mu,sigma):
    f_x = np.exp(-np.power(x-mu, 2.)/(2*np.power(sigma,2.)))
    return(f_x)

#設置畫布
fig = plt.figure(figsize=(8, 8)) #建議可以直接plt.figure()不定義大小
ax1 = setup_axes(fig, 111)
ax1.axis["x"].set_axis_direction("bottom")
ax1.axis['y'].set_axis_direction('right')

#在已經定義好的畫布上加入高斯函數

x_values = np.linspace(-20,20,2000)
for mu,sigma in [(2,3),(3,3),(4,3)]:
   plt.plot(x_values,gaussian(x_values,mu,sigma),label=r'$\mu=$'+str(mu)+',$\sigma^2=3$')

plt.show()
  • 如果固定μ\mu, 改變參數σ\sigma,由於峯值最大值爲f(x)max=12πσf(x)_{max}=\frac{1}{\sqrt{2\pi}\sigma},所以σ\sigma變小則圖形“尖瘦”,反之“矮胖”
    在這裏插入圖片描述
for mu,sigma in [(2,0.5),(2,2),(2,3)]:
    plt.plot(x_values,gaussian(x_values,mu,sigma),label=r'$\mu=2$'+',$\sigma^2=$'+str(sigma**2))

1.2 標準正太分佈

特別的, 當μ=0,σ=1\mu=0,\sigma=1時隨機變量XX服從標準正太分佈,記爲XN(0,1)X\sim N(0,1),分佈密度和分佈函數爲:
f(x)=12πex22,<x<f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}, -\infty<x<\infty
F(x)=12πxet22dt,<x<F(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{x}e^{-\frac{t^2}{2}}dt,- \infty<x<\infty
注意分佈密度函數F(x)F(x)xx的函數而不是tt的函數,因爲tt被積分掉了,而xx纔是變化的量。
一般的,對於XN(μ,σ2)X\sim N(\mu,\sigma^2)的分佈函數,可通過線性變換化成標準正太分佈形式。
F(x)=x1σ2πe(tμ)22σ2dtF(x)=\int_{-\infty}^{x}\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt
y=tuσy=\frac{t-u}{\sigma},可得
F(x)=xμσ12πey22dyF(x)=\int_{-\infty}^{\frac{x-\mu}{\sigma}}\frac{1}{\sqrt{2\pi}}e^{-\frac{y^2}{2}}dy
(上面利用dy=d(tμσ)=dtσdy=d(\frac{t-\mu}{\sigma})=d\frac{t}{\sigma},因爲後者是常數爲零;當t=xy=xμσt=x時,y=\frac{x-\mu}{\sigma},這是上限)
所以由上式可以看到yN(0,1)y\sim N(0,1),即y服從標準正太分佈
(P276,高數三)

1.3 numpy中使用正太分佈

可以參考這篇博客:numpy random --mr.cat博文

2 多元高斯分佈

可以參考這篇博文多元高斯分佈,用google瀏覽器打開,否則會有些公式不能顯示

2.1 獨立多元/維高斯分佈

這一部分將以圖片形式引用這篇博文多元高斯分佈,感謝博主,建議大家查看原文,因爲寫的很好。
在這裏插入圖片描述
這裏z2z^2之所以可以寫成UΣUTU\Sigma U^T的形式,即進行奇異值分解,是因爲z2z^2是二次型。強烈建議看一下這個博文如何理解二次型,簡單說,二次型就是f(x,y)f(x,y)變量中每一項的xyx和y的冪次相加等於2.如下圖
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
(注意:在上面的圖片中,不相關的二維正太分佈每個截面都是圓形,表示不相關)

即,在一元標準正太分佈中,分佈密度爲
(2.1.1)f(x)=12πex22,<x<,f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}, -\infty<x<\infty, \tag{2.1.1}
而在nn元標準正太分佈中,分佈密度爲
(2.1.2)f(z)=1(2π)nσzez22,σz=σ1σ2σn,f(z)=\frac{1}{\left(\sqrt{2\pi}\right)^n\sigma_z}e^{-\frac{z^2}{2}}, \sigma_z=\sigma_1\sigma_2\ldots \sigma_n,\tag{2.1.2}
所以,需要記住的是,最一般的nn維高斯分佈密度函數爲
(2.1.3)f(z)=1(2π)nΣ1/2e(xμx)T(Σ)1(xμx)2f(z)=\frac{1}{\left(\sqrt{2\pi}\right)^n|\Sigma|^{1/2}}e^{-\frac{(x-\mu_x)^T(\Sigma)^{-1}(x-\mu_x)}{2}},\tag{2.1.3}
(xμx)T=[(x1μx1)(x2μx2)](x-\mu_x)^T=[(x_1-\mu_{x_1}) (x_2-\mu_{x_2})\ldots] 是行矩陣
Σ\Sigma是協方差矩陣以2維矩陣爲例,Σ\Sigma的表達式爲
在這裏插入圖片描述

2.2 舉例-畫2維獨立不相關高斯圖

即上面(2.1.2)(2.1.2)n=2n=2的情況
(2.2.1)f(x)=1(2π)2σ1σ2e(x1μ1)22σ12(x2μ2)22σ22,f(x)=\frac{1}{\left(\sqrt{2\pi}\right)^2\sigma_1\sigma_2}e^{-\frac{(x_1-\mu_1)^2}{2\sigma_1^2}-\frac{(x_2-\mu_2)^2}{2\sigma_2^2}},\tag{2.2.1}
在這裏插入圖片描述

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist
from mpl_toolkits.mplot3d import Axes3D #畫三維圖不可少
from matplotlib import cm  #cm 是colormap的簡寫

#定義座標軸函數
def setup_axes(fig, rect):
    ax = axisartist.Subplot(fig, rect)
    fig.add_axes(ax)

    ax.set_ylim(-.2, 1.2)
    #自定義刻度
#    ax.set_yticks([-10, 0,9])
    ax.set_xlim(-10,10)
    ax.axis[:].set_visible(False)

	#第2條線,即y軸,經過x=0的點
    ax.axis["y"] = ax.new_floating_axis(1, 0)
    ax.axis["y"].set_axisline_style("-|>", size=1.5)
#    第一條線,x軸,經過y=0的點
    ax.axis["x"] = ax.new_floating_axis(0, 0)
    ax.axis["x"].set_axisline_style("-|>", size=1.5)

    return(ax)
# 1_dimension gaussian function
def gaussian(x,mu,sigma):
    f_x = 1/(sigma*np.sqrt(2*np.pi))*np.exp(-np.power(x-mu, 2.)/(2*np.power(sigma,2.)))
    return(f_x)

# 2_dimension gaussian function
def gaussian_2(x,y,mu_x,mu_y,sigma_x,sigma_y):
    f_x_y = 1/(sigma_x*sigma_y*(np.sqrt(2*np.pi))**2)*np.exp(-np.power\
              (x-mu_x, 2.)/(2*np.power(sigma_x,2.))-np.power(y-mu_y, 2.)/\
              (2*np.power(sigma_y,2.)))
    return(f_x_y)

#設置2維表格
x_values = np.linspace(-5,5,2000)
y_values = np.linspace(-5,5,2000)
X,Y = np.meshgrid(x_values,y_values)
#高斯函數
mu_x,mu_y,sigma_x,sigma_y = 0,0,0.8,0.8
F_x_y = gaussian_2(X,Y,mu_x,mu_y,sigma_x,sigma_y)
#顯示三維圖
fig = plt.figure()
ax = plt.gca(projection='3d')
ax.plot_surface(X,Y,F_x_y,cmap='jet')
# 顯示等高線圖
#ax.contour3D(X,Y,F_x_y,50,cmap='jet')
# 顯示2d等高線圖,畫8條線
# plt.contour(X,Y,F_x_y,8)

如果畫成平面上的等高線圖會更好理解,如下圖,是一個個圓,也就是無相關

    ax.set_ylim(-4, 4)
    #自定義刻度
#    ax.set_yticks([-10, 0,9])
    ax.set_xlim(-4,4)
#設置畫布
fig = plt.figure(figsize=(8, 8)) #建議可以直接plt.figure()不定義大小
ax1 = setup_axes(fig, 111)
ax1.axis["x"].set_axis_direction("bottom")
ax1.axis['y'].set_axis_direction('right')
# 顯示2d等高線圖,畫8條線
plt.contour(X,Y,F_x_y,8)

在這裏插入圖片描述

2.3 相關係數

這裏參考高數三P342.
定義:設二維隨機向量(X,Y)(X,Y)的方差DX>0,DY>0DX>0, DY>0,協方差Cov(X,Y)Cov(X,Y)都存在,則稱
ρX,Y=Cov(X,Y)DXDY=Cov(X,Y)σXσY\rho_{X,Y}=\frac{Cov(X,Y)}{\sqrt{DX}\sqrt{DY}}=\frac{Cov(X,Y)}{\sigma_X\sigma_Y}
爲隨機變量XYX和Y的相關係數
性質:

  • ρXY1|\rho_{XY}|\leq1
  • ρ\rho是可以爲負數的
  • ρ1\rho越接近1表明相關程度越大,ρ=1\rho=1表明隨機點(X,Y)(X,Y)y=ax+by=ax+b線上;ρ=0\rho=0表示不相關,此時協方差=0

2.3 舉例-畫2維不獨立相關高斯圖

協方差矩陣Σ\Sigma的形式爲(2.3,1)\tag{2.3,1}
在這裏插入圖片描述

對角線上是方差,其他是協方差,當隨機變量之間不獨立的時候,協方差是不爲零的。上面的協方差矩陣可以寫成(2.3,2)\tag{2.3,2}
在這裏插入圖片描述
公式(2.1.3)(2.1.3)考慮相關時,ρ\rho不等於0,此時協方差矩陣Σ\Sigma(2.3.2)(2.3.2)的形式,因此分佈密度函數爲
(2.3.3)f(x)=12πσ1σ21ρ2e12(1ρ2)[(x1μ1)2σ122ρ(xμ1)(xμ2)σ1σ2+(x2μ2)2σ22]f(x)=\frac{1}{2\pi\sigma_1\sigma_2\sqrt{1-\rho^2}}e^{-\frac{1}{2(1-\rho^2)}\left[\frac{(x_1-\mu_1)^2}{\sigma_1^2}-2\rho\frac{(x-\mu_1)(x-\mu_2)}{\sigma_1\sigma_2}+\frac{(x_2-\mu_2)^2}{\sigma_2^2}\right]}\tag{2.3.3}
過程如下:
在這裏插入圖片描述
現在,畫出2維高斯分佈相關圖
現在畫出幾種相關圖,首先看一下三維圖

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章