PCA主成分分析
方法概述
主成分分析(Principal Component Analysis,PCA)是一种经典的线性无监督降维方法,通过正交变换将一组可能存在相关性的原始变量转换为少数几个彼此不相关的综合变量(主成分),在保留原始数据绝大部分方差信息的前提下降低维度。本工具用于对多个数值变量进行主成分分析,输出方差贡献率表、碎石图、双标图、载荷矩阵与样本得分,可直观把握变量的组合结构,并为后续建模、可视化与综合指标构建提供基础。工具内置 AI 智能分析,可辅助解读主成分含义并给出参考建议。
计算步骤
1. 数据加载与预处理
- 文件读取:支持 CSV 和 Excel 格式,自动识别常用缺失值占位符并转换为
NA。 - 样本清洗:自动剔除含缺失值的样本行,保证计算稳定;至少需 2 个数值变量和 2 行有效样本。
- 变量选择:用户从数值型变量中勾选参与分析的变量(至少 2 个),可选一个标识列(如用户 ID)与得分合并输出。
2. 数据标准化
根据计算方式选择:
- 标准化(Z-score)(默认):对每个变量减去均值后除以标准差: \[z_i = \frac{x_i - \bar{x}}{\sigma}\] 适用于各变量量纲差异较大的情况。
- 不标准化(协方差阵):保留变量的原始尺度信息,基于协方差矩阵计算,适用于各变量量纲一致的情况。
3. 主成分提取
对(标准化后的)协方差矩阵进行特征分解,得到特征值 \(\lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_p\) 及对应的单位特征向量,即载荷向量。第 \(k\) 个主成分 \(PC_k\) 是原始变量 \(x_1,\dots,x_p\) 的线性组合,其方差为 \(\lambda_k\),且各主成分两两正交:
\[PC_k = w_{k1}x_1 + w_{k2}x_2 + \cdots + w_{kp}x_p\]
各主成分的方差贡献率与累积贡献率分别为:
\[\text{Proportion}_k = \frac{\lambda_k}{\sum_{j=1}^{p}\lambda_j}, \qquad \text{Cumulative}_k = \sum_{j=1}^{k}\frac{\lambda_j}{\sum_{t=1}^{p}\lambda_t}\]
4. 结果输出与可视化
- 方差贡献率表:给出各主成分的标准差、方差、方差贡献率与累积贡献率。
- 碎石图:柱状图展示各主成分贡献率,折线展示累积贡献率,可辅助判断保留主成分个数。
- 双标图(PC1 vs PC2):样本点投影与变量载荷向量同图展示,直观反映样本分布和变量关系。
- 载荷矩阵:各变量在各主成分上的载荷系数,用于解释主成分含义。
- 主成分得分:每个样本在各主成分上的得分,可合并标识列输出。
5. AI 智能分析
基于分析摘要(参与变量、有效样本数、标准化方式、前几个主成分的贡献率等),调用大语言模型解读主成分含义、给出保留主成分建议(每日限 3 次,需配置 API 密钥)。
6. 结果导出
支持下载主成分得分(CSV)、载荷矩阵(CSV)、方差贡献率(CSV)及完整的 HTML 分析报告。
案例分析
案例背景:某零售平台记录了 6 名消费者的 3 项消费特征(月消费额、消费频次、客单价),量纲差异较大,现希望通过主成分分析将 3 个变量压缩为 1~2 个综合指标。
输入数据(示例):
| 用户ID | 月消费额(元) | 消费频次(次/月) | 客单价(元) |
|---|---|---|---|
| U01 | 5280 | 12 | 440 |
| U02 | 2100 | 5 | 420 |
| U03 | 8450 | 18 | 470 |
| … | … | … | … |
处理过程:
- 数据加载:上传 CSV,勾选 3 个数值变量参与分析,标识列选择”用户ID”。
- 参数设置:选择标准化(Z-score),保留主成分个数留空(保留全部)。
- 方差贡献率(示例结果):
| 主成分 | 方差 | 贡献率 | 累积贡献率 |
|---|---|---|---|
| PC1 | 1.82 | 60.7% | 60.7% |
| PC2 | 0.95 | 31.7% | 92.4% |
| PC3 | 0.23 | 7.6% | 100.0% |
- 解读:碎石图显示前两个主成分累积贡献率约 92%,载荷矩阵显示 PC1 与”月消费额、消费频次”关联较强。示例数据下,可考虑参考保留前 2 个主成分。
- 得分合并:生成每个用户的 PC1、PC2 得分并与”用户ID”合并输出。
结论:在本示例数据上,前 2 个主成分可替代 3 个原始变量用于后续分析。该建议仅针对示例数据,正式选择应结合实际业务与更多样本复核。
常见问题
Q1: 应该保留多少个主成分?
A: 工具的碎石图和累积贡献率可供参考(如累积贡献率达到 80%~90% 的主成分个数),但它给出的是参考值而非标准答案,最终应结合业务可解释性确定。
Q2: 标准化和不标准化有什么区别?
A: 标准化后各变量权重相当,适合量纲差异大的数据(默认方式);不标准化保留原始尺度,方差大的变量会主导结果,适合各变量尺度一致的场景。
Q3: 含缺失值的样本会被怎样处理?
A: 工具自动剔除含缺失值的样本行后再计算,因此结果基于无缺失样本,样本量会相应减少,需要注意原始数据缺失比例不宜过高。
Q4: 主成分为什么是”综合变量”?
A: 每个主成分由原始变量线性组合而成,彼此正交,能在保留较多方差的同时降低维度,但主成分本身可能不如原始变量直观,需要结合载荷矩阵解释。
Q5: 双标图中的箭头表示什么?
A: 箭头方向与长度表示该变量在两个主成分上的载荷大小,箭头同向且接近说明变量相关性强,可用于观察变量之间的结构关系。
平台功能
- 数据输入:支持 CSV、Excel 格式,自动识别缺失值、清理空行/空列并智能转换列类型。
- 变量选择:勾选参与分析的数值变量(至少 2 个),可选标识列用于合并得分。
- 参数设置:标准化/协方差阵两种计算方式,保留主成分个数(留空或超限时保留全部)。
- 结果展示:
- 方差贡献率表(标准差、方差、贡献率、累积贡献率)。
- 碎石图(贡献率柱状 + 累积贡献率折线)。
- 双标图(PC1 vs PC2 样本与载荷同图)。
- 载荷矩阵与主成分得分(前 20 行预览)。
- AI 智能分析:解读主成分含义并给出保留个数建议(每日限 3 次,需配置 API 密钥)。
- 报告下载:主成分得分、载荷矩阵、方差贡献率(CSV)及完整的 HTML 分析报告。
使用建议
- 变量量纲差异大时先标准化:默认的 Z-score 标准化对绝大多数场景适用,可避免方差大的变量主导结果。
- 参考碎石图选择个数:观察碎石图”拐点”位置及累积贡献率,但该判断为参考值,需结合业务解释性综合决定。
- 结合载荷矩阵解释含义:通过载荷绝对值较大的变量理解主成分的业务含义,主成分命名将有助于后续分析。
- 注意缺失处理:分析前控制缺失比例,若缺失样本较多,建议先完成缺失值处理再进入 PCA。
- 用于综合指标与后续建模:主成分得分可作为聚类、回归等后续分析的输入,也与因子式综合评价方法相互印证。
- AI 分析辅助:配置 API 密钥后,可让 AI 协助解读主成分物理含义与保留个数。
平台界面

平台界面包含:数据上传区、变量与标识列选择区、计算方式与主成分个数参数区、方差贡献率表、碎石图、双标图、载荷矩阵、主成分得分及 AI 分析模块
参考文献
- Hotelling, H. (1933). Analysis of a Complex of Statistical Variables into Principal Components. Journal of Educational Psychology, 24(6), 417-441.
- Jolliffe, I. T. (2002). Principal Component Analysis (2nd ed.). Springer.
- Abdi, H., & Williams, L. J. (2010). Principal Component Analysis. Wiley Interdisciplinary Reviews: Computational Statistics, 2(4), 433-459.