主成分分析-PCA
主成分分析-PCA
主成分分析(PCA)是一种降维算法,通过将原始变量进行线性组合,生成互不相关的主成分,从而保留数据的主要信息,以此来去噪,提升数据处理速度。PCA 常用于数据简化、聚类分析及解决回归中多重共线性问题,但在解释主成分时往往较为模糊,故不常用于评价模型。
一、简介
- 目标:
用较少的新变量替代原来较多的变量,尽可能保留原有信息。
- 应用: 数据降维、去除噪声、提升数据处理速度。
- 适用场景:指标高度相关易于解释、可解释需求低。
- 局限性:非线性关系处理的不好,贡献度若是不足可能会丢失细节。
二、思想
假设有 \(n\) 个样本和 \(p\) 个指标,构成一个 $ n p$ 的样本矩阵:
\[ X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{np} \\ \end{bmatrix} = (x_1, x_2, \cdots, x_p) \] 目标是寻找新的变量 $ z_1, z_2, , z_m $(其中 $ m p $),使其满足:
\[ \begin{cases} z_1 = l_{11}x_1 + l_{12}x_2 + \cdots + l_{1p}x_p \\ z_2 = l_{21}x_1 + l_{22}x_2 + \cdots + l_{2p}x_p \\ \vdots \\ z_m = l_{m1}x_1 + l_{m2}x_2 + \cdots + l_{mp}x_p \\ \end{cases} \] 系数 $ l_{ij} $ 的确定原则:
- 不同主成分之间彼此不相关。
- 第一主成分是所有线性组合中方差最大的。
- 第二主成分在与第一主成分不相关的条件下方差最大。
- 依此类推,直到选出 $ m $ 个主成分。
三、计算步骤
1. 数据标准化
计算均值和标准差: \[ \bar{x}_j = \frac{1}{n} \sum_{i=1}^{n} x_{ij},\quad S_j = \sqrt{\frac{\sum_{i=1}^{n}(x_{ij}-\bar{x}_j)^2}{n-1}} \]
标准化数据: \[ X_{ij} = \frac{x_{ij}-\bar{x}_j}{S_j} \]
标准化后的矩阵: \[ X = \begin{bmatrix} X_{11} & X_{12} & \cdots & X_{1p} \\ X_{21} & X_{22} & \cdots & X_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ X_{n1} & X_{n2} & \cdots & X_{np} \\ \end{bmatrix} \]
2. 计算协方差矩阵
- 定义: \[ R = \begin{bmatrix} r_{11} & r_{12} & \cdots & r_{1p} \\ r_{21} & r_{22} & \cdots & r_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ r_{p1} & r_{p2} & \cdots & r_{pp} \\ \end{bmatrix},\quad r_{ij} = \frac{1}{n-1}\sum_{k=1}^{n} X_{ki} X_{kj} \]
3. 求解特征值和特征向量
特征值: \[ \lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0 \] (且 $ R $ 为半正定矩阵)
对应的特征向量: \[ a_1 = \begin{bmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{p1} \end{bmatrix},\quad a_2 = \begin{bmatrix} a_{12} \\ a_{22} \\ \vdots \\ a_{p2} \end{bmatrix},\quad \dots,\quad a_p = \begin{bmatrix} a_{1p} \\ a_{2p} \\ \vdots \\ a_{pp} \end{bmatrix} \]
4. 计算贡献率和累计贡献率
贡献率: \[ \text{贡献率} = \frac{\lambda_i}{\sum_{k=1}^{p}\lambda_k} \]
累计贡献率: \[ \text{累计贡献率} = \frac{\sum_{k=1}^{i}\lambda_k}{\sum_{k=1}^{p}\lambda_k}\quad (i=1,2,\dots,p) \]
5. 写出主成分
一般选择累计贡献率超过 80% 的前 ( m ) 个主成分:
\[ F_i = a_{1i}X_1 + a_{2i}X_2 + \cdots + a_{pi}X_p,\quad (i=1,2,\dots,m) \]
6. 主成分的解释
根据各指标在主成分中的载荷大小判断该主成分代表的含义,载荷越大的指标对该主成分的影响越大。
四、扩展
- 聚类分析: 可通过降维简化自变量,便于图形展示。
- 回归分析: 可用于缓解多重共线性问题。
- 因子分析: PCA 实际上是因子分析的一种特例,但因子分析在解释方面更具优势,建议多用因子分析。
参考资料
清风数学建模学习笔记——主成分分析(PCA)原理详解及案例分析_x10为生均教育经费对以上指标数据做主成分分析,并提取主成分-CSDN博客