主成分分析

2026/5/29 · 离散数学

重要定义

1 内积与范数

1.1 内积

x,y=xTy=i=1nxiyi\langle x, y \rangle = x^T y = \sum_{i=1}^{n} x_i y_i

1.2 范数

  • L0L_0范数:向量中非零元素的个数
  • L1L_1范数(和范数):x1=i=1nxi\|x\|_1=\sum_{i=1}^{n}|x_i|
  • L2L_2范数(欧氏范数):x2=i=1nxi2\|x\|_2=\sqrt{\sum_{i=1}^{n}|x_i|^2}
  • LL_\infty范数(无穷范数):x=maxixi\|x\|_\infty=\max_i|x_i|

2 协方差和协方差矩阵

对于样本 X\mathbf{X} 和样本 Y\mathbf{Y}

2.1 样本均值

xˉ=1ni=1nxi\bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i

2.2 样本方差

在统计学严格定义无偏估计时,分母应该是 n−1;但在PCA (主成分分析) 应用背景下,统一采用了 n 作为定义更加方便且不会影响正确性

S2=1ni=1n(xixˉ)2S^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \bar{x})^2

2.3 样本协方差

Cov(X,Y)=1ni=1n(xixˉ)(yiyˉ)\text{Cov}(X, Y) = \frac{1}{n} \sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})

2.4 协方差矩阵

对于样本 x1,x2,,xp\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_p,若

sij=Cov(xi,xj)=1nk=1n(xkiμi)(xkjμj)s_{ij} = \text{Cov}(\mathbf{x}_i, \mathbf{x}_j) = \frac{1}{n} \sum_{k=1}^{n} (x_{ki} - \mu_i)(x_{kj} - \mu_j)

S=(sij)p×p=[s11s12s1ps21s22s2psp1sp2spp]\mathbf{S} = (s_{ij})_{p \times p} = \begin{bmatrix} s_{11} & s_{12} & \cdots & s_{1p} \\ s_{21} & s_{22} & \cdots & s_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ s_{p1} & s_{p2} & \cdots & s_{pp} \end{bmatrix}

称为样本 x1,x2,,xp\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_p协方差矩阵

根据上述定义,有:

S=1n(x1μ11,x2μ21,,xpμp1)T(x1μ11,x2μ21,,xpμp1)\mathbf{S} = \frac{1}{n} (\mathbf{x}_1 - \mu_1 \mathbf{1}, \mathbf{x}_2 - \mu_2 \mathbf{1}, \dots, \mathbf{x}_p - \mu_p \mathbf{1})^T (\mathbf{x}_1 - \mu_1 \mathbf{1}, \mathbf{x}_2 - \mu_2 \mathbf{1}, \dots, \mathbf{x}_p - \mu_p \mathbf{1})

在此处 xi\mathbf{x}_i 代表第 i 个属性 (指标) 的观测数据向量 (通常为 n 维列向量,对应 n 个样本);μi\mu_i是该属性所有观测值的平均值

在此记

X0=(x1μ11,x2μ21,,xpμp1)\mathbf{X}_0 = (\mathbf{x}_1 - \mu_1 \mathbf{1}, \mathbf{x}_2 - \mu_2 \mathbf{1}, \dots, \mathbf{x}_p - \mu_p \mathbf{1})

通过xiμi1\mathbf{x}_i - \mu_i\mathbf{1},将原始数据的均值平移到原点,使得处理后的数据每一列的均值都为 0,通过对原始数据进行零均值化处理,构造出中心化矩阵X0\mathbf{X}_0,样本的协方差矩阵可以直接表示为X0\mathbf{X}_0的转置与自身的乘积

从而有

S=1nX0TX0\mathbf{S} = \frac{1}{n} \mathbf{X}_0^T \mathbf{X}_0

3 相关系数和相关矩阵

对于向量 x\mathbf{x} 和向量 y\mathbf{y}

3.1 标准化

0均值化且归一化

x=xxˉ1xxˉ1,xxˉ11/2=xxˉ1xxˉ1\mathbf{x}' = \frac{\mathbf{x} - \bar{x}\mathbf{1}}{\langle \mathbf{x} - \bar{x}\mathbf{1}, \mathbf{x} - \bar{x}\mathbf{1} \rangle^{1/2}} = \frac{\mathbf{x} - \bar{x}\mathbf{1}}{\|\mathbf{x} - \bar{x}\mathbf{1}\|}

3.2 向量夹角

cosθ=x,yx,xy,y\cos \theta = \frac{\langle \mathbf{x}, \mathbf{y} \rangle}{\sqrt{\langle \mathbf{x}, \mathbf{x} \rangle \langle \mathbf{y}, \mathbf{y} \rangle}}

3.3 相关系数

0均值化后的向量夹角,也可以说是标准化后的向量夹角(归一化不影响夹角大小)

r(x,y)=x,yr(\mathbf{x}, \mathbf{y}) = \langle \mathbf{x}', \mathbf{y}' \rangle

进一步展开:

r(x,y)=xxˉ1xxˉ1,yyˉ1yyˉ1=xxˉ1,yyˉ1xxˉ1yyˉ1=cosγr(\mathbf{x}, \mathbf{y}) = \left\langle \frac{\mathbf{x} - \bar{x}\mathbf{1}}{\|\mathbf{x} - \bar{x}\mathbf{1}\|}, \frac{\mathbf{y} - \bar{y}\mathbf{1}}{\|\mathbf{y} - \bar{y}\mathbf{1}\|} \right\rangle = \frac{\langle \mathbf{x} - \bar{x}\mathbf{1}, \mathbf{y} - \bar{y}\mathbf{1} \rangle}{\|\mathbf{x} - \bar{x}\mathbf{1}\| \|\mathbf{y} - \bar{y}\mathbf{1}\|} = \cos \gamma

γ\gamma 为向量 xxˉ1\mathbf{x} - \bar{x}\mathbf{1}yyˉ1\mathbf{y} - \bar{y}\mathbf{1} 之间的夹角。

3.4 相关矩阵

设有向量 x1,x2,,xn\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_n,若 r(xi,xj)=rijr(\mathbf{x}_i, \mathbf{x}_j) = r_{ij},则

R=(rij)n×n=[r11r12r1nr21r22r2nrn1rn2rnn]\mathbf{R} = (r_{ij})_{n \times n} = \begin{bmatrix} r_{11} & r_{12} & \cdots & r_{1n} \\r_{21} & r_{22} & \cdots & r_{2n} \\\vdots & \vdots & \ddots & \vdots \\r_{n1} & r_{n2} & \cdots & r_{nn} \end{bmatrix}

称为向量 x1,x2,,xn\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_n相关矩阵


主成分分析原理

1 最大方差理论

在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,信噪比越大越好。 数据降维的要求:将p维样本点转换为k维后(1k<p)(1 \leq k < p),每一维上的样本方差都应尽可能大。

2 主成分分析过程

Input:假定有 pp 个统计相关的属性组合 x1,x2,,xp\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_p,由于它们之间的相关性,在这 pp 个属性中存在信息冗余。

Output:希望通过正交变换,获得 kk 个零均值的新特征集合 (k<p)(k < p)x~1,x~2,,x~k\tilde{\mathbf{x}}_1, \tilde{\mathbf{x}}_2, \dots, \tilde{\mathbf{x}}_k,使这些新特征相互正交。这一过程属于特征提取

零均值:排除了数据绝对数值(均值)的干扰,使得夹角能够纯粹地反映变量间的线性相关程度。

正交:无冗余信息;坐标计算方便。

2.1 正交变换推导

这里设

x~i=αi1x1+αi2x2++αipxp+βi1=αi1(x1μ11)+αi2(x2μ21)++αip(xpμp1)+(αi1μ1+αi2μ2++αipμp+βi)1=X0αi+μ~i1\begin{aligned}\tilde{\mathbf{x}}_i &= \alpha_{i1}\mathbf{x}_1 + \alpha_{i2}\mathbf{x}_2 + \cdots + \alpha_{ip}\mathbf{x}_p + \beta_i\mathbf{1} \\&= \alpha_{i1}(\mathbf{x}_1 - \mu_1\mathbf{1}) + \alpha_{i2}(\mathbf{x}_2 - \mu_2\mathbf{1}) + \cdots + \alpha_{ip}(\mathbf{x}_p - \mu_p\mathbf{1}) \\&\quad + (\alpha_{i1}\mu_1 + \alpha_{i2}\mu_2 + \cdots + \alpha_{ip}\mu_p + \beta_i)\mathbf{1} \\&= \mathbf{X}_0 \boldsymbol{\alpha}_i + \tilde{\mu}_i\mathbf{1}\end{aligned}

由于需要构造零均值的特征向量 x~i\tilde{\mathbf{x}}_i,从而需要

μ~i=αi1μ1+αi2μ2++αipμp+βi=0\tilde{\mu}_i = \alpha_{i1}\mu_1 + \alpha_{i2}\mu_2 + \cdots + \alpha_{ip}\mu_p + \beta_i = 0

因此,

x~i=αi1(x1μ11)+αi2(x2μ21)++αip(xpμp1)=X0αi\begin{aligned}\tilde{\mathbf{x}}_i &= \alpha_{i1}(\mathbf{x}_1 - \mu_1\mathbf{1}) + \alpha_{i2}(\mathbf{x}_2 - \mu_2\mathbf{1}) + \cdots + \alpha_{ip}(\mathbf{x}_p - \mu_p\mathbf{1}) \\&= \mathbf{X}_0 \boldsymbol{\alpha}_i\end{aligned}

此时,

S2(x~i)=1nx~i,x~i=1nx~iTx~i=1nαiTX0TX0αi=αiTSαiS^2(\tilde{\mathbf{x}}_i) = \frac{1}{n}\langle \tilde{\mathbf{x}}_i, \tilde{\mathbf{x}}_i \rangle = \frac{1}{n}\tilde{\mathbf{x}}_i^T \tilde{\mathbf{x}}_i = \frac{1}{n}\boldsymbol{\alpha}_i^T \mathbf{X}_0^T \mathbf{X}_0 \boldsymbol{\alpha}_i = \boldsymbol{\alpha}_i^T \mathbf{S} \boldsymbol{\alpha}_i

由上述 x~i\tilde{\mathbf{x}}_i 的定义可以看出,αi\boldsymbol{\alpha}_i 的尺度变化不改变 x~i\tilde{\mathbf{x}}_i 之间的正交性,这里我们令 αi\boldsymbol{\alpha}_i 的长度为 11。于是问题转换为:

目标maxS2(x~i)\max \sum S^2(\tilde{\mathbf{x}}_i)

x~ix~j, αi=1, ij, i,j=1,2,,k\tilde{\mathbf{x}}_i \perp \tilde{\mathbf{x}}_j,\ \|\boldsymbol{\alpha}_i\| = 1,\ i \neq j,\ i,j = 1,2,\dots,k

S\mathbf{S} 是实对称矩阵,于是存在单位正交阵 Q\mathbf{Q},使得

S2(x~i)=αiTQΛQTαiS^2(\tilde{\mathbf{x}}_i) = \boldsymbol{\alpha}_i^T \mathbf{Q} \boldsymbol{\Lambda} \mathbf{Q}^T \boldsymbol{\alpha}_i

其中

Λ=[λ1000λ2000λp],Q=[ω1, ω2, , ωp]\boldsymbol{\Lambda} = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & \lambda_p \end{bmatrix},\quad \mathbf{Q} = [\boldsymbol{\omega}_1,\ \boldsymbol{\omega}_2,\ \dots,\ \boldsymbol{\omega}_p]

ωi\boldsymbol{\omega}_iS\mathbf{S} 的属于特征值 λi\lambda_i 的一个单位特征向量,ωiωj, ij\boldsymbol{\omega}_i \perp \boldsymbol{\omega}_j,\ i \neq j

αiTQ=ciT=(ci1,ci2,,cip)\boldsymbol{\alpha}_i^T \mathbf{Q} = \mathbf{c}_i^T = (c_{i1}, c_{i2}, \dots, c_{ip}),则有

S2(x~i)=λ1ci12+λ2ci22++λpcip2S^2(\tilde{\mathbf{x}}_i) = \lambda_1 c_{i1}^2 + \lambda_2 c_{i2}^2 + \cdots + \lambda_p c_{ip}^2

且有 ci=1\|\mathbf{c}_i\| = 1

假设 λ1λ2λp\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p,当 k=1k = 1 时,问题转换为

maxS2(x~1)=λ1c112+λ2c122++λpc1p2c112+c122++c1p2=1\begin{aligned}\max S^2(\tilde{\mathbf{x}}_1) &= \lambda_1 c_{11}^2 + \lambda_2 c_{12}^2 + \cdots + \lambda_p c_{1p}^2 \\&\quad c_{11}^2 + c_{12}^2 + \cdots + c_{1p}^2 = 1\end{aligned}

由于λ1\lambda_1最大,要加权后和最大显然λ1\lambda_1的权重应为1,即c112=1c_{11}^2 = 1

因此,

maxS2(x~1)=λ1c1=(c11,c12,,c1p)T=(1,0,,0)T\begin{aligned}\max S^2(\tilde{\mathbf{x}}_1) &= \lambda_1 \\\mathbf{c}_1 &= (c_{11}, c_{12}, \dots, c_{1p})^T = (1, 0, \dots, 0)^T\end{aligned}

此时有

α1=Qc1=[ω1, ω2, , ωp](1,0,,0)T=ω1\boldsymbol{\alpha}_1 = \mathbf{Q}\mathbf{c}_1 = [\boldsymbol{\omega}_1,\ \boldsymbol{\omega}_2,\ \dots,\ \boldsymbol{\omega}_p](1, 0, \dots, 0)^T = \boldsymbol{\omega}_1

说明第一主成分的方向就是协方差矩阵最大特征值所对应的特征向量方向,且在该方向上保留的方差大小恰好等于最大特征值λ1\lambda_1

同理得

maxi=1kS2(x~i)=λ1+λ2++λk\max \sum_{i=1}^k S^2(\tilde{x}_i) = \lambda_1 + \lambda_2 + \cdots + \lambda_k ​ 说明选择前kk个最大特征值对应的特征向量作为主成分,可以最大化投影后的总方差,此时x~i\tilde{x}_i对应的系数组合αi\alpha_i等于协方差矩阵的第ii个特征向量ωi\omega_i

2.2 累计贡献率

i=1kλii=1pλi\frac{\sum_{i=1}^k \lambda_i}{\sum_{i=1}^p \lambda_i}

代表选择前kk个特征向量所构成新数据占原数据信息的比值

2.3 求解步骤

在一般情况下,设有n个样品,每个样品观测p个指标,那么将原始数据排成如下矩阵:

[x11x21xp1x12x22xp2x1nx2nxpn]\begin{bmatrix}x_{11} & x_{21} & \cdots & x_{p1} \\x_{12} & x_{22} & \cdots & x_{p2} \\\vdots & \vdots & \ddots & \vdots \\x_{1n} & x_{2n} & \cdots & x_{pn}\end{bmatrix}

则主成分求解步骤如下:

  1. 求样本均值 xˉ=(xˉ1,xˉ2,,xˉp)\bar{x}=(\bar{x}_1,\bar{x}_2,\dots,\bar{x}_p) 和样本的协方差矩阵S;
  2. 求解特征方程 λIS=0|\lambda I - S| = 0,解得p个特征根 λ1,λ2,,λp\lambda_1, \lambda_2, \dots, \lambda_p
  3. 求每个特征值对应的单位正交特征向量 αi\alpha_ii=1,2,,pi = 1, 2, \dots, p),解得 αi=(α1i,α2i,,αpi)T\alpha_i = (\alpha_{1i}, \alpha_{2i}, \dots, \alpha_{pi})^T

其中αi\alpha_i指的是第ii个主成分的系数向量,αij\alpha_{ij}中的jj指的是改向量中的第几个分量(标量)

  1. 写成主成分的表达式

x~i=α1i(x1xˉ1)+α2i(x2xˉ2)++αpi(xpxˉp)\tilde{x}_i= \alpha_{1i}(x_1 - \bar{x}_1) + \alpha_{2i}(x_2 - \bar{x}_2) + \cdots + \alpha_{pi}(x_p - \bar{x}_p)


S型分析和R型分析

1 区别

为消除量纲影响,在计算之前先将原始数据标准化。而标准化变量的S=RS = R,所以用标准化变量进行主成分分析相当于从原变量的相关矩阵 RR 出发进行主成分分析。统计学上称这种分析法为 R型分析,由协方差矩阵出发的主成分分析称为 S型分析

本质区别是用来计算协方差矩阵的数据有没有经过归一化(都需要0均值化)

2 应用场合

S型分析和R 型分析的结果是不同的。在一般情况下,若各变量的量纲不同,通常采用R型分析(归一化可去除量纲影响)。