主成分分析
基本原理
-
什么是主成分分析?
主成分的概念由Karl Pearson在1901年提出的。他是考察多个变量间相关性一种多元统计方法。
研究如何通过少数几个主成分(principal component)来解释多个变量间的内部结构。即从原始变量中导出少数几个主分量,使它们尽可能多地保留原始变量的信息,且彼此间互不相关。
主成分分析的目的:数据的压缩;数据的解释
常被用来寻找判断事物或现象的综合指标,并对综合指标所包含的信息进行适当的解释。
-
主成分分析的基本思想(以两个变量为例)
-
对这两个相关变量所携带的信息(在统计上信息往往是指数据的变异)
-
假定只有两个变量x 1 和x 2 ,从散点图可见两个变量存在相关关系,这意味着两个变量提供的信息有重叠
-
如果把两个变量用一个变量来表示,同时这一个新的变量又尽可能包含原来的两个变量的信息,这就是降维的过程
-
椭圆中有一个长轴和一个短轴,称为主轴。在长轴方向,数据的变化明显较大,而短轴方向变化则较小
如果沿着长轴方向设定一个新的坐标系,则新产生的两个变量和原始变量间存在一定的数学换算关系,同时这两个新变量之间彼此不相关,而且长轴变量携带了大部分的数据变化信息,短轴变量只携带了一小部分变化的信息(变异)
此时,只需要用长轴方向的变量就可以代表原来两个变量的信息。这样也就把原来的两个变量降维成了一个变量。长短轴相差越大,降维也就越合理
-
多维变量的情形类似,只不过是一个高维椭球,无法直观地观察
-
每个变量都有一个坐标轴,所以有几个变量就有几主轴。首先把椭球的各个主轴都找出来,再用代表大多数数据信息的最长的几个轴作为新变量,这样,降维过程也就完成了
-
找出的这些新变量是原来变量的线性组合,叫做主成分
- 主成分分析就是设法将原来众多具有一定相关性的变量( 如p个变量) ,重新组合成一组新的相互无关的综合变量来代替原来变量。怎么处理?
- 通常数学上的处理就是将原来p 个变量作线性组合作为新的综合变量。如何选择?
- 如果将选取的第一个线性组合即第一个综合变量记为F1 ,自然希望F1 尽可能多的反映原来变量的信息。怎样反映?
- 最经典的方法就是用方差来表达,即var(F1) 越大,表示F1包含的信息越多。因此在所有的线性组合中所选取的F1 应该是方差最大的,故称之为第一主成分(principal componentI )。
- 如果第一主成分不足以代表原来p 个变量的信息,再考虑选取F2 即第二个线性组合。F2 称为第二主成分(principal component II )。 F1 和F2的关系?
- 为了有效地反映原来信息,F1 已有的信息就不再出现在F2 中,即cov (F1,F2) =0 。依此类推,可以获得p 个主成分。因此,这些主成分之间是互不相关的,而且方差依次递减。在实际中,挑选前几个最大主成分来表征。标准?
- 各主成分的累积方差贡献率>80% 或特征根>1。
-
数学模型
假定有n 个地理样本,每个样本共有p 个变量,构成一个n ×p阶的地理数据阵
X
=
[
x
11
x
12
.
.
.
x
1
p
x
21
x
22
.
.
.
x
2
p
.
.
.
.
.
.
.
.
.
.
.
.
x
n
1
x
n
2
.
.
.
x
n
p
]
=
▲
(
X
1
,
X
2
,
.
.
.
,
X
p
)
X= \begin{bmatrix} x_{11} & x_{12} & ... & x_{1p} \\ x_{21} & x_{22} & ... & x_{2p} \\ ... & ... & ... & ... \\ x_{n1} & x_{n2} & ... & x_{np} \end{bmatrix} \stackrel{▲}{=}(X_1,X_2,...,X_p)
X=
x11x21...xn1x12x22...xn2............x1px2p...xnp
=▲(X1,X2,...,Xp)
当p 较大时,在p 维空间中考察问题比较麻烦。为了克服这一困难,就需要进行降维处理,即用较少的几个综合变量代替原来较多的变量,而且使这些较少的综合变量既能尽量多地反映原来较多变量所反映的信息。
要从原来的所有变量得到新的综合变量,一种较为简单的方法是作线性变换,使新的综合变量为原变量的线性组合。
{
F
1
=
a
11
x
1
+
a
21
x
2
+
.
.
.
+
a
p
1
x
p
F
2
=
a
12
x
1
+
a
22
x
2
+
.
.
.
+
a
p
2
x
p
.
.
.
F
p
=
a
1
p
x
1
+
a
2
p
x
2
+
.
.
.
+
a
p
p
x
p
F
i
=
a
1
i
x
1
+
a
2
i
x
2
+
.
.
.
+
a
p
i
x
p
i
=
1
,
2
,
.
.
.
,
p
\begin{cases} F_1=a_{11}x_1+a_{21}x_2+...+a_{p1}x_p \\ F_2=a_{12}x_1+a_{22}x_2+...+a_{p2}x_p \\ ... \\ F_p=a_{1p}x_1+a_{2p}x_2+...+a_{pp}x_p \end{cases} \\ F_i=a_{1i}x_1+a_{2i}x_2+...+a_{pi}x_p\quad i=1,2,...,p
⎩
⎨
⎧F1=a11x1+a21x2+...+ap1xpF2=a12x1+a22x2+...+ap2xp...Fp=a1px1+a2px2+...+appxpFi=a1ix1+a2ix2+...+apixpi=1,2,...,p
对于任意常数 c ,有 v a r ( c F i ) = c 2 v a r ( F i ) 为了使方差 v a r ( F i ) 可以比较,要求线性组合的系数满足规范化条件 a i 1 2 + a i 2 2 + . . . + a i p 2 = 1 对于任意常数c,有var(cF_i)=c^2var(F_i) \\ 为了使方差var(F_i)可以比较,要求线性组合的系数满足规范化条件 \\ a_{i1}^2+a_{i2}^2+...+a_{ip}^2=1 对于任意常数c,有var(cFi)=c2var(Fi)为了使方差var(Fi)可以比较,要求线性组合的系数满足规范化条件ai12+ai22+...+aip2=1
要求原始变量之间存在一定的相关性。
要求各个综合变量间互不相关,即协方差为0。
为了消除变量量纲不同对方差的影响,通常对数据进行标准化处理,变量之间的协方差即为相关系数。
-
数学模型的条件
如果多个变量相互独立或相关性很小,就不能进行主成分分析。
Kaiser-Meyer-Olkin (KMO) 检验:检验变量之间的偏相关系数是否过小。
Bartlett ’s 检验:该检验的原假设是相关矩阵为单位阵(不相关),如果不能拒绝原假设,则不适合进行主成分分析。 -
推导
F i = a 1 i x 1 + a 2 i x 2 + . . . + a p i x p i = 1 , 2 , . . . , p F = a 1 X 1 + a 2 X 2 + . . . + a p X p = ▲ a ′ X 其中 a = ( a 1 , a 2 , . . . , a p ) ′ X = ( X 1 , X 2 , . . . , X p ) ′ 寻求 X 的线性函数 a ′ X ,使相应的方差尽可能地大,即 V a r ( a ′ X ) = E ( a ′ X − E ( a ′ X ) ) ( a ′ X − E ( a ′ X ) ) ′ = α ′ E ( X − E ( X ) ) ( X − E ( X ) ) ′ α ′ = α ′ ∑ α = > M a x 且 α ′ α = 1 F_i=a_{1i}x_1+a_{2i}x_2+...+a_{pi}x_p\quad i=1,2,...,p \\ F=a_1X_1+a_2X_2+...+a_pX_p\stackrel{▲}{=}a'X \\ 其中a=(a_1,a_2,...,a_p)'\quad X=(X_1,X_2,...,X_p)' 寻求X的线性函数a'X,使相应的方差尽可能地大,即 \\ Var(a'X)=E(a'X-E(a'X))(a'X-E(a'X))'=α'E(X-E(X))(X-E(X))'α'=α'\sumα=>Max且α'α=1 Fi=a1ix1+a2ix2+...+apixpi=1,2,...,pF=a1X1+a2X2+...+apXp=▲a′X其中a=(a1,a2,...,ap)′X=(X1,X2,...,Xp)′寻求X的线性函数a′X,使相应的方差尽可能地大,即Var(a′X)=E(a′X−E(a′X))(a′X−E(a′X))′=α′E(X−E(X))(X−E(X))′α′=α′∑α=>Max且α′α=1
通过推导可知,X1,X2X…,Xp的主成分就是以协方差阵Σ的特征向量为系数的线性组合,它们互不相关,其方差为Σ的特征根。由于Σ特征根λ1≥λ2…≥λp>0,所以有Var(F1)≥Var(F2)…≥Var(Fp)>0,因此主成分的名次是按特征根取值大小的顺利排列的。
解决实际问题时,一般不是取全部p 个主成分,而是取前k 个。
方法之一是取特征根大于1 的主成分。
方法之二是根据累计贡献率来取主成分。 -
主成分的提取
-
贡献率
λ 1 / ∑ i = 1 p λ i 称为第一主成分的贡献率 V a r ( F 1 ) = λ 1 = > λ 1 / ∑ i = 1 p λ i = V a r ( F 1 ) / ∑ i = 1 p V a r ( F i ) 因此第一主成分的贡献率越大,表明其综合 X 1 , X 2 , . . . , X p 信息的能力就越强 λ_1/\sum_{i=1}^{p}λ_i称为第一主成分的贡献率 \\ Var(F_1)=λ_1=>λ_1/\sum_{i=1}^{p}λ_i=Var(F_1)/\sum_{i=1}^{p}Var(F_i) \\ 因此第一主成分的贡献率越大,表明其综合X_1,X_2,...,X_p信息的能力就越强 λ1/i=1∑pλi称为第一主成分的贡献率Var(F1)=λ1=>λ1/i=1∑pλi=Var(F1)/i=1∑pVar(Fi)因此第一主成分的贡献率越大,表明其综合X1,X2,...,Xp信息的能力就越强 -
累计贡献率
∑ i = 1 k λ i / ∑ i = 1 p λ i 称为前 k 个主成分的累计贡献率 \sum_{i=1}^{k}λ_i/\sum_{i=1}^{p}λ_i称为前k个主成分的累计贡献率 i=1∑kλi/i=1∑pλi称为前k个主成分的累计贡献率
如果前k 个主成分的累计贡献率达到85 %,则表明取前k个主成分基本包含了全部测量指标所具有的信息,从而达到了变量降维的目的。在实际应用中,通常用样本协差阵来表征总体协差阵。另外,为了消除指标量纲的影响,通常将原始数据进行标准化处理,从而协差阵等同于相关系数阵。
-
步骤
- 对原来的p 个指标进行标准化,以消除变量在水平和量纲上的影响
- 根据标准化后的数据矩阵求出相关系数矩阵
- 求出协方差矩阵的特征根和特征向量
- 确定主成分,并对各主成分所包含的信息给予适当的解释
主成分分析法与因子分析法
主成分分析法 F 1 = u 11 Z X 1 + u 12 Z X 2 + . . . u 1 p Z X p F 2 = u 21 Z X 1 + u 22 Z X 2 + . . . u 2 p Z X p . . . F p = u p 1 Z X 1 + u p 2 Z X 2 + . . . u p p Z X p 其中: u i ′ = ( u i 1 , u i 2 , . . . u i p ) , F = ( F 1 , F 2 , . . . F p ) ′ F = u i ′ Z X , Z X = u i F 因子分析法 Z X 1 = a 11 f 1 + a 12 f 2 + . . . a 1 m f m + ε 1 Z X 2 = a 21 f 1 + a 22 f 2 + . . . a 2 m f m + ε 2 . . . Z X p = a p 1 f 1 + a p 2 f 2 + . . . a p m f m + ε p 主成分分析法 \\ F_1=u_{11}ZX_1+u_{12}ZX_2+...u_{1p}ZX_p \\ F_2=u_{21}ZX_1+u_{22}ZX_2+...u_{2p}ZX_p \\ ... \\ F_p=u_{p1}ZX_1+u_{p2}ZX_2+...u_{pp}ZX_p \\ 其中:u'_i=(u_{i1},u_{i2},...u_{ip}),F=(F_1,F_2,...F_p)' \\ F=u'_iZX,ZX=u_iF \\ 因子分析法 \\ ZX_1=a_{11}f_1+a_{12}f_2+...a_{1m}f_m+\varepsilon_1 \\ ZX_2=a_{21}f_1+a_{22}f_2+...a_{2m}f_m+\varepsilon_2 \\ ... \\ ZX_p=a_{p1}f_1+a_{p2}f_2+...a_{pm}f_m+\varepsilon_p 主成分分析法F1=u11ZX1+u12ZX2+...u1pZXpF2=u21ZX1+u22ZX2+...u2pZXp...Fp=up1ZX1+up2ZX2+...uppZXp其中:ui′=(ui1,ui2,...uip),F=(F1,F2,...Fp)′F=ui′ZX,ZX=uiF因子分析法ZX1=a11f1+a12f2+...a1mfm+ε1ZX2=a21f1+a22f2+...a2mfm+ε2...ZXp=ap1f1+ap2f2+...apmfm+εp
变换:
Z
X
1
=
u
11
F
1
+
u
21
F
2
+
.
.
.
+
u
m
1
F
m
+
ε
1
′
Z
X
2
=
u
12
F
1
+
u
22
F
2
+
.
.
.
+
u
m
2
F
m
+
ε
2
′
.
.
.
Z
X
1
=
u
1
p
F
1
+
u
2
p
F
2
+
.
.
.
+
u
m
p
F
m
+
ε
p
′
其中:
ε
i
′
=
u
m
+
1
,
i
F
m
+
1
+
.
.
.
+
u
p
i
F
p
(
i
=
1
,
2
,
.
.
.
,
p
)
令
F
i
/
λ
i
≅
f
i
u
i
j
=
a
i
j
/
λ
i
ZX_1=u_{11}F_1+u_{21}F_2+...+u_{m1}F_m+\varepsilon'_1 \\ ZX_2=u_{12}F_1+u_{22}F_2+...+u_{m2}F_m+\varepsilon'_2 \\ ... \\ ZX_1=u_{1p}F_1+u_{2p}F_2+...+u_{mp}F_m+\varepsilon'_p \\ 其中:\varepsilon'_i=u_{m+1,i}F_{m+1}+...+u_{pi}F_p(i=1,2,...,p) \\ 令F_i/\sqrt{λ_i}\cong f_i \\ u_{ij}=a_{ij}/\sqrt{λ_i}
ZX1=u11F1+u21F2+...+um1Fm+ε1′ZX2=u12F1+u22F2+...+um2Fm+ε2′...ZX1=u1pF1+u2pF2+...+umpFm+εp′其中:εi′=um+1,iFm+1+...+upiFp(i=1,2,...,p)令Fi/λi≅fiuij=aij/λi