本文将针对协方差矩阵做一个详细的介绍,其中包括协方差矩阵的定义、数学背景与意义、计算公式的推导、几何解释,主要整理自下面两篇博客:
- peghoty-关于协方差矩阵的理解:http://blog.csdn.net/itplus/article/details/11452743
- 协方差矩阵的几何解释:https://www.cnblogs.com/nsnow/p/4758202.html
一、协方差的定义与推导
二、几何解释
2.1 介绍
下面图1表明标准差(方差的平方根)提供了数据在特征空间上传播多少的量度。

我们发现,样本方差的无偏估计可由下式获得:
σ 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=N−11i=1∑N(xi−μ)2=E[(x−E(x))(x−E(x))]=σ(x,x)(1)
然而,方差只能用于解释平行于特征空间轴方向的数据传播。考虑图2所示的二维特征空间:

对于这个数据,我们可以计算出在
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[(x−E(x))(y−E(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展示了数据的整体形状如何定义协方差矩阵:

2.2 协方差矩阵的特征值分解
我们在图3看到的,协方差矩阵定义了我们数据的传播(方差)和方向(协方差)。因此,如果我们想用一个向量和它的大小来表示协方差矩阵,我们应该简单地尝试找到指向数据最大传播方向上的向量,其大小等于这个方向上的传播(方差)。
如果我们定义这个向量为 v ⃗ \vec{v} v,那么我们数据 D D D到这个向量上的映射为 v ⃗ T D \vec{v}^TD vTD,映射数据的方差是 v ⃗ T Σ v ⃗ \vec{v}^T\Sigma\vec{v} vTΣv。由于我们正在寻找指向最大方差方向的向量 v ⃗ \vec{v} v,所以我们应该选择它的成分,使得映射数据的协方差矩阵 v ⃗ T Σ v ⃗ \vec{v}^T\Sigma\vec{v} vTΣv尽可能的大。最大化 v ⃗ \vec{v} v的形式为 v ⃗ T Σ v ⃗ \vec{v}^T\Sigma\vec{v} vTΣ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所示,特征向量用绿色和品红色表示,特征值显然等于协方差矩阵的方差分量。

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

2.3 协方差矩阵作为线性变换
图3的实例可以简单地认为是图6的一个线性变换实例:

图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)和未旋转的数据开始。在统计中,这往往为“白数据’,因为它的样本是从标准正态分布引出的,因此对应于白(不相关)噪声:

这个“白色”数据的协方差矩阵等于单位矩阵,使得方差和标准差等于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′现在如下:

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}
Σ=VLV−1(15)
方程(15)就是所谓协方差矩阵特征值分解,并可以使用奇异值分解算法来获得。而特征向量表示数据最大方差的方向,特征值表示那些方向方差的幅度。换言之,
V
V
V表示旋转矩阵,而
L
\sqrt{L}
L表示一个缩放矩阵。协方差矩阵可以进一步分解为:
Σ
=
R
S
S
R
−
1
(16)
\Sigma = RSSR^{-1}\tag{16}
Σ=RSSR−1(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
R−1=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=SR−1。协方差矩阵可以写为:
Σ
=
R
S
S
R
−
1
=
T
T
⊺
(17)
\Sigma = R \, S \, S \, R^{-1} = T \, T^{\intercal}\tag{17}
Σ=RSSR−1=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=σ′=RSSR−1。如图10:

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