主成分分析简介
本文主要介绍总体及样本的主成分的概念,如何可视化,以及一些最基本的性质。
1 总体的主成分
考虑,其中
可分解为
,
,各列为单位特征向量,
为特征值降序排列的对角矩阵,协方差矩阵的秩
,对于
,定义如下概念:
- 第
个principal component score(主成分得分)为
;
- 第
个principal component vector(主成分向量)为
;
- 第
个principal component projection (vector)(主成分映射(向量))为
。
我们来仔细看以上几个概念。也叫载荷(loading),score
其实就是
在方向
上的贡献,也就是将
投影到
,而将前
个score放到一起,就组成了
。
是一个
维向量,它的方向就是
的方向,长度/欧式范数为
。
2 样本的主成分
假设我们有个样本,将它们排成
的矩阵
,记样本均值
,样本协方差矩阵
,并且
。
我们可以对样本协方差矩阵进行谱分解。与在总体中的定义一样,可以在样本中定义如下概念:
- 第
个principal component score为
,这是一个
的行向量;
-
principal component data为
,它是
的矩阵;
- 第
个principal component projection为
,它是
的矩阵。
3 主成分的可视化
本节考察如何将PC的贡献、PC scores 、PC projection
进行可视化。
3.1 Scree plot
对于总体数据,,我们定义第
个PC,对总体协方差的贡献为
再定义前个PC对总体协方差的累积贡献为
对于不同画出前
个PC的贡献和累积贡献,就得到了scree plot,如下图:
![](https://img.haomeiwen.com/i5715116/272dbb55208334fd.png)
Scree plot中,有时可以找到elbow,传统方法是找出能比较好地代表数据的个点,就是elbow在的地方。有些文献中也叫knee或kink。在上图的例子中,elbow就是在第
个特征值处出现。当然,在很多情况下,也可能没有elbow。
3.2 PC score plot
如果我们画出各PC的score,就叫PC score plot,但由于我们的视觉只能接受到三维的事物,因此对于超过三维,需要进行处理。比如对于,我们可以成对地在二维平面上画出各PC的score,如下图:
![](https://img.haomeiwen.com/i5715116/fb4c5f3464de9d7e.png)
也可以直接画出三维图,如下图:
![](https://img.haomeiwen.com/i5715116/ce72c68e6888649b.png)
3.3 Projection plot
接下来看如何将可视化。
为
的矩阵,它的第
列就是第
个样本在
方向的贡献。对于每个
,都可以用
画出平行坐标图,这样就很方便地将
可视化了。
第个PC projection表示的其实就是用第
个score
对向量
进行伸缩变换,因此也可以看一下这些score的分布,这就是密度估计(density estimates)。
下图是一个的示例,左图为某个PC的projection plot,右图为非参数密度估计(可用Matlab工具curvdatSM):
![](https://img.haomeiwen.com/i5715116/5e000ea22b0996d1.png)
4 PC的性质
4.1 结构性质
本节考虑PC的一些性质,先看和它的PC的相关结构。这里采用第1节的设定。
首先来看,它的期望必满足
,这说明PC vectors都是中心化了的。而它的方差
即PC scores互不相关。当然,如果是正态分布,那么PC scores也相互独立,否则需要用其他方法做出相互独立。
而是由
作为元素组成的列向量,因此
,
,这里
是Kronecker delta function(
,对于
有
)。由于
为按特征值降序排列的对角矩阵,因此必有
对于的特征值,有
其中为
的第
个对角线元素。这是因为
与
为相似矩阵,所以它们的迹一定相同。
如果用第2节中有关样本的设定,同样由于,
与
为相似矩阵,因此必有
4.2 最优化性质
我们从另一个角度出发,来看主成分分析。
对于第1节中设定的总体,假设
满秩,我们能不能找到一个
维的单位向量
,使得
的方差最大?
由于满秩,那么它的
个特征向量可构成正交基,不妨设
,而
就等价于
,则方差
假设各特征值互不相同,那么上式只有当且
(
)时等号成立,此时
。
接下来,我们寻找下一个,要求
与
不相关,并能使
的方差最大。同样可设
,
与
不相关等价于
,此时又等价于
,重复上述过程,可以解出
的最大方差为
,此时
。
不断重复上述过程,可以找出个
。
如果,那么可找出
个特征值。如果特征值有重复,那么找出的
可能有多个解。