转载--协方差的意义和计算公式

本文详细解释了协方差的概念及其计算方法,并通过实例介绍了如何使用Matlab计算协方差矩阵,帮助读者深入理解不同维度数据间的关系。

协方差的意义和计算公式

学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

为什么需要协方差?

上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

 

来度量各个维度偏离其均值的程度,标准差可以这么来定义:

 

 

可见,方差是协方差的特殊情况,当X和Y相同时。

协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

从协方差的定义上我们也可以看出一些显而易见的性质,如:

协方差多了就是协方差矩阵

上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算 n! / ((n-2)!*2) 个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

 

这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有三个维度,则协方差矩阵为

 

可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差

Matlab协方差实战

上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

mysample = fix(rand(10,3)*50)

根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

>> dim1 = mysample(:,1);
>> dim2 = mysample(:,2);
>> dim3 = mysample(:,3);

计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

>> sum((dim1 - mean(dim1)) .* (dim2 - mean(dim2))) / (size(mysample, 1) - 1)  %得到 -147.0667
>> sum((dim1 - mean(dim1)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1)  %得到  -82.2667
>> sum((dim2 - mean(dim2)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1)  %得到   76.5111

搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

>> var(dim1)  %得到 227.8778
>> var(dim2)  %得到 179.8222
>> var(dim3)  %得到 156.7111

 这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

>> cov(mysample)

 把我们计算的数据对号入座,是不是一摸一样?

Update

今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式推导而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:

>> temp = mysample - repmat(mean(mysample), 10, 1);
>> result = temp' * temp ./ (size(mysample, 1) - 1)

总结

理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了~ 

转载于:https://www.cnblogs.com/shuaishuaidefeizhu/p/5346682.html

<think>好的,我现在需要帮用户找到协方差矩阵的计算公式及其推导过程。首先,我得回忆一下协方差矩阵的定义相关知识。根据用户提供的引用,协方差矩阵是描述多个随机变量之间协方差的矩阵,尤其是对角线上的元素是各个变量的方差,非对角线则是变量之间的协方差。 用户提到的引用[1][4]都涉及协方差矩阵的定义计算。比如引用[4]详细说明了三维点云的协方差矩阵结构,并给出了Cov(X,Y)的计算步骤。这可能是一个关键点。另外,引用[2]也解释了协方差矩阵的结构,特别是n×n的矩阵形式,其中n是变量的数量。 首先,我需要明确协方差矩阵的计算公式。对于样本矩阵X,假设有m个样本,每个样本有n个特征,那么协方差矩阵C是一个n×n的矩阵,其中每个元素C_ij表示第i个第j个特征之间的协方差。根据协方差的定义,Cov(X_i, X_j) = E[(X_i - μ_i)(X_j - μ_j)^T],其中μ是均值。不过在实际计算中,通常使用样本协方差,分母可能是m-1而不是m,但用户提供的引用中用的是除以N,也就是样本数,这可能是因为引用中的例子使用的是总体协方差而不是样本协方差。 接下来,推导过程。根据引用[4],以Cov(X,Y)为例,推导了协方差的计算步骤,即协方差等于乘积的期望减去期望的乘积。这个可能需要详细展开,比如E[XY] - E[X]E[Y]。不过用户给出的推导中,似乎是从展开式开始的,即E[(X - E[X])(Y - E[Y])],然后展开成E[XY - E[X]Y - XE[Y] + E[X]E[Y]],再逐项计算得到E[XY] - E[X]E[Y]。 然后,协方差矩阵的构建。对于一个n维随机向量,协方差矩阵的每个元素C_ij对应第i第j维的协方差。所以整个矩阵的结构就是将这些协方差按位置排列。例如,三维情况下的矩阵结构如引用[4]所示。 用户可能需要具体的公式例子。比如,如何从数据矩阵计算协方差矩阵。假设数据矩阵是n×m,其中n是变量数,m是样本数,那么协方差矩阵的计算通常涉及中心化数据(每个变量减去均值),然后计算乘积的均值。或者,用矩阵运算表示为(1/(m-1)) * X_centered * X_centered^T,其中X_centered是去均值后的数据矩阵。 需要注意的是,用户提供的引用中有不同的表示方式,比如引用[4]中的分母是N,而有些情况下样本协方差分母是N-1。这里可能需要指出两者的区别,但根据引用中的内容,用户的问题可能更关注总体协方差的计算,所以采用N作为分母。 总结步骤应该是:先计算每个变量的均值,然后中心化数据,接着计算每对变量的协方差,填充到矩阵对应位置。最后形成的矩阵就是协方差矩阵。 另外,用户可能需要数学表达式,根据系统指令,行内公式用$...$,独立公式用$$...$$。例如,协方差的公式可以写成$Cov(X,Y) = \frac{1}{N}\sum_{i=1}^N (X_i - \bar{X})(Y_i - \bar{Y})$,而协方差矩阵则可以表示为一个大矩阵,用双美元符号包围。 在推导过程中,可能需要用到期望的线性性质,比如E[aX + bY] = aE[X] + bE[Y],以及如何处理协方差的展开。这部分需要详细但清晰的步骤,避免过于简略让用户难以理解。 最后,生成相关问题的时候,需要考虑协方差矩阵的应用场景、与其他矩阵(如相关矩阵)的区别、计算方法的时间复杂度,或者在不同领域如PCA、卡尔曼滤波中的具体应用,如引用中提到的卡尔曼滤波中的协方差矩阵更新步骤。</think>### 协方差矩阵的计算公式及推导过程 #### 1. **定义与公式** 协方差矩阵是描述多个随机变量之间协方差关系的**对称矩阵**。对于包含$n$个随机变量的向量$\mathbf{X} = (X_1,X_2,...,X_n)^T$,其协方差矩阵$C$的元素$C_{ij}$定义为: $$C_{ij} = \text{Cov}(X_i, X_j) = E\left[(X_i - E[X_i])(X_j - E[X_j])\right]$$ 其中$E[\cdot]$表示数学期望。协方差矩阵的完整形式为: $$ C = \begin{bmatrix} \text{Cov}(X_1,X_1) & \text{Cov}(X_1,X_2) & \cdots & \text{Cov}(X_1,X_n) \\ \text{Cov}(X_2,X_1) & \text{Cov}(X_2,X_2) & \cdots & \text{Cov}(X_2,X_n) \\ \vdots & \vdots & \ddots & \vdots \\ \text{Cov}(X_n,X_1) & \text{Cov}(X_n,X_2) & \cdots & \text{Cov}(X_n,X_n) \end{bmatrix} $$ #### 2. **推导过程** 以二维变量$(X,Y)$为例,推导协方差矩阵元素$\text{Cov}(X,Y)$的计算: 1. **均值计算**: $$\bar{X} = \frac{1}{N}\sum_{i=1}^N X_i, \quad \bar{Y} = \frac{1}{N}\sum_{i=1}^N Y_i$$ 2. **协方差展开**: $$\text{Cov}(X,Y) = \frac{1}{N}\sum_{i=1}^N (X_i - \bar{X})(Y_i - \bar{Y})$$ 展开乘积项: $$ \begin{align*} \text{Cov}(X,Y) &= E[(X - E[X])(Y - E[Y])] \\ &= E[XY - XE[Y] - YE[X] + E[X]E[Y]] \\ &= E[XY] - E[X]E[Y] \end{align*} $$ 其中$E[XY]$是$X$$Y$的联合期望[^4]。 #### 3. **矩阵形式计算** 对于样本矩阵$X$(维度$n \times m$,$n$为变量数,$m$为样本数): 1. **中心化矩阵**: 每列减去对应变量的均值,得到$X_{\text{centered}}$。 2. **协方差矩阵公式**: $$C = \frac{1}{m-1} X_{\text{centered}} X_{\text{centered}}^T \quad (\text{样本协方差})$$ 或 $$C = \frac{1}{m} X_{\text{centered}} X_{\text{centered}}^T \quad (\text{总体协方差})$$ 矩阵乘法直接生成$n \times n$的对称矩阵[^1][^4]。 #### 4. **示例** 假设三维变量$\mathbf{X}=(X,Y,Z)$,其协方差矩阵为: $$ C = \begin{bmatrix} \text{Cov}(X,X) & \text{Cov}(X,Y) & \text{Cov}(X,Z) \\ \text{Cov}(Y,X) & \text{Cov}(Y,Y) & \text{Cov}(Y,Z) \\ \text{Cov}(Z,X) & \text{Cov}(Z,Y) & \text{Cov}(Z,Z) \end{bmatrix} $$ 对角线元素为各变量的方差$\text{Var}(X)$,非对角线为协方差[^2][^4]。 --- ### 相关问题 1. **协方差矩阵在PCA中如何应用?** PCA通过协方差矩阵的特征值分解实现降维,最大特征值对应的特征向量为主成分[^2][^4]。 2. **协方差矩阵与相关矩阵有何区别?** 协方差矩阵保留量纲,相关矩阵通过标准化消除量纲影响。 3. **卡尔曼滤波中协方差矩阵如何更新?** 通过先验误差协方差矩阵$P_k^-$卡尔曼增益$K_k$迭代更新协方差矩阵$P_k$[^3]。 [^1]: 协方差矩阵的定义及其计算公式 [^2]: PCA原理推导中的协方差矩阵解析 [^3]: 卡尔曼滤波的协方差更新公式 : PCA主成分分析的协方差计算推导
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值