【统计至简】【入门测试4】协方差矩阵的特征值分解
协方差矩阵 C 的特征值分解 C = V Λ V T C = V\Lambda V^T C=VΛVT,其中 V V V是由特征向量构成的矩阵, Λ \Lambda Λ 是由特征值构成的对角矩阵。
1. 等式右侧第二个矩阵 V V V 对应转置运算,为什么?
协方差矩阵
C
C
C 是实对称矩阵,根据实对称矩阵的谱定理,实对称矩阵
C
C
C 一定可以正交对角化。也就是说,存在一个正交矩阵
V
V
V(满足
V
T
V
=
V
V
T
=
I
V^TV = VV^T=I
VTV=VVT=I,其中 I 是单位矩阵)和一个对角矩阵
Λ
\Lambda
Λ,使得
C
=
V
Λ
V
T
C = V\Lambda V^T
C=VΛVT。
从推导过程来看,设
C
C
C 是
n
×
n
n\times n
n×n 的实对称矩阵,
λ
i
\lambda_i
λi 是
C
C
C 的特征值,
v
i
\mathbf{v}_i
vi 是对应的特征向量,即
C
v
i
=
λ
i
v
i
C\mathbf{v}_i=\lambda_i\mathbf{v}_i
Cvi=λivi,
i
=
1
,
2
,
⋯
,
n
i = 1,2,\cdots,n
i=1,2,⋯,n。
将这些特征向量按列排列构成矩阵
V
=
[
v
1
,
v
2
,
⋯
,
v
n
]
V=[\mathbf{v}_1,\mathbf{v}_2,\cdots,\mathbf{v}_n]
V=[v1,v2,⋯,vn],则
C
V
=
V
Λ
CV = V\Lambda
CV=VΛ,其中
Λ
=
diag
(
λ
1
,
λ
2
,
⋯
,
λ
n
)
\Lambda=\text{diag}(\lambda_1,\lambda_2,\cdots,\lambda_n)
Λ=diag(λ1,λ2,⋯,λn)。
由于实对称矩阵不同特征值对应的特征向量相互正交,且可以将特征向量单位化,所以
V
V
V 是正交矩阵,在等式
C
V
=
V
Λ
CV = V\Lambda
CV=VΛ 两边同时右乘
V
T
V^T
VT 就得到
C
=
V
Λ
V
T
C = V\Lambda V^T
C=VΛVT。
2. 矩阵 V V V有什么特殊性质?如何从向量空间角度理解 V V V?
特殊性质
- 正交性
V V V 是正交矩阵,即 V T V = V V T = I V^TV = VV^T = I VTV=VVT=I。这意味着 V V V 的列向量两两正交且模长为 1,即 :
v i T v j = { 1 , i = j 0 , i ≠ j \mathbf{v}_i^T\mathbf{v}_j=\begin{cases}1, & i = j\\0, & i\neq j\end{cases} viTvj={1,0,i=ji=j - 可逆性:
因为 V 是正交矩阵,所以 V 是可逆的,且 V − 1 = V T V^{-1}=V^T V−1=VT。
向量空间角度理解
矩阵 V V V 的列向量 v 1 , v 2 , ⋯ , v n \mathbf{v}_1,\mathbf{v}_2,\cdots,\mathbf{v}_n v1,v2,⋯,vn 构成了 n 维向量空间 R n \mathbb{R}^n Rn 的一组标准正交基。特征值分解可以看作是将原始的向量空间 R n \mathbb{R}^n Rn 通过 V V V 进行了一个基的变换。在新的基(由 V V V 的列向量构成)下,协方差矩阵 C C C 变成了对角矩阵 Λ \Lambda Λ,使得数据在新的基下的协方差结构更加清晰,各个维度之间相互独立。
3. 矩阵 Λ \Lambda Λ 有什么特殊性质,什么条件下,C 特征值中有 0?
矩阵 Λ \Lambda Λ 的特殊性质
- 对角性:
- Λ \Lambda Λ 是对角矩阵,即除了主对角线上的元素 λ i \lambda_i λi( i = 1 , 2 , ⋯ , n i = 1,2,\cdots,n i=1,2,⋯,n)外,其余元素均为 0。
- 特征值非负性:由于协方差矩阵 C C C 是半正定矩阵(对于任意向量 x \mathbf{x} x,有 x T C x ≥ 0 \mathbf{x}^TC\mathbf{x}\geq0 xTCx≥0),所以其特征值 λ i ≥ 0 \lambda_i\geq0 λi≥0, i = 1 , 2 , ⋯ , n i = 1,2,\cdots,n i=1,2,⋯,n。
C 特征值中有 0 的条件
C
C
C 的特征值中有 0 当且仅当
C
C
C 是奇异矩阵(不可逆),即
rank
(
C
)
<
n
\text{rank}(C)<n
rank(C)<n。
从数据的角度来看,这意味着数据在某些维度上存在完全的线性相关性,或者说数据实际上位于一个低于
n
n
n 维的子空间中。例如,在二维空间中,如果两个变量完全线性相关,那么协方差矩阵的秩为 1,会有一个特征值为 0。
4. 如果把 V V V 写成 [ v 1 , v 2 ] [\mathbf{v}_1,\mathbf{v}_2] [v1,v2], C = V Λ V T C = V\Lambda V^T C=VΛVT 如何展开?
假设 C 是
2
×
2
2\times2
2×2 的协方差矩阵,
V
=
[
v
1
,
v
2
]
V = [\mathbf{v}_1,\mathbf{v}_2]
V=[v1,v2],
Λ
=
[
λ
1
0
0
λ
2
]
\Lambda=\begin{bmatrix}\lambda_1 & 0\\0 & \lambda_2\end{bmatrix}
Λ=[λ100λ2],则:
C
=
V
Λ
V
T
=
[
v
1
,
v
2
]
[
λ
1
0
0
λ
2
]
[
v
1
T
v
2
T
]
=
[
λ
1
v
1
,
λ
2
v
2
]
[
v
1
T
v
2
T
]
=
λ
1
v
1
v
1
T
+
λ
2
v
2
v
2
T
\begin{align*} C&=V\Lambda V^T\\ &=[\mathbf{v}_1,\mathbf{v}_2]\begin{bmatrix}\lambda_1 & 0\\0 & \lambda_2\end{bmatrix}\begin{bmatrix}\mathbf{v}_1^T\\\mathbf{v}_2^T\end{bmatrix}\\ &= [\lambda_1\mathbf{v}_1,\lambda_2\mathbf{v}_2]\begin{bmatrix}\mathbf{v}_1^T\\\mathbf{v}_2^T\end{bmatrix}\\ &=\lambda_1\mathbf{v}_1\mathbf{v}_1^T+\lambda_2\mathbf{v}_2\mathbf{v}_2^T \end{align*}
C=VΛVT=[v1,v2][λ100λ2][v1Tv2T]=[λ1v1,λ2v2][v1Tv2T]=λ1v1v1T+λ2v2v2T
5. 把 V V V 写成 [ v 1 , v 2 ] [\mathbf{v}_1,\mathbf{v}_2] [v1,v2], V T C V = Λ V^TCV=\Lambda VTCV=Λ 如何展开?
V
T
C
V
=
[
v
1
T
v
2
T
]
C
[
v
1
,
v
2
]
=
[
v
1
T
C
v
1
v
1
T
C
v
2
v
2
T
C
v
1
v
2
T
C
v
2
]
\begin{align*} V^TCV&=\begin{bmatrix}\mathbf{v}_1^T\\\mathbf{v}_2^T\end{bmatrix}C[\mathbf{v}_1,\mathbf{v}_2]\\ &=\begin{bmatrix}\mathbf{v}_1^T C\mathbf{v}_1&\mathbf{v}_1^T C\mathbf{v}_2\\\mathbf{v}_2^T C\mathbf{v}_1&\mathbf{v}_2^T C\mathbf{v}_2\end{bmatrix} \end{align*}
VTCV=[v1Tv2T]C[v1,v2]=[v1TCv1v2TCv1v1TCv2v2TCv2]
因为
C
v
i
=
λ
i
v
i
C\mathbf{v}_i=\lambda_i\mathbf{v}_i
Cvi=λivi(
i
=
1
,
2
i = 1,2
i=1,2),且
v
i
T
v
j
=
{
1
,
i
=
j
0
,
i
≠
j
\mathbf{v}_i^T\mathbf{v}_j=\begin{cases}1, & i = j\\0, & i\neq j\end{cases}
viTvj={1,0,i=ji=j,所以:
v
1
T
C
v
1
=
v
1
T
(
λ
1
v
1
)
=
λ
1
v
1
T
v
1
=
λ
1
v
1
T
C
v
2
=
v
1
T
(
λ
2
v
2
)
=
λ
2
v
1
T
v
2
=
0
v
2
T
C
v
1
=
v
2
T
(
λ
1
v
1
)
=
λ
1
v
2
T
v
1
=
0
v
2
T
C
v
2
=
v
2
T
(
λ
2
v
2
)
=
λ
2
v
2
T
v
2
=
λ
2
\begin{align*} \mathbf{v}_1^T C\mathbf{v}_1&=\mathbf{v}_1^T(\lambda_1\mathbf{v}_1)=\lambda_1\mathbf{v}_1^T\mathbf{v}_1=\lambda_1\\ \mathbf{v}_1^T C\mathbf{v}_2&=\mathbf{v}_1^T(\lambda_2\mathbf{v}_2)=\lambda_2\mathbf{v}_1^T\mathbf{v}_2 = 0\\ \mathbf{v}_2^T C\mathbf{v}_1&=\mathbf{v}_2^T(\lambda_1\mathbf{v}_1)=\lambda_1\mathbf{v}_2^T\mathbf{v}_1 = 0\\ \mathbf{v}_2^T C\mathbf{v}_2&=\mathbf{v}_2^T(\lambda_2\mathbf{v}_2)=\lambda_2\mathbf{v}_2^T\mathbf{v}_2=\lambda_2 \end{align*}
v1TCv1v1TCv2v2TCv1v2TCv2=v1T(λ1v1)=λ1v1Tv1=λ1=v1T(λ2v2)=λ2v1Tv2=0=v2T(λ1v1)=λ1v2Tv1=0=v2T(λ2v2)=λ2v2Tv2=λ2所以
V
T
C
V
=
[
λ
1
0
0
λ
2
]
=
Λ
V^TCV=\begin{bmatrix}\lambda_1 & 0\\0 & \lambda_2\end{bmatrix}=\Lambda
VTCV=[λ100λ2]=Λ。