文章目录
十八、主成分分析
1.寻找主成分
主成分分析是一种“降维”的方式,将高维空间中的信息嵌入到低维空间的同时,尽可能保留原始样本中的信息。这样做的好处,主要是降低问题研究的复杂性,因为维数过高不论是在空间存储上,还是在运算时间上,都是一种浪费。如果能够将部分不重要的分量加以组合,形成一个更有用的分量,自然能降低运算的负担。
这样的降维有两个主要目标:一是尽可能地压缩样本空间的维数,二是尽可能多地保留样本的信息。主成分分析的方法,是用总体不同维度的线性组合,构成新的变量(变量组),从而用这个低维的变量(变量组)来代替原来的样本。而线性组合总可以用一个权重向量来表示。
比如说,总体是
X
=
(
X
1
,
⋯
,
X
p
)
′
X=(X_1,\cdots,X_p)'
X=(X1,⋯,Xp)′,就引入一个向量
w
=
(
w
1
,
⋯
,
w
p
)
′
w=(w_1,\cdots,w_p)'
w=(w1,⋯,wp)′用来表达一个线性组合
w
′
X
w'X
w′X。因为这个向量具有“权重”性,我们施以约束
w
′
w
=
1
w'w=1
w′w=1,这样就可以用这个向量代表线性组合中各个分量的重要性。信息的保留程度用方差来刻画,如果一个线性组合的方差越大,就说明保留的信息越完整。因此,如果
D
(
X
)
=
Σ
{\rm D}(X)=\Sigma
D(X)=Σ,寻找主成分就变成如下的规划问题:
max
z
=
w
′
Σ
w
,
s
.
t
.
w
′
w
=
1.
\max z=w'\Sigma w,\quad {\rm s.t.}w'w=1.
maxz=w′Σw,s.t.w′w=1.
用Lagrange乘数法很容易求出合适的
w
w
w,也就是
L
=
w
′
Σ
w
−
λ
(
w
′
w
−
1
)
,
L=w'\Sigma w-\lambda (w'w-1),
L=w′Σw−λ(w′w−1),
求偏导得到
∂
L
∂
w
=
2
(
Σ
−
λ
I
)
w
=
0
,
∂
L
∂
λ
=
w
′
w
−
1
=
0.
\frac{\partial L}{\partial w}=2(\Sigma -\lambda I)w=0,\\ \frac{\partial L}{\partial \lambda}=w'w-1=0.
∂w∂L=2(Σ−λI)w=0,∂λ∂L=w′w−1=0.
这说明
w
w
w就是
Σ
\Sigma
Σ的某个特征向量,为了确定具体是哪一个特征向量,要从其方差入手,注意到
w
Σ
w
′
=
w
′
λ
w
=
λ
,
w\Sigma w'=w'\lambda w=\lambda,
wΣw′=w′λw=λ,
所以要使
w
Σ
w
′
w\Sigma w'
wΣw′最大实际是要让
λ
\lambda
λ最大,因此,
w
w
w是最大特征值对应的特征向量。
如果一个线性组合,即使它是最好的,也压缩了过多的信息,我们自然会想着用多个线性组合作补充。为了避免信息的冗余,我们会限制两个线性组合之间不相关,也就是 C o v ( w 1 X , w 2 X ) = w 1 ′ Σ w 2 = 0 {\rm Cov}(w_1X,w_2X)=w_1'\Sigma w_2=0 Cov(w1X,w2X)=w1′Σw2=0,在此要求下,结合 w 2 ′ w 2 = 1 w_2'w_2=1 w2′w2=1的限制,寻找使得 D ( w 2 X ) {\rm D}(w_2X) D(w2X)最大的向量 w 2 w_2 w2。
结合刚才Lagrange乘子法的表现,我们已经知道了,向量 w w w必定是 Σ \Sigma Σ的特征向量(即使施加了不相关约束,原有的步骤也是不变的),且对应的特征值就是线性组合的方差。结合不同特征值对应的特征向量线性无关的特点,自然会想到次大的特征值对应的特征向量,或者同样是对应特征值最大但与 w 1 w_1 w1线性无关的特征向量。我们将寻找主成分的步骤归结如下:
主成分:设 X = ( X 1 , ⋯ , X p ) ′ X=(X_1,\cdots,X_p)' X=(X1,⋯,Xp)′为 p p p维随机向量,称 Z i = a i ′ X Z_i=a_i'X Zi=ai′X为 X X X的第 i i i主成分 ( i = 1 , ⋯ , p ) (i=1,\cdots,p) (i=1,⋯,p),如果:
- a i ′ a i = 1 a_i'a_i=1 ai′ai=1(权重性约束);
- 当 i > 1 i>1 i>1时, a i ′ Σ a j = 0 ( j = 1 , ⋯ , i − 1 ) a_i'\Sigma a_j=0(j=1,\cdots,i-1) ai′Σaj=0(j=1,⋯,i−1)(不相关性约束);
- D ( Z i ) = max a ′ a = 1 , a ′ Σ a j = 0 D ( a ′ X ) {\rm D}(Z_i)=\max\limits_{a'a=1,a'\Sigma a_j=0} {\rm D}(a'X) D(Zi)=a′a=1,a′Σaj=0maxD(a′X)(最大方差约束)。
寻找主成分:设 X = ( X 1 , ⋯ , X p ) ′ X=(X_1,\cdots,X_p)' X=(X1,⋯,Xp)′是 p p p维随机向量, Σ \Sigma Σ是其协方差阵,且其特征值为 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ p = 0 \lambda_1\ge \lambda_2\ge \cdots\ge\lambda_p=0 λ1≥λ2≥⋯≥λp=0,相应的单位正交向量是 a 1 , a 2 , ⋯ , a p a_1,a_2,\cdots,a_p a1,a2,⋯,ap,则 X X X的第 i i i主成分为
Z i = a i ′ X ( i = 1 , ⋯ , p ) . Z_i=a_i'X(i=1,\cdots,p). Zi=ai′X(i=1,⋯,p).
主成分矩阵:设 Z = ( Z 1 , ⋯ , Z p ) ′ Z=(Z_1,\cdots,Z_p)' Z=(Z1,⋯,Zp)′是 p p p维随机向量,则其分量 Z i Z_i Zi是 X X X的第 i i i主成分的充要条件是:
- Z = A ′ X Z=A'X Z=A′X,这里 A A A为正交矩阵,这表明 Z i Z_i Zi是 X X X的正交线性组合,且两两不相关。
- D ( Z ) = d i a g ( λ 1 , ⋯ , λ n ) {\rm D}(Z)={\rm diag}(\lambda_1,\cdots,\lambda_n) D(Z)=diag(λ1,⋯,λn),即协方差阵是对角阵,这说明 Z i Z_i Zi两两不相关。
- λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n \lambda_1\ge \lambda_2\ge \cdots\ge\lambda_n λ1≥λ2≥⋯≥λn。
2.主成分的性质
现在,我们已经知道给定总体如何求出其主成分了,主成分是对总体的正交变换,也恰好是总体自协方差矩阵的线性无关特征向量,因此,具有以下的性质。
主成分的协方差: D ( Z ) = Λ {\rm D}(Z)=\Lambda D(Z)=Λ,即 p p p个主成分的方差为 D Z i = λ i {\rm D}Z_i=\lambda_i DZi=λi,且互不相关。
既然主成分是一种信息压缩的表征,那么如何衡量主成分压缩过程中信息的保留程度就是值得注意的。因为主成分的方差就是特征值,因此我们会从特征值出发,定义信息的保留程度。假设原总体的自协方差矩阵为 Σ = ( σ i j ) p × p \Sigma=(\sigma_{ij})_{p\times p} Σ=(σij)p×p,则 Σ \Sigma Σ的主对角线之和代表原总体的总方差,就视为原总体蕴含的信息量。
总方差:定义 ∑ i = 1 p λ i = ∑ i = 1 p σ i i \sum_{i=1}^p\lambda_i=\sum_{i=1}^p\sigma_{ii} ∑i=1pλi=∑i=1pσii为原总体 X X X的总方差,或总惯量。
在主成分分解下,可以用前
m
m
m个特征值来近似逼近原总体的总方差,即
∑
i
=
1
m
λ
i
≈
∑
i
=
1
p
σ
i
i
\sum_{i=1}^m\lambda_i\approx\sum_{i=1}^p\sigma_{ii}
∑i=1mλi≈∑i=1pσii,这也就达到了降维的同时充分保留信息的目的。一般我们会要求信息保留超过70%,也就是选择
m
m
m使得
∑
i
=
1
m
λ
i
≥
0.7
∑
i
=
1
p
λ
i
.
\sum_{i=1}^m\lambda_i\ge0.7\sum_{i=1}^p\lambda_i.
i=1∑mλi≥0.7i=1∑pλi.
这一概念可以用贡献率来描述。
贡献率:称主成分 Z k Z_k Zk的贡献率为 λ k ∑ i = 1 p λ k \frac{\lambda_k}{\sum_{i=1}^p \lambda_k} ∑i=1pλkλk,主成分 Z 1 , ⋯ , Z m Z_1,\cdots,Z_m Z1,⋯,Zm的累计贡献率为
∑ k = 1 m λ k ∑ i = 1 p λ i . ( m < p ) \frac{\sum_{k=1}^m\lambda_k}{\sum_{i=1}^p\lambda_i}.(m<p) ∑i=1pλi∑k=1mλk.(m<p)
贡献率描述的是主成分对整体的贡献,接下来的定义则注重于总体的某一个维度。
因子载荷:定义主成分 Z k Z_k Zk与原始变量 X i X_i Xi的相关系数 ρ ( Z k , X i ) \rho(Z_k,X_i) ρ(Zk,Xi)为因子载荷量,也就是
ρ ( Z k , X i ) = λ k a i k σ i i . \rho(Z_k,X_i)=\frac{\sqrt{\lambda_k}a_{ik}}{\sqrt{\sigma_{ii}}}. ρ(Zk,Xi)=σii λk aik.
因子载荷的性质:
∑ k = 1 p ρ 2 ( Z k , X i ) = 1 , ∑ i = 1 p σ i i ρ 2 ( Z k , X i ) = λ k . \sum_{k=1}^p\rho^2(Z_k,X_i)=1,\\ \sum_{i=1}^p\sigma_{ii}\rho^2(Z_k,X_i)=\lambda_k. k=1∑pρ2(Zk,Xi)=1,i=1∑pσiiρ2(Zk,Xi)=λk.
有了因子载荷,结合其关于某一维度的平方为1的特点,可以定义主成分对原始变量的贡献率,这表示每个变量被提取信息的多少。
主成分对原始变量 X i X_i Xi的贡献率:定义为 X i X_i Xi与前 m m m个主成分 Z 1 , ⋯ , Z m Z_1,\cdots,Z_m Z1,⋯,Zm的相关系数的平方,即
ν i ( m ) = ∑ k = 1 m λ k a i k 2 σ i i . \nu_i^{(m)}=\sum_{k=1}^m\frac{\lambda_ka_{ik}^2}{\sigma_{ii}}. νi(m)=k=1∑mσiiλkaik2.
3.样本的主成分
在实际生活中,总体的协方差矩阵往往未知,需要通过样本来估计。总体的协方差矩阵可以用样本协方差阵来估计,设数据阵为
X
n
×
p
X_{n\times p}
Xn×p,样本数为
n
n
n,则样本协方差阵为
S
=
1
n
−
1
A
=
1
n
−
1
X
′
X
=
1
n
−
1
∑
t
=
1
n
(
X
(
t
)
−
X
ˉ
)
(
X
(
t
)
−
X
ˉ
)
′
=
d
e
f
(
s
i
j
)
p
×
p
.
S=\frac{1}{n-1}A=\frac1{n-1}X'X=\frac 1{n-1}\sum_{t=1}^n(X_{(t)}-\bar X)(X_{(t)}-\bar X)'\stackrel {\rm def}=(s_{ij})_{p\times p}.
S=n−11A=n−11X′X=n−11t=1∑n(X(t)−Xˉ)(X(t)−Xˉ)′=def(sij)p×p.
将
S
S
S作为
Σ
\Sigma
Σ的估计后,就可以求
S
S
S的特征值
λ
1
,
⋯
,
λ
p
\lambda_1,\cdots,\lambda_p
λ1,⋯,λp与特征向量
a
1
,
⋯
,
a
p
a_1,\cdots,a_p
a1,⋯,ap,也就是
p
p
p个主成分
Z
1
,
⋯
,
Z
p
Z_1,\cdots,Z_p
Z1,⋯,Zp。每一个主成分对每个样本的发挥不同,把第
t
t
t个样品
X
(
t
)
X_{(t)}
X(t)代入第
k
k
k个主成分
Z
k
Z_k
Zk,得到的值为
z
t
k
z_{tk}
ztk称为第
t
t
t个样品在第
i
i
i个主成分的得分,构成矩阵
Z
=
(
z
i
j
)
n
×
p
Z=(z_{ij})_{n\times p}
Z=(zij)n×p,它与数据矩阵是同规模的,这里第
t
t
t行是第
t
t
t个样品在
p
p
p个主成分的得分(记作
Z
(
t
)
Z_{(t)}
Z(t)),第
k
k
k列是第
k
k
k主成分对
n
n
n个样品的得分(记作
Z
k
\mathsf Z_k
Zk)。
样本主成分也具有贡献率、累计贡献率,并且有以下的性质:
正交性: Z ˉ = 1 n ∑ t = 1 n Z ( t ) = 0 \bar Z=\frac 1n\sum_{t=1}^nZ_{(t)}=0 Zˉ=n1∑t=1nZ(t)=0,且当 i ≠ j i\ne j i=j时 Z i ′ Z j = 0 \mathsf Z_i'\mathsf Z_j=0 Zi′Zj=0,也就是不同主成分得分向量相互正交。
得分向量的模: Z i ′ Z i = ( n − 1 ) λ i \mathsf Z_i'\mathsf Z_i=(n-1)\lambda_i Zi′Zi=(n−1)λi,这里 λ i \lambda_i λi是样本协方差阵的第 i i i特征值。
不仅如此,样本主成分还能最小化残差平方和,这里的残差平方和指的是选取
m
m
m个主成分作回归:
X
p
×
1
=
B
p
×
m
Z
m
×
1
+
ε
p
×
1
,
X_{p\times 1}=B_{p\times m}Z_{m\times 1}+\varepsilon_{p\times 1},
Xp×1=Bp×mZm×1+εp×1,
找一个
B
p
×
m
=
(
b
i
j
)
p
×
m
B_{p\times m}=(b_{ij})_{p\times m}
Bp×m=(bij)p×m使得残差平方和
ε
1
×
p
′
ε
p
×
1
=
Q
(
B
)
\varepsilon_{1\times p}'\varepsilon_{p\times 1}=Q(B)
ε1×p′εp×1=Q(B)最小,而这里每一个维度,都有
n
n
n个观测值作为样本。
最优分解:样本主成分具有使残差平方和最小的优越性。
回顾总结
-
主成分分析的目的是,用少数几个指标值代替高维样本空间,在降维的同时尽可能保留信息,一般希望保留的信息达到70%以上。
-
总体的主成分,就是自协方差矩阵 Σ \Sigma Σ的按大小排列特征值的对应特征向量,记每个主成分的贡献为
λ k ∑ i = 1 p λ i . \frac{\lambda_k}{\sum_{i=1}^p\lambda_i}. ∑i=1pλiλk.
前 m m m个主成分的累计贡献率就是各自贡献率的加总。 -
定义第 k k k个主成分与第 i i i个维度变量的相关系数为因子载荷 ρ ( Z k , X i ) \rho(Z_k,X_i) ρ(Zk,Xi),有 ∑ k = 1 p ρ 2 ( Z k , X i ) \sum_{k=1}^p\rho^2(Z_k,X_i) ∑k=1pρ2(Zk,Xi)。用因子载荷衡量主成分对某个变量的贡献率,即
∑ k = 1 m ρ 2 ( Z k , X i ) . \sum_{k=1}^m\rho^2(Z_k,X_i). k=1∑mρ2(Zk,Xi). -
用样本协方差阵替代总体协方差阵计算特征值和特征向量,能得到样本主成分,且样本主成分具有使残差平方和最小的特性。