不同变量对于样本综合评分的贡献是不同的,对综合评分有较大贡献的变量应该更为重要。主成分分析法CCC是在主成分分析法PCA基础上进行改进得到的。其目的是对高维变量空间进行降维处理,去除冗余,甚至是干扰信息,从而让关键信息凸显出来。主成分分析法 CCC ,较之 PCA 方法,在主成分的基础上重新考虑处理后数据与原变量之间的相关关系,使得算法能够更好地揭露原数据内的隐含关系,客观全面地解决了原指标权重的确定问题,不受人为主观偏好的影响而使得评价指标准确度受经验导向浮动较大。
参考文献:基于总体相关系数法和综合评价法的高水平理工科高校科技成果转化绩效评价研究-陈辉
1. 主成分分析法具体分析步骤为:
(1)设
是一个
维矩阵,P代表原始数据表中变量的维度,n代表样本个数。
(2)标准化 X 为
其中
是一个
维的单位矩阵,
是一个对角矩阵,对角线上的元素
代表第 i 个变量的标准差。
(3)计算样本相关矩阵
其中
是
的转置。
(4)计算主成分。假定样本相关矩阵
的特征根以降序排序为
,其对应的相互正交的特征向量为
(5)假定第 i 个主成分的方差占总方差的比例为
:
(6)计算第 k 个变量与所有主成分的关联程度(总体相关系数CCC)
表明第 k 个变量对原始数据表的重要程度,
表示第 k 个变量与第 i 个主成分的相关系数,
是样本相关矩阵
的第 i 个特征值,
是对应特征向量
的第 i 个元素,
表示第 k 个变量的方差。
(7)对CCC值进行归一化处理
2. 构建评价模型
通过计算各项指标的CCC值,将其作为每项指标的权重后,利用统计学方法将指标权重后的隐形关系通过评分的方式表现,即综合指数评价法。综合指数评价法是针对于数据的多样性,利用统计学方法根据不同数据的相关性计算得出一个综合性数据的方法,用以宏观地反映事物变化的趋势和变化的程度,等同于将多组不同度量的数据,归一成同一度量的数据,然后通过对比来表明事物综合变化的指标。
综合指标法以主成分的方差贡献率作为权数,通过计算得出综合评价值Z:
表示第 i 个高校的综合指数,
值越大,表示综合评价值越高,
表示第 j 个指标的CCC值,
表示第 i 个高校的第 j 个指标。
MATLAB示例数据(7个样本,每个样本对应9个变量值)相当于
。
A | B | C | D | E | F | G | |
1 | 4.447998711 | 5.305791845 | 4.974069884 | 8.585143992 | 5.435709414 | 7.19476971 | 7.293012921 |
2 | 5.483710661 | 5.598081835 | 6.045260201 | 5.948902119 | 5.624989722 | 6.187555046 | 7.154444268 |
3 | 5.254892514 | 5.978451918 | 5.437748142 | 6.228571429 | 6.603280776 | 5.810784767 | 6.118644068 |
4 | 1.884057971 | 4.158878505 | 1.064278188 | 3.620689655 | 5.355871886 | 4.985754986 | 8 |
5 | 0.579710145 | 1.355140187 | 0.179135933 | 2.672413793 | 2.544483986 | 2.374169041 | 4.926829268 |
6 | 7.058823529 | 5.909090909 | 3.75 | 9.087591241 | 5.479452055 | 6.5 | 6.279069767 |
7 | 10 | 10 | 10 | 0 | 10 | 10 | 0 |
8 | 1.052631579 | 3.333333333 | 3.333333333 | 6.666666667 | 2.5 | 3.333333333 | 1.666666667 |
9 | 3.537625298 | 4.700242552 | 5.579689419 | 4.900683966 | 5.984617996 | 4.355999762 | 4.268801758 |
MATLAB程序源代码
clc;
clear all;
% 输入XT矩阵
p=9;n=7; % p为数据表中变量的维度,n为样本个数
XT=xlsread('C:\Users\Administrator\Desktop\MATLAB程序\主成分分析\数据(去中心化).xlsx') ;
X=XT';
%标准化X为Xs
s1=std(X(:,1),1);
s2=std(X(:,2),1);
s3=std(X(:,3),1);
s4=std(X(:,4),1);
s5=std(X(:,5),1);
s6=std(X(:,6),1);
s7=std(X(:,7),1);
s8=std(X(:,8),1);
s9=std(X(:,9),1);
I=eye(n,n);
a=[1/s1,1/s2,1/s3,1/s4,1/s5,1/s6,1/s7,1/s8,1/s9];
b=diag(a,0);
Xs=(X-(1/n)*I*X)*b;
% 计算样本相关矩阵Rx
Rx=(Xs'*Xs)/(n-1);
%计算主成分
[c,d]=eig(Rx); % c为特征向量,d为特征值
for i=1:p
e(i)=d(i,i); % 把矩阵的特征值存储到矩阵e中
end
u1=c(:,1);
y1=(u1')*(Xs');
u2=c(:,2);
y2=(u2')*(Xs');
u3=c(:,3);
y3=(u3')*(Xs');
u4=c(:,4);
y4=(u4')*(Xs');
u5=c(:,5);
y5=(u5')*(Xs');
u6=c(:,6);
y6=(u6')*(Xs');
u7=c(:,7);
y7=(u7')*(Xs');
u8=c(:,8);
y8=(u8')*(Xs');
u9=c(:,9);
y9=(u9')*(Xs');
% 计算ri,在程序中放到了r矩阵
f=0;
for i=1:p
f=f+abs(e(i)) ;
end
for i=1:p
r(i)=abs(e(i))/f ;
end
%总体相关系数CCC 9个变量
for j=1:p
g(j)=var(X(:,j)); % g(i)为第i个变量的方差
end
%第一个变量与所有主成分的关联程度
PYX1=0;
for i=1:p
PYX1=PYX1+(r(i)*u1(i)*sqrt(abs(e(i))))/g(1);
end
%第二个变量与所有主成分的关联程度
PYX2=0;
for i=1:p
PYX2=PYX2+(r(i)*u2(i)*sqrt(abs(e(i))))/g(2);
end
%第三个变量与所有主成分的关联程度
PYX3=0;
for i=1:p
PYX3=PYX3+(r(i)*u3(i)*sqrt(abs(e(i))))/g(3);
end
%第四个变量与所有主成分的关联程度
PYX4=0;
for i=1:p
PYX4=PYX4+(r(i)*u4(i)*sqrt(abs(e(i))))/g(4);
end
%第五个变量与所有主成分的关联程度
PYX5=0;
for i=1:p
PYX5=PYX5+(r(i)*u5(i)*sqrt(abs(e(i))))/g(5);
end
%第六个变量与所有主成分的关联程度
PYX6=0;
for i=1:p
PYX6=PYX6+(r(i)*u6(i)*sqrt(abs(e(i))))/g(6);
end
%第七个变量与所有主成分的关联程度
PYX7=0;
for i=1:p
PYX7=PYX7+(r(i)*u7(i)*sqrt(abs(e(i))))/g(7);
end
%第八个变量与所有主成分的关联程度
PYX8=0;
for i=1:p
PYX8=PYX8+(r(i)*u8(i)*sqrt(abs(e(i))))/g(8);
end
%第九个变量与所有主成分的关联程度
PYX9=0;
for i=1:p
PYX9=PYX9+(r(i)*u9(i)*sqrt(abs(e(i))))/g(9);
end
%对CCC值进行归一化处理
m=40; %偏移m
PYX=[PYX1+m PYX2+m PYX3+m PYX4+m PYX5+m PYX6+m PYX7+m PYX8+m PYX9+m];
T=0;
for i=1:p
T=T+PYX(i);
end
for i=1:p
w(i)=PYX(i)/T;
end
disp('每个变量的权重w:');
w
for i=1:n
for j=1:p
z(i)=w(j)*X(i,j);
end
end
disp('7个样本的综合评分Z:');
z
MATLAB程序运行结果