主成分 matlab程序,主成分分析Matlab程序设计

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

>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值