主成分分析

主成分分析(Principal Component Analysis,PCA)
目的是用较少的变量代表解释原有的变量。将相关性高的变量转换为相互独立的变量[1]

原理:降维,有关联的变量反映的信息有一定的重叠。对于原有变量,将重复的变量(关系紧密的变量)删去,建立尽可能少的新变量,使得新变量是两两不相关的[3],且能尽可能保持原有的信息(方差最大化)和解释原有变量,使样本具有相对较好的区分性。

定义:一个正交化线性变换,把数据(包含降维)变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推[4]

方法

主成分分析仅是变量转换,以下是得到变量转换的方法。

\(Z_1,Z_2,\dots,Z_r\) 为主成分 \[\left\{\begin{array}{c} Z_{1}=c_{11} X_{1}+c_{12} X_{2}+\cdots+c_{1 m} X_{m} \\ Z_{2}=c_{21} X_{1}+c_{22} X_{2}+\cdots+c_{2 m} X_{m} \\ \vdots \\ Z_{r}=c_{r 1} X_{1}+c_{r 2} X_{2}+\cdots+c_{r m} X_{m} \end{array}\right.\]

\[ \begin{bmatrix} \boldsymbol{Z}_1\\ \boldsymbol{Z}_2\\ \vdots\\ \boldsymbol{Z}_r \end{bmatrix} =\begin{bmatrix} c_{11}& c_{12} & \cdots & c_{1m}\\ c_{21}& c_{22} & \cdots &c_{2m} \\ \vdots & \vdots & & \vdots\\ c_{r1}& c_{r2} & \cdots & c_{rm} \end{bmatrix} \begin{bmatrix} \boldsymbol{X}_1\\ \boldsymbol{X}_2\\ \vdots\\ \boldsymbol{X}_m \end{bmatrix} \]

其中 \(\boldsymbol{X}_i\)\(\boldsymbol{Z}_i\) 都表示为长度为 \(n\) 的观察值向量; \([ c_{i1}, c_{i2} , \cdots , c_{im}]\) 为第 \(i\) 个特征向量 \(\boldsymbol{\alpha}_i\)

步骤

设有 \(m\) 个指标,\(n\) 组观测值 \(\boldsymbol{X}=[\boldsymbol{X}_1,\boldsymbol{X}_2,\dots,\boldsymbol{X}_m]\) [4]

  1. 将各指标数据标准化(去除量纲)和中心化,即 \(x_{ik}'=\frac{x_{ik}-\mu_k}{\sigma_k}\) ,得到矩阵 \(\boldsymbol{X'}\)
  2. 计算相关系数矩阵 \(\boldsymbol{R}=\frac{1}{n-1}\boldsymbol{A'}^T\boldsymbol{A'}\)
  3. (特征值分解或奇异值分解)求出协方差矩阵的特征值 \(\lambda\) 及对应的特征向量 \(\boldsymbol{\alpha}\)
  4. 计算累计贡献率确定解释度 \(\alpha\),取前 \(r\) 个特征向量(标准化、正交化)按行排列组成矩阵 \(\boldsymbol{P}\)
  5. \((\boldsymbol{Z}_{ij})_{r 1}=\boldsymbol{P}_{rn}(\boldsymbol{X}^T)_{n 1}\)
  6. 解释主成分的含义。

注:若不能够给出主成分的较好解释,整个主成分分析也就失败了,可以采用因子分析。

计算贡献

  • 贡献率(特征值占比) \[\frac{\lambda_{i}}{\sum_{k=1}^{r} \lambda_{k}} \quad(i=1,2, \cdots, r)\]
  • 累计贡献率 \[\frac{\sum_{k=1}^{i} \lambda_{k}}{\sum_{i=1}^{r} \lambda_{k}}\quad(i=1,2, \cdots, r)\]
  • 对原始变量 \(\boldsymbol{x}_i\) 贡献值(相关系数平方和) \[\rho_i=\sum\limits_{j=1}^{r}r^2(\boldsymbol{z}_j,\boldsymbol{x}_i)\]

理解

主成分含义

\(Z_1,Z_2,\dots,Z_r\) 为主成分

\[\left\{\begin{array}{c} Z_{1}=c_{11} X_{1}+c_{12} X_{2}+\cdots+c_{1 m} X_{m} \\ Z_{2}=c_{21} X_{1}+c_{22} X_{2}+\cdots+c_{2 m} X_{m} \\ \vdots \\ Z_{r}=c_{r 1} X_{1}+c_{r 2} X_{2}+\cdots+c_{r m} X_{m} \end{array}\right.\]

对于每一个式子有 \(c_{i1}^2+c_{i2}^2+\dots+c_{im}^2=1\) (单位向量)。

\([c_{11},c_{12},\dots,c_{1m}]\) 使得 \(Var(Z_1)\) 的值最大(信息量最大);\([c_{21},c_{22},\dots,c_{2m}]\) 垂直于 \([c_{11},c_{12},\dots,c_{1m}]\) 在该条件下使得 \(Var(Z_2)\) 的值最大;\([c_{31},c_{32},\dots,c_{3m}]\) 垂直于 \(\boldsymbol{c_{1·}}\)\(\boldsymbol{c_{2·}}\) ……可推得到全部主成分,每个主成分是满足与所有特征向量正交情况下的信息量最大的单位向量。

直观解释(几何)

一般情况, \(m\) 个变量组成 \(m\) 维空间, \(n\) 个样品点就是 \(m\) 维空间的 \(n\) 个点。对于 \(m\) 维正态随机向量来说,找主成分的问题就是找 \(m\) 维空间中椭球的主轴问题[6]

初始数据集合中的样本由(正交)坐标系中的点来表示,每一个轴代表一个变量。对原坐标系中的数据进行主成分分析等价于对坐标系进行旋转变换,将数据投影到新坐标系的坐标轴上,此时每一个轴代表一个主成分。将新坐标系中的点在每个主成分轴上投影,得到对应的投影点。投影点的平方和则称为该主成分的方差,方差最大的轴称为第一主成分,依次类推第二主成分的选取,且保证与已选坐标轴正交[5]

矩阵变换的理解

对于矩阵变换有两个理解,第一个是来自3Blue1Brown的解释。

理解一:基变换

\[\begin{bmatrix} i_1 & j_1 & k_1\\ i_2 & j_2 & k_2\\ i_3 & j_3 & k_3 \end{bmatrix} \begin{bmatrix} x\\ y\\ z \end{bmatrix}= x\begin{bmatrix} i_1\\ i_2\\ i_3 \end{bmatrix}+ y\begin{bmatrix} j_1\\ j_2\\ j_3 \end{bmatrix}+ z\begin{bmatrix} k_1\\ k_2\\ k_3 \end{bmatrix}\]

\(\small [i_1,i_2,i_3]',[j_1,j_2,j_3]',[k_1,k_2,k_3]'\) 就是新的基,变换 \(\small \boldsymbol{AX}\) 的结果就是将点 \(\boldsymbol{X}\) 经过坐标基的旋转伸缩变换后,点在原坐标中的表示形式。

理解二:新坐标轴投影

\[\begin{bmatrix} i_1 & j_1 & k_1\\ i_2 & j_2 & k_2\\ i_3 & j_3 & k_3 \end{bmatrix} \begin{bmatrix} x\\ y\\ z \end{bmatrix}= \begin{bmatrix} \begin{bmatrix} i_1 &j_1&k_1\end{bmatrix}\boldsymbol{X}\\ \begin{bmatrix} i_2 &j_2&k_2\end{bmatrix}\boldsymbol{X}\\ \begin{bmatrix} i_3 &j_3&k_3\end{bmatrix}\boldsymbol{X}\\ \end{bmatrix},\boldsymbol{X}=\begin{bmatrix} x\\y\\z\end{bmatrix}.\]

可以理解为点 \(\boldsymbol{X}\) 在各个方向向量上的投影(在乘以长度)的结果。\([i,j,k]\) 就是变换后坐标系的原坐标轴,逆变换后在原空间的表示结果。

协方差矩阵与特征值理解

理解一:旋转

通过线性代数知识有,对于任意一对称矩阵 \(\boldsymbol{\Sigma}\) 存在一个特征值分解(eigenvalue decomposition, EVD): \[\boldsymbol{\Sigma}=\boldsymbol{U}\boldsymbol{\Lambda} \boldsymbol{U}^T\] 其中,\(\boldsymbol{U}\) 的每一列为标准相互正交的特征向量,\(\boldsymbol{\lambda}\) 对角线上的元素是从大到小排列的特征值,非对角线上的元素均为 \(0\) 。可以看出 \(\boldsymbol{\Lambda}\)\(\boldsymbol{\Sigma}\) 是同一个向量在不同坐标系中的表示。

也可以写作 \[\boldsymbol{\Sigma}=\left(\boldsymbol{U}\boldsymbol{\Lambda}^{1/2}\right)\left(\boldsymbol{U}\boldsymbol{\Lambda}^{1/2}\right)^T=\boldsymbol{A}\boldsymbol{A}^T\] 因子分析中用的就是上式。

可以理解到,协方差矩阵的特征向量控制旋转(rotation),特征值控制尺度(scale),特征值的大小代表了信息量(原始特征)多少[2]

理解二:投影

记协方差矩阵与中心化后的样本矩阵有以下关系[8]

\[\boldsymbol{\Sigma}=\boldsymbol{A}^T\boldsymbol{A}\]

其特征向量与特征特征值满足

\[\boldsymbol{A}^T\boldsymbol{A}\boldsymbol{\beta}=\lambda\boldsymbol{\beta}\]

左右同时左乘 \(\small\boldsymbol{\beta}^T\) 得到

\[\boldsymbol{\beta}^T\boldsymbol{A}^T\boldsymbol{A}\boldsymbol{\beta}=\boldsymbol{\beta}^T\lambda\boldsymbol{\beta}\]

\(\small \boldsymbol{\beta}\) 为单位向量,化简如下:

\[\left(\boldsymbol{A}\boldsymbol{\beta}\right)^T\left(\boldsymbol{A}\boldsymbol{\beta}\right)=\lambda\]

\(\small \boldsymbol{A}\) 的每行是个样本点在这里 \(\small \boldsymbol{a_i}·\boldsymbol{\beta}\)\(\small \boldsymbol{a_i}\)\(\boldsymbol{\beta}\) 方向上的投影,故 \(\small\boldsymbol{A}\boldsymbol{\beta}\) 可理解为样本空间中的样本点投影到轴 \(\small\boldsymbol{\beta}\) 上的结果, \(\small \left(\boldsymbol{A}\boldsymbol{\beta}\right)^T\left(\boldsymbol{A}\boldsymbol{\beta}\right)\) 则是投影平方和。故 \(\lambda\) 最大,表示投影后方差最大即信息量最大。

主成分分析的滥用

参考[7],国内以 \(\small \lambda_i/\sum\limits_{i=1}^r\lambda_i\) 作为权重对主成分加权得到的结果作为评价的综合评价的方法是对主成分分析思想的误用(如高惠璇老师的书中内容)。

主成分分析得到的主成分 \(\small \boldsymbol{Z}_1,\boldsymbol{Z}_2,\dotsb,\boldsymbol{Z}_r\) 仅使得其表示的信息量趋大,其不满足正负向性,不具有作为综合评价的条件;其次,主成分的线性组合会瓦解主成分分析在信息上的优势;主成分意义模糊,其线性组合一般没有意义。

参考

  1. 司守奎 孙兆亮. 数学建模算法与运用[M]. 第2版. 第231页. ↩︎
  2. https://zhuanlan.zhihu.com/p/37609917 ↩︎
  3. https://baike.baidu.com/item/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90/829840 ↩︎
  4. https://zhuanlan.zhihu.com/p/342659017 ↩︎
  5. https://zhuanlan.zhihu.com/p/339038035 ↩︎
  6. 高惠璇. 应用多元统计分析[M]. 第2版. 第310页. ↩︎
  7. 王学明. 应用多元统计分析[M]. ↩︎
  8. https://zhuanlan.zhihu.com/p/435001757 ↩︎