想象你是一位餐厅经理,要设计一份招牌套餐。套餐包含主菜、甜点和饮品,每样都有自己的特征——辣度、甜度、温度。单独研究一道菜很简单,但真正的挑战是:顾客选了很辣的菜后,会更倾向冰饮还是热汤?温度高的甜品搭配什么主菜最受欢迎?这种“多个特征一起出现”的规律,正是多元分布要回答的问题。它不再只盯着一个变量,而是把多个随机变量放到同一张“餐桌”上,研究它们如何联手共同演出一场概率大戏。掌握它,你就拥有了描述复杂现实世界的数学语言。
多元分布是机器学习中高斯过程、生成模型、异常检测等算法的数学地基。学会联合、边缘、条件分布以及协方差矩阵,你就能读懂模型背后的概率逻辑,为后续进阶打下扎实基础。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
联合分布:套餐的完整菜单
你是餐厅经理,设计一份套餐。顾客真正关心的不是某道菜单独好不好吃,而是“主菜、甜点、饮品”这一整套组合是否搭调。于是你手里那份记录各种搭配受欢迎程度的“组合清单”,就是联合分布的雏形——它把多个特征同时出现的概率写在了一起。
在概率论中,联合分布描述多个随机变量“同时取某个值组合”的可能性。假如有两个离散变量 \(X\) 和 \(Y\),联合分布把每一对可能的取值都标出一个概率:
\[
P(X=x_i,\;Y=y_j)=p_{ij},\qquad p_{ij}\ge 0,\quad \sum_{i=1}^{n}\sum_{j=1}^{m}p_{ij}=1
\]
1. 事件定义:把“\(X\) 取 \(x_i\) 且 \(Y\) 取 \(y_j\)”看作一个同时发生的组合事件。
2. 简写符号:用 \(p_{ij}\) 表示联合分布表第 \(i\) 行第 \(j\) 列那个格子里的概率。
3. 非负约束:套餐里任何组合的受欢迎程度都不能是负数。
4. 归一化条件:所有组合的概率加起来必须为 1,因为顾客总会选中某一种组合。
联合分布就像那份完整的套餐菜单:每一格都写着一个组合出现的概率。有了这张菜单,你才能进一步回答“只看甜品”或“已知主菜很辣”等更精细的问题。
边缘分布:单看一道菜的风景
你打算给甜品搞促销,但套餐数据里每一条记录都同时包含主菜和饮品。现在你只关心甜品甜度的分布,不管其他菜是什么味道。做法很简单:把联合分布表中同一甜品对应的所有概率加在一起。因为最终结果写在联合分布表的“边缘”位置,所以叫边缘分布。
对于离散变量,从联合分布求 \(X\) 的边缘分布,就是对 \(Y\) 的全部取值求和:
\[
P_X(x_i)=\displaystyle\sum_{j=1}^{m}P(X=x_i,\;Y=y_j)
\]
1. 固定取值:先把 \(X\) 固定在某一个具体取值 \(x_i\) 上。
2. 遍历求和:让 \(Y\) 从 \(y_1\) 一直取到 \(y_m\),把对应的联合概率全部加总。
3. 得到边缘:求和结果与 \(Y\) 无关,只刻画 \(X\) 单独取 \(x_i\) 的概率。
边缘分布就像你仔细品尝套餐里的甜点而不被主菜干扰。它是联合分布退一步的视角——暂时收起完整菜单,只汇报一道菜的表现。
条件分布:由已知推出未知
顾客点了一份很辣的川味主菜,你想推断他大概率配什么饮品。这时你不知道他的完整选择,但掌握了一个关键线索。在已知“主菜很辣”的条件下,饮品甜度的概率分布就是条件分布。它不是把饮品单独拿出来看,而是先锁定已知条件,再重新归一化。
条件分布的定义非常直观:
\[
P(Y=y_j\mid X=x_i)=\frac{P(X=x_i,\;Y=y_j)}{P(X=x_i)}
\]
1. 分子是联合概率:同时满足“\(X\) 取 \(x_i\)”和“\(Y\) 取 \(y_j\)”的概率。
2. 分母是条件事件:已知 \(X=x_i\) 这个前提本身的概率,用作归一化基准。
3. 相除得条件概率:把联合概率按条件事件重新缩放,让所有 \(y_j\) 上的概率之和变成 1。
条件分布像服务员听到“要辣的”之后,立刻把推荐范围收窄到冰饮和酸梅汤。你掌握的证据越具体,推断的菜单就越精准。
协方差:菜品间的搭配默契
有些搭配天生默契,比如辣主菜配冰饮,销量总是双双走高;有些搭配永远不对付,比如很辣的菜配甜腻浓汤。这种“两个变量是否倾向于同向或反向变化”的数字指标,就是协方差。
协方差定义为两变量各自偏离均值之积的期望:
\[
\text{Cov}(X,Y)=E\left[(X-\mu_X)(Y-\mu_Y)\right]
\]
1. 均值基准:先算出每个变量的期望 \(\mu_X\) 和 \(\mu_Y\),相当于各自的平均口味。
2. 偏差乘积:每次观察都计算 \((X-\mu_X)\times(Y-\mu_Y)\);两者同时高于平均时乘积为正,一个高一个低时乘积为负。
3. 取期望:对所有观察的偏差乘积取平均,得到一个稳定的总体指标。
协方差为正,说明两变量倾向于同向变化;为负则说明步调相反;接近零表示两者没有稳定的线性联动。它就像餐厅统计中的“搭配默契分”:高分搭配常被推荐,负分搭配赶紧从菜单上撤掉。
相关分析:把默契变成标准分数
辣度用辣椒指数衡量,甜度用糖克数衡量,单位不同,协方差的数值没法跨菜品比较。比如一份辣味指数 50 的菜和甜度 30 的甜品算出的协方差,不能直接和另一组单位不同的数据比较。于是统计学家给协方差除以两个标准差,得到无量纲的相关系数:
\[
\rho_{XY}=\frac{\text{Cov}(X,Y)}{\sigma_X\,\sigma_Y},\qquad -1\le \rho_{XY}\le 1
\]
1. 计算协方差:先求出两个变量的协方差,作为原始关联强度的分子。
2. 除以标准差:分别除以 \(\sigma_X\) 和 \(\sigma_Y\),把单位约掉,变成纯数值。
3. 取值受限:由柯西-施瓦茨不等式可知,标准化后的结果必然落在 \(-1\) 到 \(1\) 之间。
相关系数就像把“默契分”换算成百分制。+1 表示完全正相关,-1 表示完全负相关,0 表示没有线性相关。注意,它只说线性关系,没说两个变量彻底无关。
协方差矩阵:全班的关系图谱
只看一对变量的协方差还不够,一份套餐可能涉及辣度、甜度、温度、分量等十几个特征。此时需要把“自己与自己的方差、自己与别人的协方差”全部放进一张二维表格,这就是协方差矩阵。
\[
\boldsymbol{\Sigma}=
\begin{bmatrix}
\sigma_X^2 & \text{Cov}(X,Y)\\
\text{Cov}(Y,X) & \sigma_Y^2
\end{bmatrix}
\]
1. 对角线元素:左上和右下分别是 \(X\)、\(Y\) 各自的方法,刻画单变量的波动幅度。
2. 非对角线元素:右上和左下是两变量间的协方差,描述跨变量的线性关联。
3. 对称性:因为 \(\text{Cov}(X,Y)=\text{Cov}(Y,X)\),矩阵沿着主对角线对称。
协方差矩阵把整桌菜的关系一网打尽:对角线上写各自的口味波动,非对角线上写菜与菜之间的搭配规律。矩阵的对称性和半正定性让它在统计学与机器学习里成为极其趁手的工具。
多元正态分布:最经典的套餐模板
自然界里很多现象都围绕一个中心点均匀散开:全班同学的平均身高加误差、传感器读数加噪声。当多个变量一起服从这种“钟形”规律,且它们之间的关系由协方差矩阵掌控时,就得到了多元正态分布。它是 AI 建模中最常用的概率分布模板。
\[
f(\mathbf{x})=\frac{1}{(2\pi)^{d/2}\lvert\boldsymbol{\Sigma}\rvert^{1/2}}
\exp\left[-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})\right]
\]
1. 变量向量:\(\mathbf{x}\) 是一个 \(d\) 维向量,代表一次观察里所有变量的取值。
2. 马氏距离二次型:\((\mathbf{x}-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})\) 把偏差按协方差结构加权,相当于“考虑了相关性的距离”。
3. 指数衰减:负号让概率密度随着这个距离增大而指数式下降,离中心越远越罕见。
4. 归一化常数:前面的系数保证整个密度函数在所有空间上的积分等于 1。
多元正态分布像是餐厅总管设计的“标准套餐模板”:均值决定最受欢迎的口味组合,协方差矩阵决定顾客口味的波动形态。等高线是一圈圈椭球,长轴方向恰好指向变量之间最相关的方向。
机器学习中的多元分布
餐厅经理会通过历史点单记录估计“哪种套餐最受欢迎、哪些菜常被一起点”;机器学习的做法完全一致——用数据估计均值向量和协方差矩阵。给定 \(n\) 个样本 \(\mathbf{x}_1,\dots,\mathbf{x}_n\),最常用的矩估计是:
\[
\hat{\boldsymbol{\mu}}=\frac{1}{n}\sum_{i=1}^{n}\mathbf{x}_i,\qquad
\hat{\boldsymbol{\Sigma}}=\frac{1}{n}\sum_{i=1}^{n}(\mathbf{x}_i-\hat{\boldsymbol{\mu}})(\mathbf{x}_i-\hat{\boldsymbol{\mu}})^\top
\]
1. 样本均值:把所有样本向量相加并除以 \(n\),得到数据中心。
2. 偏差向量:每个样本减去均值,得到偏离中心的残差向量。
3. 外积矩阵:残差向量乘以其转置,得到一个记录了该样本方差和协方差贡献的矩阵。
4. 求平均:把所有样本的外积矩阵加起来除以 \(n\),得到整体协方差矩阵的估计。
这套估计方法贯穿高斯过程回归、生成模型、异常检测等应用。数据就像一次次顾客点单,多元分布就是用来捕捉“什么组合常见、什么组合反常”的数学模型。
AI 应用场景
高斯过程回归:函数世界的套餐蓝图
阶段:先验建模
解决的问题:传统回归只给出一条拟合曲线,无法表达“同时考虑很多个点时的联合不确定性”。高斯过程用多元正态描述不同输入点函数值的联合分布,点越多,维数越高,但协方差矩阵让一切变得可计算。
具体案例:预测城市各区域温度时,先把 100 个观测站的温度建模为 100 维正态分布,均值代表预期温度,协方差矩阵编码站点之间的空间相关性。这样不仅能给出每个点的预测,还能给出任意两点之间的置信区间。
异常检测:用“标准菜谱”分辨怪菜
阶段:密度估计
解决的问题:正常数据通常集中在一个“典型区域”里,异常值往往离这个区域很远。用多元正态拟合正常数据后,计算新样本的马氏距离,就能判断它是否异常。
具体案例:信用卡风控系统用每笔交易的特征(金额、时间、频次)拟合多元正态分布。一笔金额极大且时间异常的消费,其马氏距离远超正常范围,直接被标记为欺诈风险。
生成模型:从潜变量套餐里抽新样本
阶段:潜变量建模
解决的问题:生成模型(如 VAE)假设高维图片背后存在一个低维潜变量,并假设潜变量服从多元正态分布。模型学习均值和协方差,就能从分布中抽样,再解码成新图片。
具体案例:训练人脸生成模型时,潜变量空间是一个 128 维多元正态。每次从其中采样一个向量,解码器就能生成一张全新的人脸,且协方差结构让人脸的“性别”“表情”等属性之间存在自然的相关性。
Python 演示
import numpy as np def simulate(mu1, mu2, s1, s2, rho, n=10000): """Simulate bivariate normal samples and verify estimates""" z1 = np.random.randn(n) z2 = np.random.randn(n) x1 = mu1 + s1 * z1 x2 = mu2 + s2 * (rho * z1 + np.sqrt(1 - rho * rho) * z2) mu_hat = np.array([x1.mean(), x2.mean()]) cov_hat = np.cov(x1, x2) rho_hat = cov_hat[0, 1] / np.sqrt(cov_hat[0, 0] * cov_hat[1, 1]) return mu_hat, cov_hat, rho_hat def main(): mu_hat, cov_hat, rho_hat = simulate( mu1=3.0, mu2=10.0, s1=1.0, s2=2.0, rho=0.7, n=50000) print("estimated means:", mu_hat) print("estimated covariance matrix:") print(cov_hat) print("estimated correlation:", rho_hat) if __name__ == "__main__": main()
z1 = np.random.randn(n)先抽取两列相互独立的标准正态随机数,当作“基础配料”。x1 = mu1 + s1 * z1给第一个变量施加均值和标准差,得到真正的第一维数据。x2 = mu2 + s2 * (rho * z1 + np.sqrt(1 - rho * rho) * z2)用线性组合把相关性注入第二维,相当于按套餐比例调配菜品。cov_hat = np.cov(x1, x2)一次算出样本的方差和协方差,得到协方差矩阵估计。rho_hat = cov_hat[0, 1] / np.sqrt(cov_hat[0, 0] * cov_hat[1, 1])从协方差矩阵中提取相关系数,完成“从联合到相关”的逆推。simulate(mu1=3.0, mu2=10.0, s1=1.0, s2=2.0, rho=0.7, n=50000)用真实理论参数生成 5 万条记录,样本量足够大时估计值会非常接近真实值。
常见误区
误区“相关系数是 0,说明两个变量没有任何关系,肯定是独立事件。”
正解相关系数只度量线性关系。比如 \(Y=X^2\) 这种抛物线关系,两者完全不线性相关,但绝非独立。可以想象一道菜品甜度与辣度无关(相关系数接近 0),但甜度很高时辣度却被迫降低——存在明显关联却测不出来。
为何常见:初学阶段习惯把“相关性”等同于“所有关系”,忽略了相关性只是它众多侧面中的一种。
误区“求 \(X\) 的边缘分布,直接读联合分布表里 \(X\) 所在的那一列就行。”
正解边缘分布必须把另一个变量的所有可能取值全部求和或积分。联合表里的一格只是组合概率,不是边缘概率。如同问“甜品甜度的整体分布”,必须把所有主菜、饮品的情况都算进去,而不是只看某一个套餐。
为何常见:联合表看起来像二维表格,初学者容易按“查表”的习惯直接取单格,忽略了概率质量需要累加。
误区“协方差矩阵是正定的,所以无论何时都可以求逆。”
正解协方差矩阵只是半正定的。当某个变量能由其他变量线性表示时,矩阵会变得奇异、不可逆。例如套餐里“含糖量”恰好是“总热量”减去“脂肪含量”,变量之间出现了完全冗余。
为何常见:教材例子通常数据干净且满秩,掩盖了多重共线性导致不满秩的现实情况。
误区“\(X\) 和 \(Y\) 分别都服从正态分布,那么 \((X,Y)\) 联合起来也一定是多元正态。”
正解单维边缘都是正态并不意味着联合分布是多元正态。多元正态的形态完全由均值和协方差矩阵决定,是一个很强的前提。就像两份菜单各自都好看,拼成一份套餐后未必协调。
为何常见:人们习惯把单元性质直接推广到多元,忽略了联合分布还包含变量间的依赖结构这一层信息。
面试题
Q1. 二维联合分布 \(P(X=x, Y=y)\) 的直接含义是?
- A.二者同时取该值的概率← 正确答案
- B.单独一方取值的概率
- C.分布期望的数值大小
- D.独立前提下方差大小
答案:A。联合分布研究的是“多个变量同时取某组值”的概率,A 正确。B 只描述单变量的边缘分布,C 是期望,D 是方差,都与联合概率的定义无关。
Q2. 由联合分布求 \(X\) 的边缘分布,需要对 \(Y\) 的取值做什么?
- A.对所有取值进行求和← 正确答案
- B.直接使用联合分布表
- C.对概率求最小值缩小
- D.计算变量的期望均值
答案:A。边缘分布要把另一个变量的所有可能取值求和或积分,A 正确。B 忽略了累加过程,C 没有统计意义,D 求的是期望而非边缘概率。
Q3. 条件分布 \(P(Y=y \mid X=x)\) 的计算公式是?
- A.联合概率减去边缘概率
- B.联合概率除以边缘概率← 正确答案
- C.边缘概率除以联合概率
- D.两个边缘概率之和再平均
答案:B。条件分布 = 联合概率 ÷ 作为条件的事件的边缘概率,B 正确。A 是减法没有归一化意义,C 将分子分母颠倒,D 是平均值而非条件概率。
Q4. 协方差为正值说明两个变量?
- A.倾向于同向变化← 正确答案
- B.倾向于反向变化
- C.二者完全互不影响
- D.二者相关系数是零
答案:A。正协方差表示一个变量高于均值时另一个也倾向于高于均值,A 正确。反向变化是负协方差,C 和 D 描述的是零协方差的情形。
Q5. 相关系数 \(\rho\) 的取值范围是?
- A.从零到一之间的常数
- B.从负一到正一闭区间← 正确答案
- C.从负无穷到正无穷值
- D.只能取正实数范畴
答案:B。相关系数经过标准化后必然落在 \(-1\) 到 \(1\) 之间,B 正确。A 漏掉了负半轴,C 违背了数学上界约束,D 忽略了负相关的可能性。
Q6. 若 \(\rho = 0\),以下说法正确的是?
- A.两变量必然相互独立
- B.能推出两者完全无关
- C.只能说明二者无线性关系← 正确答案
- D.说明协方差必然不为零
答案:C。相关系数只度量线性相关,\(\rho=0\) 只能说明没有线性关系,C 正确。A、B 都过度推断,非线性关系仍可能存在;D 与 \(\rho=0\) 的前提矛盾。
Q7. 协方差矩阵对角线上的元素表示什么?
- A.各个变量的方差数值← 正确答案
- B.两两变量协方差数值
- C.整体分布的期望均值
- D.相关系数矩阵的数值
答案:A。协方差矩阵对角线是每个变量与自身的协方差,也就是方差,A 正确。非对角线才是变量间的协方差,C 是均值向量,D 是相关矩阵的内容。
Q8. 关于协方差矩阵,下列说法正确的有?
- A.它是实对称矩阵← 正确答案
- B.它是半正定矩阵← 正确答案
- C.所有对角线均为零
- D.它的行列式必为负值
答案:AB。协方差矩阵满足对称性和半正定性,A、B 正确。对角线是方差,通常为正,C 错误;行列式可正可负也为零,D 错误。
Q9. 多元正态分布的正确特征包括?
- A.边缘分布仍然为正态← 正确答案
- B.条件分布也仍然为正态← 正确答案
- C.变量的线性组合也是正态← 正确答案
- D.变量之间必然相互独立
答案:ABC。多元正态的三大封闭性是:边缘、条件和线性组合都不出正态族,A、B、C 正确。但协方差矩阵非对角可以不为零,变量间允许相关,D 错误。
Q10. 多元正态分布在机器学习中的典型应用场景有?
- A.高斯过程回归的先验分布← 正确答案
- B.生成模型中潜变量的分布← 正确答案
- C.异常检测的密度估计定位← 正确答案
- D.将所有数据变成单一标量
答案:ABC。高斯过程用多元正态给函数值建先验,生成模型用多元正态描述潜变量,异常检测用马氏距离判离群,A、B、C 正确。D 是降维或聚合操作,与多元分布建模无关。