主成分分析
1 主要思想和方法
- 主要就是通过提取主要因素对综合指标进行降维
如果\(x_{1}, x_{2}, \cdots, x_{p}\)表示\(p\)门课,\(c_{1}, c_{2}, \cdots, c_{p}\)表示各门课的权重,那么加权和为
求和是的权重,使得加权和能够表示总成绩,\(X_{1}, X_{2}, \cdots, X_{p}\)为课程的样本观测值的随机变量,找到一组\(c_{1}, c_{2}, \cdots, c_{p}\)使得
值最大,通常需要加上一些约束即
得到的即为\(p\)维空间的一个向量,为主成分方向,通常需要多个主成分,即找到两两正交的多个向量
设\(Z_{i}\)表示第\(i\)个主成分的方向,则主成分为
2 主成分个数的确定
- 主成分分析的结果受量纲的影响,需要先将数据进行标准化处理,然后使用协方差矩阵或相关系数矩阵进行分析
- 主成分分析的目的是降维,减少变量的个数,一般选取的主成分为5个到6个左右,只要他们能解释变异的\(70\%\sim 80\%\)(累计变异率)即可
3 特征值因子的选取
假设有\(p\)个指标变量\(x_{1}, x_{2}, \cdots, x_{p}\),\(n\)个评价对象,第\(i\)个评价对象的第\(j\)个指标的取值为\(a_{i j}\),在试验中的取值分别为\(a_{i 1}, a_{i 2}, \cdots, a_{i p}, i=1,2, \cdots, n\)
矩阵形式为:
矩阵\(A\)称为设计阵,权重即矩阵\(\boldsymbol{A}^{\mathrm{T}} \boldsymbol{A}\)的特征向量,将特征值从大到小排序后去除掉后\(15\%\),即剩下的累计贡献率超过\(85\%\)
数据标准化后
得到的数据标准化矩阵为\(\widetilde{\boldsymbol{A}}\),相关系数矩阵为
故只计算其特征值和特征向量即可,
单纯考虑累计贡献率有时不够,还需要考虑主成分对原始变量的贡献值,用相关系数的平方和表示,选取主成分\(z_{1}, z_{2}, \cdots, z_{r}\),它的累计贡献率为$$\rho_{i}=\sum_{j=1}^{r} r^{2}\left(z_{j}, x_{i}\right)$$
其中\(r\left(z_{j}, x_{i}\right)\)为\(z_{j}\)与\(x_{i}\)的相关系数
4 使用步骤
4.1 数据标准化处理
使用zscore函数直接对其求解即可,假设指标变量有\(m\)个,分别为\(x_{1}, x_{2}, \cdots, x_{m}\),\(n\)个评价对象,第\(i\)个评价对象的第\(j\)个指标的取值为\(a_{i j}\),将各指标转化为标准化指标
其中\(\mu_{j}=\frac{1}{n} \sum_{i=1}^{n} a_{i j}\)代表均值,\(s_{j}=\sqrt{\frac{1}{n-1} \sum_{i=1}^{n}\left(a_{i j}-\mu_{j}\right)^{2}, j}=1,2, \cdots, m\)代表标准差
为标准化指标变量
4.2 计算相关系数矩阵
相关系数矩阵\(R=\left(r_{i j}\right)_{m \times m}\),有
其中\(r_{i i}=1,r_{i j}=r_{j i},r_{i j}\)为第\(i\)个指标和第\(j\)个指标的相关系数
4.3 计算特征值和特征向量
计算相关系数矩阵\(R\)的特征值\(\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{m} \geqslant 0\)及对应的特征向量\(u_{1}, u_{2}, \cdots, u_{m}\),\(u_{j}=\left[u_{1 j}, u_{2 j}, \cdots, u_{m j}\right]^{\mathrm{T}}\)
由特征向量组成\(m\)个新的指标变量
其中\(y_{1}\)为第一主成分,......,\(y_{m}\)为第m主成分
4.4 选择主成分,计算综合评价值
计算特征值\(\lambda_{j}(j=1,2, \cdots, m)\)的信息贡献率和累计贡献率,称
为主成分\(y_{j}\)的信息贡献率,同时有
为主成分\(y_{1}、y_{2}、\dots、y_{p}\)的累计贡献率,当\(\alpha_{p} > 85\%\)时选前\(p\)个指标代替所有指标
最后计算综合得分\(Z=\sum_{j=1}^{p} b_{j} y_{j}\)
5 高等教育发展水平综合评价
clc,clear
load gj.txt %读取设计阵
gj=zscore(gj); %数据标准化
r=corrcoef(gj) %计算相关系数矩阵
%下面利用相关系数矩阵进行主成分分析,vec1的列为r的特征向量,即主成分的系数
[vec1,lamda,rate] = pcacov(r); %lamda为r的特征值,rate为各个主成分的贡献率
contr = cumsum(rate) %计算累积贡献率
f = repmat(sign(sum(vec1)),size(vec1,1),1); %构造与vec1同维数的元素为±1的矩阵
vec2 = vec1.*f %修改特征向量的正负号,使得每个特征向量的分量和为正
num = 4; %num为选取的主成分的个数
df = gj * vec2(:,1:num); %计算各个主成分的得分
tf = df * rate(1:num)/100; %计算综合得分
[stf,ind] = sort(tf,'descend'); %把得分按照从高到低的次序排列
stf = stf', ind = ind'

浙公网安备 33010602011771号