多元高斯分布函数

1、 n n n元向量

假设 n n n元随机变量 X X X
X = [ X 1 , X 2 , ⋯   , X i , ⋯   , X n ] T μ = [ μ 1 , μ 2 , ⋯   , μ i , ⋯   , μ n ] T σ = [ σ 1 , σ 2 , ⋯   , σ i , ⋯   , σ n ] T X i ∼ N ( μ i , σ i 2 ) \begin{split} X&=[X_1,X_2,\cdots,X_i,\cdots ,X_n]^T\\ \mu&= [\mu_1,\mu_2,\cdots,\mu_i,\cdots,\mu_n]^T\\ \sigma&= [\sigma_1,\sigma_2,\cdots,\sigma_i,\cdots,\sigma_n]^T\\ X_i&\sim N(\mu_i,\sigma_i^2)\\ \end{split} XμσXi=[X1,X2,,Xi,,Xn]T=[μ1,μ2,,μi,,μn]T=[σ1,σ2,,σi,,σn]TN(μi,σi2)
Σ \Sigma Σ为协方差矩阵。
Σ = [ C o n v ( X 1 , X 1 ) C o n v ( X 1 , X 2 ) ⋯ C o n v ( X 1 , X n ) C o n v ( X 2 , X 1 ) C o n v ( X 2 , X 2 ) ⋯ C o n v ( X 2 , X n ) ⋮ ⋮ ⋱ ⋮ C o n v ( X n , X 1 ) C o n v ( X n , X 2 ) ⋯ C o n v ( X n , X n ) ] \begin{split} \Sigma&=\left[\begin{matrix} Conv(X_1,X_1) & Conv(X_1,X_2) & \cdots & Conv(X_1,X_n) \\ Conv(X_2,X_1) & Conv(X_2,X_2) & \cdots & Conv(X_2,X_n) \\ \vdots & \vdots & \ddots & \vdots \\ Conv(X_n,X_1) & Conv(X_n,X_2) & \cdots & Conv(X_n,X_n) \\ \end{matrix}\right] \end{split} Σ= Conv(X1,X1)Conv(X2,X1)Conv(Xn,X1)Conv(X1,X2)Conv(X2,X2)Conv(Xn,X2)Conv(X1,Xn)Conv(X2,Xn)Conv(Xn,Xn)
X 1 , X 2 , ⋯   , X i , ⋯   , X n X_1,X_2,\cdots,X_i,\cdots ,X_n X1,X2,,Xi,,Xn之间相互独立时,有
Σ = [ σ 1 2 0 ⋯ 0 0 σ 2 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ σ n 2 ] \begin{split} \Sigma&=\left[\begin{matrix} \sigma_1^2 & 0 & \cdots & 0 \\ 0 & \sigma_2^2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_n^2 \\ \end{matrix}\right] \end{split} Σ= σ12000σ22000σn2

2 、 n n n元高斯分布

p ( X ) = 1 ( 2 π ) n 2 ⋅ ∣ Σ ∣ 1 2 ⋅ e − ( X − μ ) T Σ − 1 ( X − μ ) 2 \begin{split} p(X)&=\frac{1}{(2\pi)^{\frac{n}{2}}\cdot|\Sigma|^{\frac{1}{2}}}\cdot e^{-\frac{(X-\mu)^T\Sigma^{-1}(X-\mu)}{2}} \end{split} p(X)=(2π)2n∣Σ211e2(Xμ)TΣ1(Xμ)
其中, ∣ Σ ∣ |\Sigma| ∣Σ∣为协方差矩阵 Σ \Sigma Σ的行列式

3、1元高斯分布

此时
X = [ X 1 ] μ = [ μ 1 ] σ = [ σ 1 ] X 1 ∼ N ( μ 1 , σ 1 2 ) Σ = [ σ 1 2 ] \begin{split} X&=[X_1]\\ \mu&= [\mu_1]\\ \sigma&= [\sigma_1]\\ X_1&\sim N(\mu_1,\sigma_1^2)\\ \Sigma&=[\sigma_1^2] \end{split} XμσX1Σ=[X1]=[μ1]=[σ1]N(μ1,σ12)=[σ12]

p ( X 1 ) = 1 ( 2 π ) n 2 ⋅ ∣ Σ ∣ 1 2 ⋅ e − ( X − μ ) T Σ − 1 ( X − μ ) 2 = 1 ( 2 π ) 1 2 ⋅ ( σ 1 2 ) 1 2 ⋅ e − ( X 1 − μ 1 ) T ( σ 1 2 ) − 1 ( X 1 − μ 1 ) 2 = 1 2 π ⋅ σ 1 ⋅ e − ( X 1 − μ 1 ) 2 2 ⋅ σ 1 2 \begin{split} p(X_1)&=\frac{1}{(2\pi)^{\frac{n}{2}}\cdot|\Sigma|^{\frac{1}{2}}}\cdot e^{-\frac{(X-\mu)^T\Sigma^{-1}(X-\mu)}{2}} \\ &=\frac{1}{(2\pi)^{\frac{1}{2}}\cdot (\sigma_1^2)^{\frac{1}{2}}}\cdot e^{-\frac{(X_1-\mu_1)^T (\sigma_1^2)^{-1}(X_1-\mu_1)}{2}} \\ &=\frac{1}{\sqrt{2\pi} \cdot \sigma_1}\cdot e^{-\frac{(X_1-\mu_1)^2}{2\cdot \sigma_1^2}} \\ \end{split} p(X1)=(2π)2n∣Σ211e2(Xμ)TΣ1(Xμ)=(2π)21(σ12)211e2(X1μ1)T(σ12)1(X1μ1)=2π σ11e2σ12(X1μ1)2

2、相互独立的2元高斯分布

此时
X = [ X 1 , X 2 ] T μ = [ μ 1 , μ 2 ] T σ = [ σ 1 , σ 2 ] T X i ∼ N ( μ i , σ i 2 ) Σ = [ σ 1 2 0 0 σ 2 2 ] \begin{split} X&=[X_1,X_2]^T\\ \mu&= [\mu_1,\mu_2]^T\\ \sigma&= [\sigma_1,\sigma_2]^T\\ X_i&\sim N(\mu_i,\sigma_i^2)\\ \Sigma&=\left[\begin{matrix} \sigma_1^2 & 0 \\ 0 & \sigma_2^2 \\ \end{matrix}\right] \end{split} XμσXiΣ=[X1,X2]T=[μ1,μ2]T=[σ1,σ2]TN(μi,σi2)=[σ1200σ22]
p ( X ) = p ( [ X 1 , X 2 ] T ) = 1 ( 2 π ) n 2 ⋅ ∣ Σ ∣ 1 2 ⋅ e − ( X − μ ) T Σ − 1 ( X − μ ) 2 = 1 ( 2 π ) 2 2 ⋅ ∣ σ 1 2 0 0 σ 2 2 ∣ 1 2 ⋅ e − ( [ X 1 X 2 ] − [ μ 1 μ 2 ] ) T [ σ 1 2 0 0 σ 2 2 ] − 1 ( [ X 1 X 2 ] − [ μ 1 μ 2 ] ) 2 = 1 2 π ⋅ σ 1 ⋅ σ 2 ⋅ e − [ X 1 − μ 1 X 2 − μ 2 ] T [ 1 σ 1 2 0 0 1 σ 2 2 ] [ X 1 − μ 1 X 2 − μ 2 ] 2 = 1 2 π ⋅ σ 1 ⋅ σ 2 ⋅ e − [ X 1 − μ 1 , X 2 − μ 2 ] [ 1 σ 1 2 0 0 1 σ 2 2 ] [ X 1 − μ 1 X 2 − μ 2 ] 2 = 1 2 π ⋅ σ 1 ⋅ σ 2 ⋅ e − [ X 1 − μ 1 σ 1 2 , X 2 − μ 2 σ 2 2 ] [ X 1 − μ 1 X 2 − μ 2 ] 2 = 1 2 π ⋅ σ 1 ⋅ σ 2 ⋅ e − ( X 1 − μ 1 ) 2 σ 1 2 − ( X 2 − μ 2 ) 2 σ 2 2 2 = 1 2 π ⋅ σ 1 ⋅ e − ( X 1 − μ 1 ) 2 2 σ 1 2 ⋅ 1 2 π ⋅ σ 2 ⋅ e − ( X 2 − μ 2 ) 2 2 σ 2 2 \begin{split} p(X)&=p([X_1,X_2]^T) \\ &=\frac{1}{(2\pi)^{\frac{n}{2}}\cdot|\Sigma|^{\frac{1}{2}}}\cdot e^{-\frac{(X-\mu)^T\Sigma^{-1}(X-\mu)}{2}} \\ &=\frac{1}{(2\pi)^{\frac{2}{2}}\cdot \left|\begin{matrix} \sigma_1^2 & 0 \\ 0 & \sigma_2^2 \\ \end{matrix}\right|^{\frac{1}{2}}}\cdot e^{-\frac{\Bigg(\left[\begin{matrix} X_1 \\ X_2 \\ \end{matrix}\right]-\left[\begin{matrix} \mu_1 \\ \mu_2 \\ \end{matrix}\right]\Bigg)^T\left[\begin{matrix} \sigma_1^2 & 0 \\ 0 & \sigma_2^2 \\ \end{matrix}\right]^{-1}\Bigg(\left[\begin{matrix} X_1 \\ X_2 \\ \end{matrix}\right]-\left[\begin{matrix} \mu_1 \\ \mu_2 \\ \end{matrix}\right]\Bigg)}{2}} \\ &=\frac{1}{2\pi\cdot \sigma_1\cdot \sigma_2}\cdot e^{-\frac{\left[\begin{matrix} X_1 -\mu_1\\ X_2 -\mu_2 \\ \end{matrix}\right]^T\left[\begin{matrix} \frac{1}{\sigma_1^2} & 0 \\ 0 & \frac{1}{\sigma_2^2} \\ \end{matrix}\right] \left[\begin{matrix} X_1-\mu_1 \\ X_2-\mu_2 \\ \end{matrix}\right]}{2}} \\ &=\frac{1}{2\pi\cdot \sigma_1\cdot \sigma_2}\cdot e^{-\frac{\left[\begin{matrix} X_1 -\mu_1, X_2 -\mu_2 \\ \end{matrix}\right]\left[\begin{matrix} \frac{1}{\sigma_1^2} & 0 \\ 0 & \frac{1}{\sigma_2^2} \\ \end{matrix}\right] \left[\begin{matrix} X_1-\mu_1 \\ X_2-\mu_2 \\ \end{matrix}\right]}{2}} \\ &=\frac{1}{2\pi\cdot \sigma_1\cdot \sigma_2}\cdot e^{-\frac{\left[\begin{matrix} \frac{X_1 -\mu_1}{\sigma_1^2}, \frac{X_2 -\mu_2}{\sigma_2^2} \\ \end{matrix}\right] \left[\begin{matrix} X_1-\mu_1 \\ X_2-\mu_2 \\ \end{matrix}\right]}{2}} \\ &=\frac{1}{2\pi\cdot \sigma_1\cdot \sigma_2}\cdot e^{-\frac{\frac{(X_1 -\mu_1)^2}{\sigma_1^2}-\frac{(X_2 -\mu_2)^2}{\sigma_2^2}}{2}} \\ &=\frac{1}{\sqrt{2\pi}\cdot \sigma_1}\cdot e^{-\frac{(X_1 -\mu_1)^2}{2\sigma_1^2}} \cdot \frac{1}{\sqrt{2\pi}\cdot \sigma_2}\cdot e^{-\frac{(X_2 -\mu_2)^2}{2\sigma_2^2}} \end{split} p(X)=p([X1,X2]T)=(2π)2n∣Σ211e2(Xμ)TΣ1(Xμ)=(2π)22 σ1200σ22 211e2([X1X2][μ1μ2])T[σ1200σ22]1([X1X2][μ1μ2])=2πσ1σ21e2[X1μ1X2μ2]T[σ12100σ221][X1μ1X2μ2]=2πσ1σ21e2[X1μ1,X2μ2][σ12100σ221][X1μ1X2μ2]=2πσ1σ21e2[σ12X1μ1,σ22X2μ2][X1μ1X2μ2]=2πσ1σ21e2σ12(X1μ1)2σ22(X2μ2)2=2π σ11e2σ12(X1μ1)22π σ21e2σ22(X2μ2)2

### 高斯分布函数的实现方法 高斯分布(Gaussian Distribution),又称正态分布,是一种常见的连续概率分布。其概率密度函数由均值 $\mu$ 和标准差 $\sigma$ 定义[^1]。 #### 单变量高斯分布的概率密度函数 单变量高斯分布的概率密度函数可以表示为: $$ f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}} $$ 其中,$\mu$ 是均值,$\sigma^2$ 是方差。 以下是基于 Python 的单变量高斯分布实现: ```python import numpy as np import matplotlib.pyplot as plt def gaussian_distribution(x, mu=0, sigma=1): """ 计算给定 x 值下的高斯分布概率密度。 参数: x (float): 输入数据点 mu (float): 均值,默认为 0 sigma (float): 标准差,默认为 1 返回: float: 对应的高斯分布概率密度值 """ coefficient = 1 / (np.sqrt(2 * np.pi) * sigma) exponent = -((x - mu)**2) / (2 * sigma**2) return coefficient * np.exp(exponent) # 绘制高斯分布曲线 x_values = np.linspace(-5, 5, 1000) y_values = gaussian_distribution(x_values, mu=0, sigma=1) plt.plot(x_values, y_values, label="μ=0, σ=1") plt.title("Single Variable Gaussian Distribution") plt.xlabel("X Values") plt.ylabel("Probability Density") plt.legend() plt.grid(True) plt.show() ``` --- #### 使用 Box-Muller 方法生成随机高斯分布样本 Box-Muller 变换是一种常用的方法,用于从均匀分布中生成服从标准正态分布的随机数。具体过程如下: 假设 $U_1, U_2$ 是独立同分布于区间 [0, 1) 上的均匀随机变量,则可以通过以下公式得到两个相互独立的标准正态分布随机变量 $Z_1, Z_2$: $$ Z_1 = \sqrt{-2 \ln(U_1)} \cos(2\pi U_2), \quad Z_2 = \sqrt{-2 \ln(U_1)} \sin(2\pi U_2) $$ 下面是基于 Box-Muller 方法的 Python 实现: ```python import random import math def uniform_random(): """生成 [0, 1) 范围内的均匀随机数""" return random.uniform(0, 1) def box_muller_gaussian(mu=0, sigma=1): """ 使用 Box-Muller 方法生成一个服从指定参数的高斯分布随机数。 参数: mu (float): 均值,默认为 0 sigma (float): 标准差,默认为 1 返回: float: 符合高斯分布的一个随机数 """ u1 = uniform_random() u2 = uniform_random() z0 = math.sqrt(-2 * math.log(u1)) * math.cos(2 * math.pi * u2) return mu + sigma * z0 # 测试生成一组高斯分布随机数并绘制直方图 samples = [box_muller_gaussian(mu=0, sigma=1) for _ in range(10000)] plt.hist(samples, bins=100, density=True, alpha=0.75, color='blue', edgecolor='black') plt.title("Histogram of Generated Gaussian Samples") plt.xlabel("Value") plt.ylabel("Density") plt.grid(True) plt.show() ``` --- #### 多元高斯分布的概率密度函数 多元高斯分布是对单变量高斯分布的扩展,适用于多个随机变量的情况。它的概率密度函数形式较为复杂,依赖于均值向量 $\boldsymbol{\mu}$ 和协方差矩阵 $\Sigma$[^2]。 对于维度为 $d$ 的随机向量 $\mathbf{x}$,其概率密度函数可写成: $$ p(\mathbf{x}) = \frac{1}{(2\pi)^{d/2} |\Sigma|^{1/2}} \exp\left(-\frac{1}{2} (\mathbf{x}-\boldsymbol{\mu})^\top \Sigma^{-1} (\mathbf{x}-\boldsymbol{\mu})\right) $$ 下面是一个简单的 Python 示例来计算二维多元高斯分布的概率密度值: ```python from scipy.stats import multivariate_normal def multi_gaussian_pdf(x, mean=[0, 0], cov=[[1, 0], [0, 1]]): """ 计算给定点处的二元高斯分布概率密度值。 参数: x (list or array-like): 输入坐标点 [x1, x2] mean (list or array-like): 均值向量,默认为 [0, 0] cov (array-like): 协方差矩阵,默认为 [[1, 0], [0, 1]] 返回: float: 对应位置上的概率密度值 """ rv = multivariate_normal(mean=mean, cov=cov) return rv.pdf(x) # 示例调用 point = [1, 1] pdf_value = multi_gaussian_pdf(point, mean=[0, 0], cov=[[1, 0.5], [0.5, 1]]) print(f"The PDF value at point {point} is {pdf_value}") ``` --- #### 总结 以上分别介绍了单变量高斯分布、通过 Box-Muller 方法生成随机高斯分布以及多元高斯分布的实现方式。每种情况都提供了相应的代码示例以便理解其实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值