统计篇(四)-- 协方差矩阵的理解

article/2025/11/11 4:29:42

        本文将针对协方差矩阵做一个详细的介绍,其中包括协方差矩阵的定义、数学背景与意义、计算公式的推导、几何解释,主要整理自下面两篇博客:

  • peghoty-关于协方差矩阵的理解:http://blog.csdn.net/itplus/article/details/11452743
  • 协方差矩阵的几何解释:https://www.cnblogs.com/nsnow/p/4758202.html

一、协方差的定义与推导





二、几何解释

2.1 介绍

        下面图1表明标准差(方差的平方根)提供了数据在特征空间上传播多少的量度。


Figure 1. Gaussian density function. For normally distributed data, 68% of the samples fall within the interval defined by the mean plus and minus the standard deviation.

        我们发现,样本方差的无偏估计可由下式获得:

σ x 2 = 1 N − 1 ∑ i = 1 N ( x i − μ ) 2 = E [ ( x − E ( x ) ) ( x − E ( x ) ) ] = σ ( x , x ) (1) \begin{aligned} \sigma_x^2 &= \frac{1}{N-1} \sum_{i=1}^N (x_i - \mu)^2\\ &= \mathbb{E}[ (x - \mathbb{E}(x)) (x - \mathbb{E}(x))]\\ &= \sigma(x,x) \end{aligned}\tag{1} σx2=N11i=1N(xiμ)2=E[(xE(x))(xE(x))]=σ(x,x)(1)

        然而,方差只能用于解释平行于特征空间轴方向的数据传播。考虑图2所示的二维特征空间:


Figure 2. The diagnoal spread of the data is captured by the covariance.

        对于这个数据,我们可以计算出在 x x x方向上的方差 σ ( x , x ) \sigma(x, x) σ(x,x) y y y方向上的方差 σ ( y , y ) \sigma(y, y) σ(y,y)。然而,数据的水平传播和垂直传播不能解释明显的对角线关系。图2清楚地显示,平均而言,如果一个数据点的 x x x值增加,则 y y y值也将增加,这产生了正相关。这种相关性可以通过扩展方差概念到所谓的数据“协方差”捕捉到:
σ ( x , y ) = E [ ( x − E ( x ) ) ( y − E ( y ) ) ] (2) \sigma(x,y) = \mathbb{E}[ (x - \mathbb{E}(x)) (y - \mathbb{E}(y))] \tag{2} σ(x,y)=E[(xE(x))(yE(y))](2)

        对于2D数据,我们得到 σ ( x , x ) , σ ( y , y ) , σ ( x , y ) , a n d σ ( y , x ) \sigma(x, x), \sigma(y, y), \sigma(x, y), and \sigma(y, x) σ(x,x),σ(y,y),σ(x,y),andσ(y,x),这些值可以用矩阵来表示,该矩阵叫做协方差矩阵:
Σ = [ σ ( x , x ) σ ( x , y ) σ ( y , x ) σ ( y , y ) ] (3) \Sigma = \begin{bmatrix} \sigma(x,x) & \sigma(x,y) \\[0.3em] \sigma(y,x) & \sigma(y,y) \\[0.3em] \end{bmatrix} \tag{3} Σ=[σ(x,x)σ(y,x)σ(x,y)σ(y,y)](3)
        如果 x x x y y y是正相关的,那么 y y y x x x也是正相关的。换句话说, σ ( x , y ) = σ ( y , x ) \sigma(x, y) =\sigma(y, x) σ(x,y)=σ(y,x)。因此,协方差矩阵始终是一个对称矩阵,其对角线上是方差,非对角线上是协方差。二维正态分布数据由它的均值和2x2协方差矩阵就可以完全解释。同样,一个3x3协方差矩阵用于捕捉三维数据的传播,一个NxN协方差矩阵捕获N维数据的传播。

        图3展示了数据的整体形状如何定义协方差矩阵:


Figure 3. The covariance matrix defines the shape of the data. Diagonal spread is captured by the covariance, while axis-aligned spread is captured by the variance.

2.2 协方差矩阵的特征值分解

        我们在图3看到的,协方差矩阵定义了我们数据的传播(方差)和方向(协方差)。因此,如果我们想用一个向量和它的大小来表示协方差矩阵,我们应该简单地尝试找到指向数据最大传播方向上的向量,其大小等于这个方向上的传播(方差)。

        如果我们定义这个向量为 v ⃗ \vec{v} v ,那么我们数据 D D D到这个向量上的映射为 v ⃗ T D \vec{v}^TD v TD,映射数据的方差是 v ⃗ T Σ v ⃗ \vec{v}^T\Sigma\vec{v} v TΣv 。由于我们正在寻找指向最大方差方向的向量 v ⃗ \vec{v} v ,所以我们应该选择它的成分,使得映射数据的协方差矩阵 v ⃗ T Σ v ⃗ \vec{v}^T\Sigma\vec{v} v TΣv 尽可能的大。最大化 v ⃗ \vec{v} v 的形式为 v ⃗ T Σ v ⃗ \vec{v}^T\Sigma\vec{v} v TΣv 的任何函数,其中 v ⃗ \vec{v} v 是归一化单位向量,可以用一个所谓的瑞利商表示。通过设置 v ⃗ \vec{v} v 等于矩阵的最大特征特征向量 Σ \Sigma Σ可以获得这样瑞利商的最大值。

        换句话说,协方差矩阵的最大特征向量总是指向数据最大方差的方向,并且该向量的幅度等于相应的特征值。第二大特征向量总是正交于最大特征向量,并指向第二大数据的传播方向。

        一个线性变换矩阵 T T T完全由它的特征向量和特征值定义。应用到协方差矩阵,这意味着:
Σ v ⃗ = λ v ⃗ (4) \Sigma \vec{v} = \lambda \vec{v} \tag{4} Σv =λv (4)

        如果我们数据的协方差矩阵是对角矩阵,使得协方差是零,那么这意味着方差必须等于特征值λ。如图4所示,特征向量用绿色和品红色表示,特征值显然等于协方差矩阵的方差分量。


Figure 4. Eigenvectors of a covariance matrix

        然而,如果协方差矩阵不是对角的,使得协方差不为零,那么情况稍微更复杂一些。特征值仍代表数据最大传播方向的方差大小,协方差矩阵的方差分量仍然表示x轴和y轴方向上的方差大小。但是,因为数据不是轴对齐的,所以这些值不再与图5所示的相同。


Figure 5. Eigenvalues versus variance
        通过比较图5与图4,可以清楚地看到特征值表示沿特征向量方向数据的方差,而协方差矩阵的方差分量表示沿轴的传播。如果没有协方差,则这两个值是相等的。

2.3 协方差矩阵作为线性变换

        图3的实例可以简单地认为是图6的一个线性变换实例:


Figure 6. Data with unit covariance matrix is called white data.

        图6所示的数据是 D D D,则图3所示的每个实例可以通过线性变换 D D D得到:
D ′ = T D (5) D'=TD\tag{5} D=TD(5)
        其中 T T T是变换矩阵,包括一个旋转矩阵 R R R和缩放矩阵 S S S
T = R S (6) T=RS\tag{6} T=RS(6)
        这些矩阵定义如下:
R = [ cos ⁡ ( θ ) − sin ⁡ ( θ ) sin ⁡ ( θ ) cos ⁡ ( θ ) ] (7) R = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\[0.3em] \sin(\theta) & \cos(\theta) \end{bmatrix}\tag{7} R=[cos(θ)sin(θ)sin(θ)cos(θ)](7)

        其中 θ \theta θ是旋转角度。
S = [ s x 0 0 s y ] (8) S = \begin{bmatrix} s_x & 0 \\[0.3em] 0 & s_y \end{bmatrix}\tag{8} S=[sx00sy](8)
         S x , S y S_x, S_y Sx,Sy分别是 x x x方向和 y y y方向的比例因子。

        在下面的段落中,我们将讨论协方差矩阵 Σ \Sigma Σ与线性变换矩阵 T = R S T= RS T=RS之间的关系。

        让我们先从未缩放(缩放相当于1)和未旋转的数据开始。在统计中,这往往为“白数据’,因为它的样本是从标准正态分布引出的,因此对应于白(不相关)噪声:


Figure 7. White data is data with a unit covariance matrix.

        这个“白色”数据的协方差矩阵等于单位矩阵,使得方差和标准差等于1,协方差等于零:
Σ = [ σ x 2 0 0 σ y 2 ] = [ 1 0 0 1 ] (9) \Sigma = \begin{bmatrix} \sigma_x^2 & 0 \\[0.3em] 0 & \sigma_y^2 \\ \end{bmatrix} = \begin{bmatrix} 1 & 0 \\[0.3em] 0 & 1 \\ \end{bmatrix} \tag{9} Σ=[σx200σy2]=[1001](9)

        现在让我们用因子4在 x x x方向缩放数据:
D ′ = [ 4 0 0 1 ] D (10) D' = \begin{bmatrix} 4 & 0 \\[0.3em] 0 & 1 \\ \end{bmatrix}D\tag{10} D=[4001]D(10)

        数据 D ′ D' D现在如下:


Figure 8. Variance in the x-direction results in a horizontal scaling.

         D ′ D' D的协方差 Σ ′ \Sigma' Σ现在是:
Σ ′ = [ σ x 2 0 0 σ y 2 ] = [ 16 0 0 1 ] (11) \Sigma'=\begin{bmatrix} \sigma_x^2 & 0 \\ 0 & \sigma_y^2\end{bmatrix} = \begin{bmatrix} 16 & 0 \\ 0 & 1\end{bmatrix}\tag{11} Σ=[σx200σy2]=[16001](11)

         D ′ D' D的协方差 Σ ′ \Sigma' Σ与线性变换矩阵 T T T有关系, D ′ = T D D'=TD D=TD,其中:
T = Σ ′ = [ 4 0 0 1 ] (12) T=\sqrt{\Sigma'}=\begin{bmatrix} 4 & 0 \\ 0 & 1\end{bmatrix}\tag{12} T=Σ =[4001](12)
        然而,虽然数据在 x x x y y y方向上缩放时等式(12)成立,但是应用旋转是否依然成立呢?为了调查一般情况下线性变换矩阵 T T T和协方差矩阵 Σ ′ \Sigma' Σ之间的关系,我们试图分解协方差矩阵为旋转和缩放矩阵的乘积。
        正如我们前面所看到的,我们可以用特征向量和特征值表示协方差矩阵:
Σ v ⃗ = λ v ⃗ (13) \Sigma\vec{v} = \lambda\vec{v}\tag{13} Σv =λv (13)

        等式(13)保存矩阵 Σ \Sigma Σ的每个特征向量和特征值。在2D情况下,我们得到两个特征值和两个特征值。由公式(13)定义的两个等式可以有效地用矩阵符号来表示:
Σ V = V L (14) \Sigma V=VL\tag{14} ΣV=VL(14)
        其中 V V V是矩阵,它的列是 Σ \Sigma Σ的特征向量, L L L是对角矩阵,其非零元素对应特征值。

        这意味着我们可以将协方差矩阵表示为特征向量和特征值的函数:
Σ = V L V − 1 (15) \Sigma = VLV^{-1}\tag{15} Σ=VLV1(15)

        方程(15)就是所谓协方差矩阵特征值分解,并可以使用奇异值分解算法来获得。而特征向量表示数据最大方差的方向,特征值表示那些方向方差的幅度。换言之, V V V表示旋转矩阵,而 L \sqrt{L} L 表示一个缩放矩阵。协方差矩阵可以进一步分解为:
Σ = R S S R − 1 (16) \Sigma = RSSR^{-1}\tag{16} Σ=RSSR1(16)
        其中, R = V R=V R=V 是一个旋转矩阵, S = L S=\sqrt{L} S=L 是一个缩放矩阵。
        在等式(6)中,我们定义了一个线性变换 T = R S T= RS T=RS。由于 S S S是对角缩放矩阵,所以 S = S T S=ST S=ST。此外,由于 R R R为正交矩阵, R − 1 = R T R^{-1}=R^T R1=RT。因此, T T = ( R S ) T = S T R T = S R − 1 T^T=(RS)^T=S^TR^T=SR^{-1} TT=(RS)T=STRT=SR1。协方差矩阵可以写为:
Σ = R S S R − 1 = T T ⊺ (17) \Sigma = R \, S \, S \, R^{-1} = T \, T^{\intercal}\tag{17} Σ=RSSR1=TT(17)

        换言之,如果我们应用由 T = R S T=RS T=RS定义的线性变换到图7所示的原始白数据,我们得到了旋转和缩放的数据 D ′ D' D及协方差矩阵 T T T = σ ′ = R S S R − 1 TT^T=\sigma'=RSSR^{-1} TTT=σ=RSSR1。如图10:


Figure 10. The covariance matrix represents a linear transformation of the original data.

        图10的彩色箭头表示特征向量。最大特征向量,即与最大特征值对应的特征向量,总是指向数据最大方差的方向,并由此确定其方位。次特征向量总是正交于最大特征向量,因为旋转矩阵的正交性。

2.4 总结

        在本文中,我们表明观察到数据的协方差矩阵与白色不相关数据的线性变换有直接的关系。此线性变换完全由数据的特征向量和特征值确定。而特征向量表示旋转矩阵,特征值对应于每个维度上缩放因子的平方。
        原文链接为:A geometric interpretation of the covariance matrix:https://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/


http://chatgpt.dhexx.cn/article/89dhnHva.shtml

相关文章

欧拉函数的两种求法

引入:互质的概念:如果 正整数 a 与b 之间只有一个公约数1 则称a与 b 互为质数。 欧拉函数的定义: 1-N 中 与N 互质的数的个数 记作 Phi(N) 在算数基本定理中任意自然数能进行质因数拆分,那么由容斥原理&a…

求欧拉函数的方法

求欧拉函数的一般方法: 1.我们知道一个素数p的欧拉函数f(p)p-1;那么p的k次幂,即np^k,则容易证明:f(n)p^k-p^(k-1); 证明:已知少于p^k的数有p^k-1,其中与p^k不互质的数有p^(k-1)-1个&…

欧拉函数的求法(三种)

欧拉函数定义 求欧拉函数的方法 1.公式法 2.线性筛法 根据三条性质来解题的: //1、当p为质数的时候:phi(p)p-1 //2、当p与i互质时有: phi(p*i)phi(p)*phi(i) //3、当i%p0时有:phi(p*i)p*phi(i) 具体实现参考链接: 1.求欧拉函数…

欧拉函数算法

一、欧拉函数值 欧拉函数又称为Phi函数 欧拉函数的定义为:对于正整数n,他的欧拉函数值是不大于n的正整数中与n互质的正整数的个数(互质:除1外没有其他最大公约数)。 据此,可以得到求某个数欧拉值的代码&am…

数学知识:欧拉函数

文章目录 前言一、欧拉函数,欧拉定理二、例题,代码AcWing 873. 欧拉函数AC代码 AcWing 874. 筛法求欧拉函数本题解析AC代码 三、时间复杂度 前言 复习acwing算法基础课的内容,本篇为讲解数学知识:欧拉函数,关于时间复…

欧拉函数相关概念

一、欧拉函数 给定正整数n,欧拉函数φ(n)不大于n且和n互质的正整数的个数(包括1)。φ(1)1 φ ( n ) Σ i 1 n [ g c d ( i , n ) 1 ] \varphi \left( n \right) \varSigma_{i1}^{n}\left[ gcd\left( i,n \right) 1 \right] φ(n)Σi1n​[gcd(i,n)1] 完全余数集…

欧拉函数与欧拉定理

转载请说明出处:http://blog.csdn.net/leader_one/article/details/77619762 说在前面 按照惯例,出于尊重,还是简单介绍一下这位多产的学术伟人 莱昂哈德欧拉(Leonhard Euler ,1707年4月15日~1783年9月1…

欧拉函数及模板

欧拉函数 什么是欧拉函数怎么计算欧拉函数欧拉函数三种常用模板素因数分解求欧拉函数欧拉函数值打表欧拉筛型欧拉函数 什么是欧拉函数 欧拉函数是小于等于x的整数中与x互质的数的个数,一般用φ(x)表示。特殊的,φ(1)1。 例如,φ(12)4 {1,5,7…

如何求欧拉函数~转载

三、欧拉函数 请思考以下问题: 任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?) 计算这个值的方法…

欧拉函数公式证明

请思考以下问题: 任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?) 计算这个值的方法就叫做欧拉函…

欧拉函数

原文链接:https://zh.m.wikipedia.org/zh/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0 欧拉函数 本文介绍的是小于或等于 n的正整数中与 n 互质的数的数目。关于形式为 的函数,详见「 欧拉函数(复变函数)」。 当 n为1至1000的整数时 的值 在数论中&#xff0…

数学知识——欧拉函数

1. 欧拉函数 定义:欧拉函数ψ(n) 表示1~n中与n互质的数的个数 公式:如果一个数可以被分解质因式为N p1α1 *p2α2……pkαk 则ψ(n) n(1 - 1/p1)(1 - 1/p2)…(1 - 1/pk) 公式由容斥原理证明,证明略 算法实现思路: 利用求一个数…

数论基础——欧拉函数

欧拉函数: 就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。 欧拉函数的通式:φ(n)n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn) 其中p1, p2……pn为n的所有质因数&#xff…

欧拉函数——数学知识(c++)

定义:欧拉函数表示1-N中与N互质的数的个数; 给定一个数n,求在[1,n]这个范围内两两互质的数的个数 对于这个范围内的每一个数,我们只要找到不超过这个数且与这个数互质的数的个数就可以了 欧拉函数用希腊字母φ表示,φ(N)表示N的欧…

欧拉函数(Euler_Function)

一、基本概述 在数论,对正整数n,欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Eulers totient function、φ函数、欧拉商数等。 二、计算公式 三、基本性质 欧拉函数用希腊字母φ表示,φ…

欧拉函数最全总结

文章目录 欧拉函数的内容一、欧拉函数的引入二、欧拉函数的定义三、欧拉函数的性质四、欧拉函数的计算方法(一)素数分解法(二)编程思维1.求n以内的所有素数2.求φ(n)3.格式化输出0-100欧拉函数表(“x?”代表十位数&am…

什么是时间复杂度

什么是算法 算法可以理解就是一系列被控制的步骤,你通过按序执行这些步骤可以实现一些目标或者产生一些输出。 时间复杂度 时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数.时间复杂度常用大O表述表述&#xff0c…

算法的时间复杂度和空间复杂度详解

通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂…

一文详解时间复杂度

一文详解时间复杂度,从里到外清晰认识 1. 什么是时间复杂度2. 关于大O3. 不同数据规模的差异4. 复杂表达式的化简5. O ( l o g n ) O(logn) O(logn)中的 l o g log log是以什么为底?举一个例子 总结 1. 什么是时间复杂度 时间复杂度是一个函数&#xff…

时间复杂度分析

该节知识点引用机械工业出版社数据结构和算法分析第2章内容 以及极客时间数据结构和算法部分知识点 时间复杂度基础分析 算法执行时间分析 时间复杂度分析更多的是对要编写的代码进行一个事前预估分析的一个过程,通过事前大致分析出算法执行的时间和所需要的空间…