多元高斯分布概率密度函数(PDF)示例

多元高斯分布概率密度函数(PDF)示例

多元高斯分布(Multivariate Gaussian Distribution)适用于 高维数据,用于建模数据的联合分布。其概率密度函数(PDF)如下:

p ( x ∣ μ , Σ ) = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) p(x \mid \mu, \Sigma) = \frac{1}{(2\pi)^{D/2} |\Sigma|^{1/2}} \exp\left( -\frac{1}{2} (x - \mu)^T \Sigma^{-1} (x - \mu) \right) p(xμ,Σ)=(2π)D/2∣Σ1/21exp(21(xμ)TΣ1(xμ))

其中:

  • x x x D D D 维随机向量。
  • μ \mu μ 为均值向量( D × 1 D \times 1 D×1)。
  • Σ \Sigma Σ 为协方差矩阵( D × D D \times D D×D)。
  • ∣ Σ ∣ |\Sigma| ∣Σ∣ 表示协方差矩阵的行列式(用于归一化)。
  • Σ − 1 \Sigma^{-1} Σ1 为协方差矩阵的逆矩阵(用于衡量偏离均值的程度)。
示例:二维高斯分布

假设我们有一个二维( D = 2 D = 2 D=2)高斯分布,其均值和协方差矩阵如下:

μ = [ 1 2 ] , Σ = [ 2 0.5 0.5 1 ] \mu = \begin{bmatrix} 1 \\ 2 \end{bmatrix}, \quad \Sigma = \begin{bmatrix} 2 & 0.5 \\ 0.5 & 1 \end{bmatrix} μ=[12],Σ=[20.50.51]

现在计算一个样本点 x = [ 2 , 3 ] T x = [2, 3]^T x=[2,3]T 的概率密度。

  1. 计算偏移向量:
    x − μ = [ 2 3 ] − [ 1 2 ] = [ 1 1 ] x - \mu = \begin{bmatrix} 2 \\ 3 \end{bmatrix} - \begin{bmatrix} 1 \\ 2 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} xμ=[23][12]=[11]

  2. 计算协方差矩阵的逆:
    Σ − 1 = [ 2 0.5 0.5 1 ] − 1 = [ 0.545 − 0.273 − 0.273 1.091 ] \Sigma^{-1} = \begin{bmatrix} 2 & 0.5 \\ 0.5 & 1 \end{bmatrix}^{-1} = \begin{bmatrix} 0.545 & -0.273 \\ -0.273 & 1.091 \end{bmatrix} Σ1=[20.50.51]1=[0.5450.2730.2731.091]

  3. 计算二次型(Mahalanobis 距离):
    ( x − μ ) T Σ − 1 ( x − μ ) = [ 1 1 ] [ 0.545 − 0.273 − 0.273 1.091 ] [ 1 1 ] (x - \mu)^T \Sigma^{-1} (x - \mu) = \begin{bmatrix} 1 & 1 \end{bmatrix} \begin{bmatrix} 0.545 & -0.273 \\ -0.273 & 1.091 \end{bmatrix} \begin{bmatrix} 1 \\ 1 \end{bmatrix} (xμ)TΣ1(xμ)=[11][0.5450.2730.2731.091][11]

    计算:
    [ 1 1 ] [ 0.272 0.818 ] = 1.09 \begin{bmatrix} 1 & 1 \end{bmatrix} \begin{bmatrix} 0.272 \\ 0.818 \end{bmatrix} = 1.09 [11][0.2720.818]=1.09

  4. 计算 PDF:

    • ∣ Σ ∣ = 2 × 1 − ( 0.5 × 0.5 ) = 1.75 |\Sigma| = 2 \times 1 - (0.5 \times 0.5) = 1.75 ∣Σ∣=2×1(0.5×0.5)=1.75
    • 归一化项:
      1 ( 2 π ) 2 / 2 ∣ Σ ∣ 1 / 2 = 1 2 π 1.75 \frac{1}{(2\pi)^{2/2} |\Sigma|^{1/2}} = \frac{1}{2\pi \sqrt{1.75}} (2π)2/2∣Σ1/21=2π1.75 1
    • 指数项:
      exp ⁡ ( − 1 2 × 1.09 ) = e − 0.545 \exp\left(-\frac{1}{2} \times 1.09 \right) = e^{-0.545} exp(21×1.09)=e0.545
    • 计算最终值(数值计算部分可用 Python 验证)。

参数估计(MLE)示例

1. 估计均值向量

给定 N N N 个样本:

x 1 , x 2 , . . . , x N x_1, x_2, ..., x_N x1,x2,...,xN

均值向量的极大似然估计(MLE)为:
μ ^ = 1 N ∑ n = 1 N x n \hat{\mu} = \frac{1}{N} \sum_{n=1}^{N} x_n μ^=N1n=1Nxn

示例

假设我们有 3 维数据的 5 个样本:

x 1 = [ 2 3 5 ] , x 2 = [ 3 4 6 ] , x 3 = [ 4 2 7 ] , x 4 = [ 5 5 5 ] , x 5 = [ 1 2 4 ] x_1 = \begin{bmatrix} 2 \\ 3 \\ 5 \end{bmatrix}, x_2 = \begin{bmatrix} 3 \\ 4 \\ 6 \end{bmatrix}, x_3 = \begin{bmatrix} 4 \\ 2 \\ 7 \end{bmatrix}, x_4 = \begin{bmatrix} 5 \\ 5 \\ 5 \end{bmatrix}, x_5 = \begin{bmatrix} 1 \\ 2 \\ 4 \end{bmatrix} x1= 235 ,x2= 346 ,x3= 427 ,x4= 555 ,x5= 124

计算均值向量:
μ ^ = 1 5 ( x 1 + x 2 + x 3 + x 4 + x 5 ) \hat{\mu} = \frac{1}{5} \left( x_1 + x_2 + x_3 + x_4 + x_5 \right) μ^=51(x1+x2+x3+x4+x5)

= 1 5 [ ( 2 + 3 + 4 + 5 + 1 ) ( 3 + 4 + 2 + 5 + 2 ) ( 5 + 6 + 7 + 5 + 4 ) ] = \frac{1}{5} \begin{bmatrix} (2+3+4+5+1) \\ (3+4+2+5+2) \\ (5+6+7+5+4) \end{bmatrix} =51 (2+3+4+5+1)(3+4+2+5+2)(5+6+7+5+4)

= 1 5 [ 15 16 27 ] = [ 3 3.2 5.4 ] = \frac{1}{5} \begin{bmatrix} 15 \\ 16 \\ 27 \end{bmatrix} = \begin{bmatrix} 3 \\ 3.2 \\ 5.4 \end{bmatrix} =51 151627 = 33.25.4


2. 估计协方差矩阵

协方差矩阵的极大似然估计(MLE):
Σ ^ = 1 N ∑ n = 1 N ( x n − μ ^ ) ( x n − μ ^ ) T \hat{\Sigma} = \frac{1}{N} \sum_{n=1}^{N} (x_n - \hat{\mu})(x_n - \hat{\mu})^T Σ^=N1n=1N(xnμ^)(xnμ^)T

示例

计算偏差向量:
( x 1 − μ ^ ) = [ 2 3 5 ] − [ 3 3.2 5.4 ] = [ − 1 − 0.2 − 0.4 ] (x_1 - \hat{\mu}) = \begin{bmatrix} 2 \\ 3 \\ 5 \end{bmatrix} - \begin{bmatrix} 3 \\ 3.2 \\ 5.4 \end{bmatrix} = \begin{bmatrix} -1 \\ -0.2 \\ -0.4 \end{bmatrix} (x1μ^)= 235 33.25.4 = 10.20.4

计算协方差矩阵:
Σ ^ = 1 5 ∑ n = 1 5 ( x n − μ ^ ) ( x n − μ ^ ) T \hat{\Sigma} = \frac{1}{5} \sum_{n=1}^{5} (x_n - \hat{\mu})(x_n - \hat{\mu})^T Σ^=51n=15(xnμ^)(xnμ^)T

完整计算可以用 Python 验证。


Python 代码验证

可以用 Python 计算 PDF 和 MLE 估计值:

import numpy as np
import scipy.stats as stats

# 定义均值和协方差矩阵
mu = np.array([1, 2])
Sigma = np.array([[2, 0.5], [0.5, 1]])

# 定义样本点
x = np.array([2, 3])

# 计算多元正态分布的概率密度
pdf_value = stats.multivariate_normal.pdf(x, mean=mu, cov=Sigma)
print(f"PDF 值: {pdf_value}")

# 生成样本数据
X = np.array([[2, 3, 5],
              [3, 4, 6],
              [4, 2, 7],
              [5, 5, 5],
              [1, 2, 4]])

# 计算 MLE 估计的均值
mu_hat = np.mean(X, axis=0)
print("MLE 估计的均值向量:", mu_hat)

# 计算 MLE 估计的协方差矩阵
Sigma_hat = np.cov(X, rowvar=False, bias=True)
print("MLE 估计的协方差矩阵:\n", Sigma_hat)

总结

  1. 多元高斯分布 PDF 计算涉及 协方差矩阵的行列式、逆矩阵、指数项,用于计算某个点的概率密度。
  2. MLE 估计均值 即样本的平均值。
  3. MLE 估计协方差矩阵 计算样本的偏差并求外积的均值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值