分析101

主成分分析简介

2021-05-16  本文已影响0人  Boye0212

本文主要介绍总体及样本的主成分的概念,如何可视化,以及一些最基本的性质。

1 总体的主成分

考虑x\sim (\mu,\Sigma),其中\Sigma可分解为\Sigma=\Gamma\Lambda\Gamma'\Gamma=(\eta_1,\ldots,\eta_d),各列为单位特征向量,\Lambda为特征值降序排列的对角矩阵,协方差矩阵的秩\text{rank}(\Sigma)=r,对于k=1,\ldots,r,定义如下概念:

我们来仔细看以上几个概念。\eta_k也叫载荷(loading),score x_k其实就是x在方向\eta_k上的贡献,也就是将x投影到\eta_k,而将前k个score放到一起,就组成了x^{(k)}p_k是一个d维向量,它的方向就是\eta_k的方向,长度/欧式范数为\vert x_k\vert

2 样本的主成分

假设我们有n个样本,将它们排成d\times n的矩阵X=(x_1,\ldots,x_n),记样本均值\bar x=\dfrac{1}{n}X\ell_n,样本协方差矩阵S=\dfrac{1}{n-1}(X-\bar x \ell_n')(X-\bar x \ell_n')',并且\text{rank}(S)=r\leq d

我们可以对样本协方差矩阵进行谱分解S=\hat\Gamma \hat\Lambda \hat\Gamma'。与在总体中的定义一样,可以在样本中定义如下概念:

3 主成分的可视化

本节考察如何将PC的贡献、PC scores W^{(k)}、PC projection P_k进行可视化。

3.1 Scree plot

对于总体数据,\text{rank}(\Sigma)=r,我们定义第k个PC,对总体协方差的贡献为
\dfrac{\lambda_k}{\sum_{j=1}^{r}\lambda_j}=\dfrac{\lambda_k}{\text{tr}(\Sigma)}
再定义前\kappa个PC对总体协方差的累积贡献为
\dfrac{\sum_{k=1}^{\kappa}\lambda_k}{\sum_{j=1}^{r}\lambda_j}=\dfrac{\sum_{k=1}^{\kappa}\lambda_k}{\text{tr}(\Sigma)}

对于不同k画出前k个PC的贡献和累积贡献,就得到了scree plot,如下图:

Scree plot中,有时可以找到elbow,传统方法是找出能比较好地代表数据的\kappa个点,就是elbow在的地方。有些文献中也叫kneekink。在上图的例子中,elbow就是在第3个特征值处出现。当然,在很多情况下,也可能没有elbow。

3.2 PC score plot

如果我们画出各PC的score,就叫PC score plot,但由于我们的视觉只能接受到三维的事物,因此对于超过三维,需要进行处理。比如对于W^{(4)},我们可以成对地在二维平面上画出各PC的score,如下图:

也可以直接画出三维图,如下图:


3.3 Projection plot

接下来看如何将P_k可视化。P_kd\times n的矩阵,它的第i列就是第i个样本在\hat\eta_k方向的贡献。对于每个k,都可以用P_k画出平行坐标图,这样就很方便地将P_k可视化了。

k个PC projection表示的其实就是用第k个score w_k对向量\hat\eta_k进行伸缩变换,因此也可以看一下这些score的分布,这就是密度估计(density estimates)。

下图是一个d=30的示例,左图为某个PC的projection plot,右图为非参数密度估计(可用Matlab工具curvdatSM):

4 PC的性质

4.1 结构性质

本节考虑PC的一些性质,先看X和它的PC的相关结构。这里采用第1节的设定。

首先来看w^{(k)}=\Gamma_k' (x-\mu),它的期望必满足\text{E}(w^{(k)})=0,这说明PC vectors都是中心化了的。而它的方差
\begin{aligned} \text{Var}(w^{(k)})=&\Gamma_k' \Sigma\Gamma_k\\ =&\Gamma_k' \Gamma\Lambda\Gamma'\Gamma_k\\ =&I_{k\times d}\Lambda I_{d\times k}\\ =&\Lambda_k \end{aligned}
即PC scores互不相关。当然,如果x是正态分布,那么PC scores也相互独立,否则需要用其他方法做出相互独立。

w^{(k)}是由w_k=\eta_k' (x-\mu)作为元素组成的列向量,因此\text{Var}(w_k)=\lambda_k\text{Cov}(w_k, w_l)=\eta_k'\Sigma\eta_l=\lambda_k\delta_{kl},这里\delta_{kl}是Kronecker delta function(\delta_{kk}=1,对于k\neq l\delta_{kl}=0)。由于\Lambda为按特征值降序排列的对角矩阵,因此必有
\text{Var}(w_1)\ge \text{Var}(w_2)\ge \cdots\ge \text{Var}(w_k)

对于\Sigma的特征值,有
\sum_{j=1}^{d}\lambda_j=\sum_{j=1}^{d}\sigma^2_j
其中\sigma_j^2\Sigma的第j个对角线元素。这是因为\Sigma\Lambda为相似矩阵,所以它们的迹一定相同。

如果用第2节中有关样本的设定,同样由于S=\hat\Gamma \hat\Lambda \hat\Gamma'S\hat\Lambda为相似矩阵,因此必有
\sum_{j=1}^{d} \hat\lambda_j = \sum_{j=1}^{d} s_j^2

4.2 最优化性质

我们从另一个角度出发,来看主成分分析。

对于第1节中设定的总体x,假设\Sigma满秩,我们能不能找到一个d维的单位向量u,使得u'x的方差最大?

由于\Sigma满秩,那么它的d个特征向量可构成正交基,不妨设u=c_1 \eta_1+\cdots+c_d \eta_d,而u'u=1就等价于\sum_i c_i^2=1,则方差
\begin{aligned} \text{Var}(u'x) =& u'\Sigma u\\ =& \sum_{j,k} c_j c_k \eta_j'\Sigma\eta_k\\ =& \sum_{j,k} c_j c_k \lambda_k \eta_j'\eta_k\\ =& \sum_j c_j^2\lambda_j\\ \leq & \lambda_1 \sum_j c_j^2\\ =& \lambda_1 \end{aligned}

假设各特征值互不相同,那么上式只有当c_1^2=1c_j=0j\neq 1)时等号成立,此时u=\pm \eta_1

接下来,我们寻找下一个u_2,要求u_2'x\eta_1' x不相关,并能使u'x的方差最大。同样可设u_2=c_1 \eta_1+\cdots+c_d \eta_du_2'x\eta_1' x不相关等价于u_2'\eta_1=0,此时又等价于c_1=0,重复上述过程,可以解出u_2'x的最大方差为\lambda_2,此时u_2=\pm \eta_2

不断重复上述过程,可以找出du

如果\text{rank}(\Sigma)=r\leq d,那么可找出r个特征值。如果特征值有重复,那么找出的u可能有多个解。

上一篇 下一篇

猜你喜欢

热点阅读