主成分分析-PCA
主成分分析-PCA
主成分分析(PCA)是一种降维算法,通过将原始变量进行线性组合,生成互不相关的主成分,从而保留数据的主要信息,以此来去噪,提升数据处理速度。PCA 常用于数据简化、聚类分析及解决回归中多重共线性问题,但在解释主成分时往往较为模糊,故不常用于评价模型。
一、简介
- 目标: 用较少的新变量替代原来较多的变量,尽可能保留原有信息。
- 应用: 数据降维、去除噪声、提升数据处理速度。
- 适用场景:指标高度相关易于解释、可解释需求低。
- 局限性:非线性关系处理的不好,贡献度若是不足可能会丢失细节。
二、思想
假设有 $n$ 个样本和 $p$ 个指标,构成一个 $ n \times 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, \dots, z_m $(其中 $ m \leq 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博客