主成分分析法
方法概述
主成分分析(Principal Component Analysis, PCA)是一种常用的多元统计分析方法,通过正交变换将多个可能存在相关性的指标转换为少数几个线性不相关的综合指标(即主成分)。在客观赋权中,PCA可以通过主成分的方差贡献率和因子载荷系数来推导各原始指标的权重,从而实现对多指标的综合评价。
PCA的核心思想是:
- 对原始数据进行标准化,消除量纲影响。
- 计算相关系数矩阵,并求解特征值和特征向量。
- 根据特征值或累计方差贡献率确定主成分个数。
- 通过因子载荷矩阵计算各指标在公共因子上的信息量,进而得到权重。
- 计算综合得分,实现样本排序。
该方法适用于指标数量较多且存在相关性的评价问题,能够有效降维并揭示指标间的内在结构。
计算步骤
1. 构建原始数据矩阵
设有 \(n\) 个评价对象,\(m\) 个评价指标,原始数据矩阵为:
\[ X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nm} \end{bmatrix} \]
2. 数据正向化(可选)
若指标中包含非极大型指标(如极小型、中间型、区间型),需先将其转化为极大型。常用极差法:
(1)极小型指标
\[ x_{ij}' = \frac{\max(x_j) - x_{ij}}{\max(x_j) - \min(x_j)} \]
(2)中间型指标(设最优值为 \(a\))
\[ x_{ij}' = 1 - \frac{|x_{ij} - a|}{\max|x_j - a|} \]
(3)区间型指标(设最佳区间为 \([a,b]\))
\[ x_{ij}' = \begin{cases} 1 - \frac{a - x_{ij}}{\max(a - \min(x_j), \max(x_j) - b)}, & x_{ij} < a \\ 1, & a \leq x_{ij} \leq b \\ 1 - \frac{x_{ij} - b}{\max(a - \min(x_j), \max(x_j) - b)}, & x_{ij} > b \end{cases} \]
3. 数据标准化
为消除量纲影响,采用Z-score标准化:
\[ z_{ij} = \frac{x_{ij} - \bar{x}_j}{s_j} \]
其中 \(\bar{x}_j\) 为第 \(j\) 个指标的均值,\(s_j\) 为标准差。
4. 计算相关系数矩阵
\[ R = (r_{ij})_{m \times m}, \quad r_{ij} = \frac{\sum_{k=1}^{n} z_{ki} z_{kj}}{n-1} \]
5. 适用性检验
- Bartlett球形度检验:检验相关系数矩阵是否为单位矩阵。若检验统计量较大且对应 \(p\) 值小于显著性水平,则适合做PCA。
- KMO检验:比较变量间简单相关系数和偏相关系数的大小,取值在0~1之间,KMO值越接近1,越适合做PCA(通常要求 >0.5)。
6. 求解特征值和特征向量
解特征方程 \(|R - \lambda I| = 0\),得到特征值 \(\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_m \geq 0\) 及其对应的特征向量 \(u_1, u_2, \ldots, u_m\)。
第 \(k\) 个主成分的方差贡献率为:
\[ v_k = \frac{\lambda_k}{\sum_{j=1}^{m} \lambda_j} \]
累计方差贡献率为:
\[ V_k = \sum_{j=1}^{k} v_j \]
7. 确定主成分个数
常用方法有:
- 特征值大于1:保留特征值大于1的主成分。
- 累计方差贡献率:保留累计贡献率达到某一阈值(如85%)的前 \(p\) 个主成分。
- 碎石图:根据特征值变化曲线拐点确定。
8. 计算因子载荷矩阵
载荷矩阵 \(A = (a_{ij})_{m \times p}\) 中的元素表示第 \(i\) 个变量在第 \(j\) 个主成分上的载荷,反映了变量与主成分的相关程度:
\[ a_{ij} = u_{ij} \sqrt{\lambda_j} \]
9. 计算共同度
共同度 \(h_i^2\) 表示第 \(i\) 个变量被提取的 \(p\) 个主成分解释的方差比例:
\[ h_i^2 = \sum_{j=1}^{p} a_{ij}^2 \]
共同度越高,说明变量信息被保留得越好。
10. 计算因子得分系数
因子得分系数矩阵 \(B = (b_{ij})_{m \times p}\) 由特征向量组成:
\[ b_{ij} = u_{ij} \]
主成分得分为:
\[ F_j = Z B_j \]
11. 计算综合得分系数
以各主成分的方差贡献率为权重,计算每个变量的综合得分系数:
\[ c_i = \sum_{j=1}^{p} b_{ij} \cdot \frac{\lambda_j}{\sum_{k=1}^{p} \lambda_k} \]
12. 计算权重
将综合得分系数的绝对值归一化即得各指标权重:
\[ w_i = \frac{|c_i|}{\sum_{j=1}^{m} |c_j|} \]
13. 计算综合得分
样本 \(k\) 的综合得分由主成分得分的加权和得到:
\[ S_k = \sum_{j=1}^{p} F_{kj} \cdot \frac{\lambda_j}{\sum_{k=1}^{p} \lambda_k} \]
案例分析
案例背景:某企业需对四个供应商(A、B、C、D)进行评价,选取三个指标:产品质量(极大型)、价格(极小型)、交货准时率(极大型)。原始数据如下:
| 供应商 | 产品质量 | 价格 | 交货准时率 |
|---|---|---|---|
| A | 85 | 200 | 0.95 |
| B | 90 | 180 | 0.90 |
| C | 75 | 210 | 0.85 |
| D | 80 | 190 | 0.92 |
计算过程
1. 正向化(将价格转化为极大型)
价格指标为极小型,采用极差法正向化:
- \(\max=210,\min=180\)
- A: \((210-200)/(210-180)=10/30=0.3333\)
- B: \((210-180)/30=1.0000\)
- C: \((210-210)/30=0.0000\)
- D: \((210-190)/30=0.6667\)
正向化矩阵 \(X'\):
| 供应商 | 产品质量 | 价格 | 交货准时率 |
|---|---|---|---|
| A | 85 | 0.3333 | 0.95 |
| B | 90 | 1.0000 | 0.90 |
| C | 75 | 0.0000 | 0.85 |
| D | 80 | 0.6667 | 0.92 |
2. 标准化
计算各列均值和标准差,得到标准化矩阵 \(Z\)(略)。
3. 相关系数矩阵
计算得: \[ R = \begin{bmatrix} 1.000 & 0.800 & 0.553 \\ 0.800 & 1.000 & 0.369 \\ 0.553 & 0.369 & 1.000 \end{bmatrix} \]
4. 适用性检验
- Bartlett球形度检验:卡方值 ≈ 3.24,p值 ≈ 0.86(不显著),表明变量间相关性较弱,PCA效果可能不理想,此处仅为演示。
- KMO = 0.62,勉强适合。
5. 特征值和方差贡献
| 主成分 | 特征值 | 方差贡献率% | 累计% |
|---|---|---|---|
| PC1 | 1.87 | 62.3 | 62.3 |
| PC2 | 0.78 | 26.0 | 88.3 |
| PC3 | 0.35 | 11.7 | 100 |
取特征值 >1 或累计 >85%,可保留前两个主成分。
6. 载荷矩阵(前两个主成分)
| 指标 | PC1 | PC2 |
|---|---|---|
| 产品质量 | 0.83 | -0.52 |
| 价格 | 0.87 | 0.36 |
| 交货准时率 | 0.75 | -0.64 |
7. 共同度
- 产品质量:\(0.83^2 + (-0.52)^2 = 0.69+0.27=0.96\)
- 价格:\(0.87^2+0.36^2=0.76+0.13=0.89\)
- 交货准时率:\(0.75^2+(-0.64)^2=0.56+0.41=0.97\)
8. 因子得分系数矩阵
| 指标 | PC1 | PC2 |
|---|---|---|
| 产品质量 | 0.61 | -0.66 |
| 价格 | 0.64 | 0.46 |
| 交货准时率 | 0.55 | -0.82 |
9. 综合得分系数(以方差贡献率为权重)
\[ c_1 = 0.61\times0.623 + (-0.66)\times0.260 = 0.38 - 0.17 = 0.21 \] \[ c_2 = 0.64\times0.623 + 0.46\times0.260 = 0.40 + 0.12 = 0.52 \] \[ c_3 = 0.55\times0.623 + (-0.82)\times0.260 = 0.34 - 0.21 = 0.13 \]
10. 权重
\[ w_1 = |0.21|/(0.21+0.52+0.13) = 0.21/0.86 = 0.244 \] \[ w_2 = 0.52/0.86 = 0.605,\quad w_3 = 0.13/0.86 = 0.151 \]
11. 综合得分
计算标准化后的主成分得分,再加权求和,得到各供应商综合得分(略)。
结论:价格(正向化后)权重最大,交货准时率权重最小。
常见问题
Q1: PCA在权重计算中的原理是什么?
A: PCA通过提取主成分,利用主成分的方差贡献率和因子得分系数,计算每个原始指标对综合得分的贡献程度,从而得到权重。权重反映了指标在整体评价中的重要性,且不受主观因素影响。
Q2: 为什么要进行适用性检验?
A: 适用性检验(Bartlett和KMO)用于判断原始变量是否适合进行PCA。如果变量间独立性较强,则PCA效果不佳;如果变量间存在较强相关性,PCA能有效降维。
Q3: 如何选择主成分个数?
A: 通常依据特征值大于1、累计方差贡献率(如85%)或碎石图拐点。平台提供了三种选择方式,用户可根据需要设置。
Q4: 正向化处理是否必需?
A: PCA本身不要求指标方向一致,但若要利用载荷或得分系数进行综合评价,需保证所有指标方向同向(即均为极大型),否则权重符号可能混乱。平台提供可选的正向化步骤。
Q5: 支持多工作表吗?
A: 支持。平台允许上传包含多个工作表的Excel文件,每个工作表对应不同的数据集,系统会分别分析并输出结果。
平台功能
主成分分析法分析平台提供以下核心功能:
数据输入
- 支持CSV、Excel、TXT多种格式。
- Excel文件支持多工作表,自动识别工作表名称。
- 数据格式要求:第一行为指标名称,第一列为样本名称,数据区域为数值型。
参数设置
- 是否需要正向化:勾选后可为每个指标指定类型(极大型、极小型、中间型、区间型),并设置相应参数。
- 主成分数量确定方式:特征值大于1、累计方差解释率阈值、手动输入。
- 小数位数:控制输出精度(默认6位)。
- 显示中间结果:可选是否展示标准化矩阵、相关系数矩阵等中间步骤。
结果展示
- 适用性检验:Bartlett球形度检验和KMO检验结果。
- 数据处理:原始矩阵、正向化矩阵(如需要)、标准化矩阵、相关系数矩阵。
- 方差解释:特征值、方差贡献率、累计贡献率表及碎石图。
- 载荷系数:主成分载荷矩阵及共同度。
- 因子得分系数:各主成分的得分系数及综合得分系数。
- 权重结果:各指标权重及排名。
- 综合得分:各样本综合得分及排名。
- 可视化图表:碎石图、权重分布图、样本得分排名图。
AI智能分析
- 基于DeepSeek API自动解读结果,提供决策建议(每日限3次)。
多格式导出
- 支持Excel和HTML报告下载。
使用建议
准备阶段:明确评价对象和指标体系,确保数据完整。
数据预处理:若指标类型多样,勾选“正向化”并正确设置指标类型,保证所有指标方向一致。
参数设置:根据数据情况选择合适的主成分个数确定方式,一般可先尝试“特征值大于1”。
结果解读:
- 检查适用性检验,若KMO <0.5 或 Bartlett检验 p>0.05,则PCA效果可能不佳。
- 观察累计方差贡献率,判断降维效果。
- 分析载荷矩阵,理解主成分含义。
- 权重较大的指标对综合评价影响较大。
迭代优化:若结果不合理,可尝试不同的主成分个数或标准化方法。
平台界面

平台界面包含:数据上传区、参数设置区、多工作表预览、分析结果展示和AI分析模块
参考文献:
- 张文彤. SPSS统计分析高级教程[M]. 高等教育出版社,2013.
- Jolliffe, I.T. (2002). Principal Component Analysis. Springer.
- 基于主成分分析的权重确定方法研究[J]. 统计与决策,2010.