PCA步骤:
(1)对原始数据进行标准化处理
(2)计算样本相关系数矩阵
(3)计算相关系数矩阵R的特征值和相应的特征向量
(4)选择重要的主成分,写出主成分表达式
案例问题:企业综合实力排序
企业综合实力评价表:
企业序号
净利润率/%
固定资产利润率/%
总产值利润率/%
销售收入利润率/%
产品成本利润率/%
物耗利润率/%
人均利润1000/人
流动资金
1
40.4
24.7
7.2
6.1
8.3
8.7
2.442
20
2
25
12.7
11.2
11
12.9
20.2
3.542
9.1
3
13.2
3.3
3.9
4.3
4.4
5.5
0.578
3.6
4
22.3
6.7
5.6
3.7
6
7.4
0.176
7.3
5
34.3
11.8
7.1
7.1
8
8.9
1.726
27.5
6
35.6
12.5
16.4
16.7
22.8
29.3
3.017
26.6
7
22
7.8
9.9
10.2
12.6
17.6
0.847
10.6
8
48.4
13.4
10.9
9.9
10.9
13.9
1.772
17.8
9
40.6
19.1
19.8
19
29.7
39.6
2.449
35.8
10
24.8
8
9.8
8.9
11.9
16.2
0.789
13.7
11
12.5
9.7
4.2
4.2
4.6
6.5
0.874
3.9
12
1.8
0.6
0.7
0.7
0.8
1.1
0.056
1
13
32.3
13.9
9.4
8.3
9.8
13.3
2.126
17.1
14
38.5
9.1
11.3
9.5
12.2
16.4
1.327
11.6
15
26.2
10.1
5.6
15.6
7.7
30.1
0.126
25.9
%主成分分析 PAC 的Matlab实现
%------------------------
% % 数据的输入及处理
clc
clear all
A=xlsread('D:\evaluation.xlsx',1,'B2:I16');
%数据的标准化处理
a=size(A,1);%获得矩阵A的行大小
b=size(A,2);%获得矩阵A的列大小
for i=1:b
SA(:,i)=(A(:,i)-mean(A(:,i)))/std(A(:,i));%std函数是用来求向量的标准差
end
% %计算相关系数矩阵的特征值和特征向量
CM=corrcoef(SA);%计算相关系数矩阵
[V,D]=eig(CM);%计算特征值和特征向量
for j=1:b
DS(j,1)=D(b+1-j,b+1-j);%对特征值按降序排列
end
for i=1:b
DS(i,2)=DS(i,1)/sum(DS(:,1));%贡献率
DS(i,3)=sum(DS(1:i,1))/sum(DS(:,1));%累计贡献率
end
% % 选择主成分及对应的特征向量
T=0.9;%主成分信息保留率
for k=1:b
if DS(k,3)>=T
Com_num=k;
break;
end
end
%提取主成分对应的特征向量
for j=1:Com_num
PV(:,j)=V(:,b+1-j);
end
% % 计算各评价对象的主成分得分
new_score=SA*PV;
for i=1:a
total_score(i,1)=sum(new_score(i,:));
total_score(i,2)=i;
end
result_report=[new_score,total_score];%将各主成分得分与总分放在同一个矩阵中
result_report=sortrows(result_report,-4);%按总分降序排序
% % 输出模型及结果报告
disp('特征值及其贡献率,累加贡献率:')
DS
disp('信息保留率T对应的主成分数与特征向量:')
Com_num
PV
disp('主成分得分及排序(按第四列的总分进行排序,前三列为个主成分得分,第五列为企业编号)')
result_report
结果:
特征值及其贡献率,累加贡献率: DS = 5.7361 0.7170 0.7170 1.0972 0.1372 0.8542 0.5896 0.0737 0.9279 0.2858 0.0357 0.9636 0.1456 0.0182 0.9818 0.1369 0.0171 0.9989 0.0060 0.0007 0.9997 0.0027 0.0003 1.0000 信息保留率T对应的主成分数与特征向量: Com_num = 3 PV = 0.3334 0.3788 0.3115 0.3063 0.5562 0.1871 0.3900 -0.1148 -0.3182 0.3780 -0.3508 0.0888 0.3853 -0.2254 -0.2715 0.3616 -0.4337 0.0696 0.3026 0.4147 -0.6189 0.3596 -0.0031 0.5452 主成分得分及排序(按第四列的总分进行排序,前三列为个主成分得分,第五列为企业编号) result_report = 5.1936 -0.9793 0.0207 4.2350 9.0000 0.7662 2.6618 0.5437 3.9717 1.0000 1.0203 0.9392 0.4081 2.3677 8.0000 3.3891 -0.6612 -0.7569 1.9710 6.0000 0.0553 0.9176 0.8255 1.7984 5.0000 0.3735 0.8378 -0.1081 1.1033 13.0000 0.4709 -1.5064 1.7882 0.7527 15.0000 0.3471 -0.0592 -0.1197 0.1682 14.0000 0.9709 0.4364 -1.6996 -0.2923 2.0000 -0.3372 -0.6891 0.0188 -1.0075 10.0000 -0.3262 -0.9407 -0.2569 -1.5238 7.0000 -2.2020 -0.1181 0.2656 -2.0545 4.0000 -2.4132 0.2140 -0.3145 -2.5137 11.0000 -2.8818 -0.4350 -0.3267 -3.6435 3.0000 -4.4264 -0.6180 -0.2884 -5.3327 12.0000 >>