Compare commits

...

5 Commits

@ -0,0 +1,64 @@
%AHP步骤
clc,clear,close all;
A=[1,2,3,5
1/2,1,1/2,2
1/3,2,1,2
1/5,1/2,1/2,1];
[row,col]=size(A);
%判断矩阵一致性检验
n=col;
maxlam=max(eig(A));
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45];
CI=(maxlam-n)/(n-1);
CR=CI/RI(n);
%判断矩阵确定权重
for i=1:col
sumcol=sum(A(:,i));
for j=1:row
A(j,i)=A(j,i)/sumcol;
end
end
weig=zeros(row,1);
for i=1:row
sumrow=sum(A(i,:));
weig(i)=sumrow/n;
end
%各个指标归一化 按列单位化
data= [1686.4 3183 12000 397
903.6 1916.4 3439.6 43
837.6 817.6 4748 1159
824.9 1296.4 12000 442
2110.2 1465.7 6199.5 228];
[rowd,cold]=size(data);
for i=1:cold
sumcold=sum(data(:,i));
for j=1:rowd
data(j,i)=data(j,i)/sumcold;
end
end
%按权重计算分数
score=data*weig;
projectNames={'老番茄','何同学','木鱼水心','凉风','罗翔'};
figure;
bar(score);%条形图
set(gca, 'XTickLabel', projectNames); %每个条形图标签
xlabel('博主');
ylabel('加权总分');
title('得分');
grid on; % 网格线

@ -0,0 +1,96 @@
clc,clear,format short,close all;
load data_mh.mat;
[n,p]=size(x);
%标准化
X=zscore(x);
%协方差矩阵/相关系数矩阵
R=cov(X);
[V,D]=eig(R);%[特征向量,特征值]
lambda=diag(D);
lambda=lambda(end:-1:1);
total_contri=sum(lambda);
cum_contri=cumsum(lambda);
contri_rate=cum_contri/total_contri;
V1=rot90(V)';
disp(V1);
c1=V1(:,1);
c2=V1(:,2);
XX=X*c1;
YY=X*c2;
figure;
scatter(XX, YY, 'filled');
xlabel('第一主成分');
ylabel('第二主成分');
title('主成分得分图');
grid on;
%散点
figure;
scatter(XX,YY,'k.');
figure;
plot(c1, c2, 'o', 'MarkerSize', 8, 'MarkerFaceColor', 'b');
text(c1, c2, cellstr(num2str((1:p)')), 'VerticalAlignment','bottom', 'HorizontalAlignment','right');
xlabel('第一主成分');
ylabel('第二主成分');
title('主成分载荷图');
grid on;
%主成分得分图Score Plot
X = randn(100, 5);
% 主成分分析
[coeff, score, latent, tsquared, explained, mu] = pca(X);
% 绘制前两个主成分的得分图
figure;
scatter(score(:,1), score(:,2));
xlabel('第一主成分');
ylabel('第二主成分');
title('主成分得分图');
grid on;
% 添加数据点标签
text(score(:,1), score(:,2), num2str((1:size(score,1))'), 'FontSize', 8);

@ -0,0 +1,46 @@
clc,clear,close all;
%相关系数矩阵
r=[ 1.000,0.577,0.509,0.387,0.462
0.577,1.000,1.599,0.389,0.322
0.509,0.599,1.000,0.436,0.426
0.387,0.389,0.436,1.000,0.523
0.462,0.322,0.426,0.523,1.000];
[vec1,val,rate]=pcacov(r);%特征向量、特征值、贡献率
f1=repmat(sign(sum(vec1)),size(vec1,1),1);%调整符号
vec2=vec1.*f1;%是用 .*
f2=repmat(sqrt(val)',size(vec2,1),1);
a=vec2.*f2;%载荷矩阵
a1=a(:,1);
tcha1=diag(r-a1*a1');
a2=a(:,[1,2]);
tcha2=diag(r-a2*a2');
ccha2=r-a2*a2'-diag(tcha2);
con=cumsum(rate);
clc,clear,close all;
load data_mh.mat;
[n,p]=size(x);
%标准化
X=zscore(x);
%相关系数矩阵
r=cov(X);
[vec1,val,rate]=pcacov(r);%特征向量、特征值、贡献率
f1=repmat(sign(sum(vec1)),size(vec1,1),1);%调整符号
vec2=vec1.*f1;%是用 .*
f2=repmat(sqrt(val)',size(vec2,1),1);
a=vec2.*f2;%载荷矩阵
a1=a(:,1);
tcha1=diag(r-a1*a1');
a2=a(:,[1,2]);
tcha2=diag(r-a2*a2');
ccha2=r-a2*a2'-diag(tcha2);
con=cumsum(rate);
Loading…
Cancel
Save