|
题目
丝绸之路是古代中西方文化交流的通道,其中玻璃是早期贸易往来的宝贵物证。早期的玻璃在西亚和埃及地区常被制作成珠形饰品传入我国,我国古代玻璃吸收其技术后在本土就地取材制作,因此与外来的玻璃制品外观相似,但化学成分却不相同。
玻璃的主要原料是石英砂,主要化学成分是二氧化硅(SiO2)。由于纯石英砂的熔点较高,为了降低熔化温度,在炼制时需要添加助熔剂。古代常用的助熔剂有草木灰、天然泡碱、硝石和铅矿石等,并添加石灰石作为稳定剂,石灰石煅烧以后转化为氧化钙(CaO)。添加的助熔剂不同,其主要化学成分也不同。例如,铅钡玻璃在烧制过程中加入铅矿石作为助熔剂,其氧 化铅(PbO)、氧化钡(BaO)的含量较高,通常被认为是我国自己发明的玻璃品种,楚文化的玻璃就是以铅钡玻璃为主。钾玻璃是以含钾量高的物质如草木灰作为助熔剂烧制而成的,主要流行于我国岭南以及东南亚和印度等区域。

在这里插入图片描述
题目没啥实际用处,就是了解背景。
第一问

在这里插入图片描述
第二问

在这里插入图片描述
第三问

在这里插入图片描述
第四问

在这里插入图片描述
思路和程序
简单写下思路咯,反正我遇到了sb队友,已经退赛!简单写几句,水平一般,因为不知道用什么新的方法,都是一些传统方法,后面再想想有没有多新的方法。
问题一
第一个:皮尔逊、方差分析等,注意:是两两之间关系。
第二个:分析文物样品表面有无风化化学成分含量的统计规律。 思路:可视化一下分布。
第三个:预测。其实这个数据比较少,我想挨个预测会不会好点,先把表单一和二合并,然后就有文物的四个特征作为输入,先预测sio2,然后把sio2的预测结果变成一致自变量,预测第一个化学成分...每一个都分别训练预测。
当然,你觉得麻烦的话,就直接一次性预测,但是这样输入变量比输出变量还少了。。结果糟糕就手动修改好一点(hh)。至于用什么算法,这个是个回归问题哈,不是分类就行了。
问题二
第一个:分类规律 。还是可视化分布,然后文字描述一个自然段就好。
第二个:亚分类。选一个好的聚类方法,得到能聚成多少累,就是多少个类别吧,选一个分类预测算法预测一下。后面说了,要保存聚类结果等,合理性就是描述你的方法更适合这个问题嘛。
第三个:敏感性。我觉得就是微调原来数据,调节后重新训练模型,看模型准确率变化程度吧。
问题三
基于问题二的类别来预测。换一个分类预测算法嘛,跟问题二一样就更没意思了。然后又敏感性分析,我不认为是对数据的扰动。
问题四
分类讨论分析。。。
总结
这些传统的方法,我的博客笔记都写过,所以打比赛我也是直接复制粘贴的改一改参数。AB题别做了,做不出来的,至少做出来的人是非常少了吧,当然做出来了肯定能拿奖了。
说下拿奖准则:把每个问题都做出来了,论文描述正常,省三保底了,然后就是论文的润色,升级到省一。国奖,则需要增加工作量等。还有呀,我知道很多人买代码......自己改一下吧,成千上万人用同一款代码,同一款软件....b站讲个思路,几千人去买....反正买都买了,自己改改吧。
推荐思路
我写的思路:
?
个人学习笔记与几句心得
以后无论打什么比赛,只要遇到C类题型,直接拿我博客代码换数据就全部做出来了:个人主页
AB为什么不推荐你们做,大部分人做不出来,AB题型是没有规律的,而且做AB题对你们找工作没多大帮助,一直研究C题类型,我就自己找到了数据挖掘工程师工作,工资嘎嘎的高,我又不搞科研,所以我就一直不做AB这种题。。拿什么奖对于我来说其实只是玩玩而已,但是找到工资高的工作我就真的开行。
公众号:玩转大数据 CSDN:川川菜鸟 我的VX:hxgsrubxjogxeeag 数模group:701163024 (竞赛期间禁言)
参考完整代码(matlab)
我自己用的python写的,所以发matlab版本代码出来也没关系。下面是四个问题的大部分代码,可以作为大家参考:
x=[97.61
99.89
100
98.88
96.06
96.51
98.92
98.84
99.7
99.82
98.24
99.77
99.81
95.39
99.57
98.14
99
79.47
98.41
71.89
97.25
98.76
88.41
98.52
100
96.5
98.88
97.06
99.82
99.89
98.81
98.69
99.88
97.95
98.7
98.43
98.66
99.96
97.52
96.21
97.63
99.98
98.57
98.76
98.57
93.71
98.01
97.9
94.68
96.67
99.12
98.34
98.63
97.26
99.17
95.5
98.24
90.17
96.94
95.33
91.7
94.08
98.25
99.67
96.92
96.38
92.24
92.47
98.76
];
figure
plot(x,'-o')
xlabel('表单2中不同文物采样点')
ylabel('数据成分比例累加值')
%%
A=[3 1 3 1
1 2 1 2
1 1 3 1
1 1 3 1
1 1 3 1
1 1 3 1
2 1 3 2
3 2 2 2
2 1 3 2
2 1 3 2
3 2 1 2
2 1 3 2
3 1 1 1
3 1 4 1
3 1 1 1
3 1 1 1
3 1 1 1
1 1 8 1
1 2 1 1
1 1 3 1
2 1 3 2
1 2 3 2
3 2 2 1
3 2 1 2
3 2 2 2
2 1 3 2
1 2 1 2
1 2 1 2
1 2 8 1
3 2 2 1
3 2 5 1
3 2 4 1
3 2 4 2
3 2 5 1
3 2 4 2
3 2 4 1
3 2 4 2
3 2 4 2
3 2 5 2
1 2 1 2
3 2 1 2
1 2 1 2
1 2 1 1
1 2 1 1
1 2 1 1
1 2 7 2
1 2 7 2
3 2 1 2
3 2 1 2
1 2 1 2
3 2 1 2
3 2 6 1
3 2 3 2
3 2 3 2
];
data=A;
%相关性分析
%默认类型为Pearson系数
[xiangguan,p_value]=corr(data)%等效于xiangguan=corr(data,'Type','Pearson');
%x轴和y轴的标签,要和数据的列数对应
index_name={'纹饰','玻璃类型','颜色','表面风化'};
y_index = index_name;
x_index=index_name;
figure
%字号12,字体宋体,可以随意改变 显示默认配色
H = heatmap(x_index,y_index, p_value, 'FontSize',12, 'FontName','宋体');
colormap(gca, 'parula')
H.Title = '皮尔逊相关性分析系数检验矩阵';
figure
% 可以自己定义颜色块
H = heatmap(x_index,y_index, xiangguan, 'FontSize',12, 'FontName','宋体');
H.Title = '皮尔逊相关性分析系数矩阵';
colormap(autumn(5))%设置颜色个数
% Kendall tau 系数
figure
[xiangguan,~]=corr(data,'Type','Kendall');
H = heatmap(x_index,y_index, xiangguan, 'FontSize',12, 'FontName','宋体');
H.Title = 'Kendall tau 相关系数矩阵';
% Spearman系数
figure
[xiangguan,~]=corr(data,'Type','Spearman');
H = heatmap(x_index,y_index, xiangguan, 'FontSize',12, 'FontName','宋体');
H.Title = 'Spearman相关系数矩阵';
colormap summer
%
B1=0;j=0;
for i=1:length(A(:,1))
if A(i,2)==1 && A(i,4)==2
j=j+1;B1(j)=i;
end
end
B2=0;j=0;
for i=1:length(A(:,1))
if A(i,2)==1 && A(i,4)==1
j=j+1;B2(j)=i;
end
end
B3=0;j=0;
for i=1:length(A(:,1))
if A(i,2)==2 && A(i,4)==2
j=j+1;B3(j)=i;
end
end
B4=0;j=0;
for i=1:length(A(:,1))
if A(i,2)==2 && A(i,4)==1
j=j+1;B4(j)=i;
end
end
%%
% 导入电子表格中的数据
% 用于从以下电子表格导入数据的脚本:
%
% 工作簿: D:\文档\MATLAB\2022国赛\附件.xlsx
% 工作表: 表单2
%
% 要扩展代码以供其他选定数据或其他电子表格使用,请生成函数来代替脚本。
% 由 MATLAB 自动生成于 2022/09/15 21:00:42
% 导入数据
[~, ~, raw] = xlsread('附件.xlsx','表单2','B2:O70');
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''};
% 将非数值元胞替换为 NaN
R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),raw); % 查找非数值元胞
raw(R) = {NaN}; % 替换非数值元胞
% 创建输出变量
S2 = reshape([raw{:}],size(raw));
% 清除临时变量
clearvars raw R;
S2(isnan(S2))=0;
S2(20,:)=[];S2(19,:)=[];
S2(1,:)
%%
gaojia_youfeng=S2(B1,:);
N=length(gaojia_youfeng(:,1));
for i=1:14
mean1(i)=mean(gaojia_youfeng(:,i));
std1(i)=std(gaojia_youfeng(:,i));
min1(i)=min(gaojia_youfeng(:,i));
max1(i)=max(gaojia_youfeng(:,i));
end
gaojia_youfeng_pj=mean(gaojia_youfeng);
figure
pie3(gaojia_youfeng_pj)
labels = {'二氧化硅(SiO2)','氧化钠(Na2O)','氧化钾(K2O)','氧化钙(CaO)','氧化镁(MgO)','氧化铝(Al2O3)','氧化铁(Fe2O3)','氧化铜(CuO)','氧化铅(PbO)','氧化钡(BaO)','五氧化二磷(P2O5)','氧化锶(SrO)','二氧化硫(SO2)'};
title('不同玻璃类型的有风化的化学成分含量')
legend(labels)
figure
x = [7 9 10 12 21 26];
bar(x,gaojia_youfeng,'stacked')
legend(labels)
title('玻璃类型为高钾的有风化化学成分含量的每个文物编号的化学成分含量比较')
%%
gaojia_wufeng=S2(B2,:);
N=length(gaojia_wufeng(:,1));
for i=1:14
mean1(i)=mean(gaojia_wufeng(:,i));
std1(i)=std(gaojia_wufeng(:,i));
min1(i)=min(gaojia_wufeng(:,i));
max1(i)=max(gaojia_wufeng(:,i));
end
gaojia_wufeng_pj=mean(gaojia_wufeng);
figure
pie3(gaojia_wufeng_pj)
labels = {'二氧化硅(SiO2)','氧化钠(Na2O)','氧化钾(K2O)','氧化钙(CaO)','氧化镁(MgO)','氧化铝(Al2O3)','氧化铁(Fe2O3)','氧化铜(CuO)','氧化铅(PbO)','氧化钡(BaO)','五氧化二磷(P2O5)','氧化锶(SrO)','二氧化硫(SO2)'};
title('不同玻璃类型的无风化的化学成分含量')
legend(labels)
figure
x = [1 3 4 5 6 13 14 15 16 17 18 20];
bar(x,gaojia_wufeng,'stacked')
legend(labels)
title('玻璃类型为高钾的无风化化学成分含量的每个文物编号的化学成分含量比较')
%%
gaojia_youwu_chazhi=(gaojia_youfeng_pj-gaojia_wufeng_pj)./gaojia_wufeng_pj;
figure
stem(gaojia_youwu_chazhi)
xlim([1 14]);xlabel('化学成分序号(二氧化硅依次到二氧化硫)');ylabel('风化对化学成分的影响百分率')
%%
qianbei_youfeng=S2(B3,:);
N=length(qianbei_youfeng(:,1));
for i=1:14
mean1(i)=mean(qianbei_youfeng(:,i));
std1(i)=std(qianbei_youfeng(:,i));
min1(i)=min(qianbei_youfeng(:,i));
max1(i)=max(qianbei_youfeng(:,i));
end
qianbei_youfeng_pj=mean(qianbei_youfeng);
figure
pie3(qianbei_youfeng_pj)
labels = {'二氧化硅(SiO2)','氧化钠(Na2O)','氧化钾(K2O)','氧化钙(CaO)','氧化镁(MgO)','氧化铝(Al2O3)','氧化铁(Fe2O3)','氧化铜(CuO)','氧化铅(PbO)','氧化钡(BaO)','五氧化二磷(P2O5)','氧化锶(SrO)','二氧化硫(SO2)'};
title('玻璃类型为铅钡的有风化化学成分含量')
legend(labels)
figure
x = [2 8 11 22 24 25 27 28 33 35 37 38 39 40 41 42 46 47 48 49 50 51 53 54];
bar(x,qianbei_youfeng,'stacked')
legend(labels)
title('玻璃类型为铅钡的有风化化学成分含量的每个文物编号的化学成分含量比较')
%%
qianbei_wufeng=S2(B4,:);
N=length(qianbei_wufeng(:,1));
for i=1:14
mean1(i)=mean(qianbei_wufeng(:,i));
std1(i)=std(qianbei_wufeng(:,i));
min1(i)=min(qianbei_wufeng(:,i));
max1(i)=max(qianbei_wufeng(:,i));
end
qianbei_wufeng_pj=mean(qianbei_wufeng);
figure
pie3(qianbei_wufeng_pj)
labels = {'二氧化硅(SiO2)','氧化钠(Na2O)','氧化钾(K2O)','氧化钙(CaO)','氧化镁(MgO)','氧化铝(Al2O3)','氧化铁(Fe2O3)','氧化铜(CuO)','氧化铅(PbO)','氧化钡(BaO)','五氧化二磷(P2O5)','氧化锶(SrO)','二氧化硫(SO2)'};
title('玻璃类型为铅钡的无风化的化学成分含量')
legend(labels)
figure
x = [7 9 10 12 21 26];
bar(x,gaojia_youfeng,'stacked')
legend(labels)
title('玻璃类型为铅钡的无风化化学成分含量的每个文物编号的化学成分含量比较')
qianbei_youwu_chazhi=(qianbei_youfeng_pj-qianbei_wufeng_pj)./qianbei_wufeng_pj;
figure
stem(qianbei_youwu_chazhi)
xlim([1 14]);xlabel('化学成分序号(二氧化硅依次到二氧化硫)');ylabel('风化对化学成分的影响百分率')
%%
fenghua_weifenghua=[1
2
1
1
1
1
1
1
2
2
2
2
2
2
2
1
1
1
1
2
1
1
2
1
1
1
2
2
2
1
1
1
1
1
1
1
2
1
2
1
2
2
2
2
1
1
2
2
1
1
1
1
2
2
1
2
1
2
2
2
1
2
2
1
2
2
2];
% mdl=fitlm(S2,fenghua_weifenghua)
% plot(mdl)
% mdl.Coefficients
% anova(mdl,'summary')
% figure
% plot(mdl)
% anova(mdl)
% figure
% plotResiduals(mdl)
% figure
% coefCI(mdl)
% plotResiduals(mdl,'probability')
% plotSlice(mdl)
% figure
% plotDiagnostics(mdl,'cookd')
%%
leix=[
1
2
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
];
% 找出玻璃类型是高钾的行数
C1=0;j=0;
for i=1:length(S2(:,1))
if leix(i)==1
j=j+1;C1(j)=i;
end
end
% 找出玻璃类型是铅钡的行数
C2=0;j=0;
for i=1:length(S2(:,1))
if leix(i)==2
j=j+1;C2(j)=i;
end
end
figure
bar3(S2(C1,:));xlabel('文物编号');ylabel('化学成分序号');zlabel('百分比重')
figure
bar3(S2(C2,:));xlabel('文物编号');ylabel('化学成分序号');zlabel('百分比重')
%%
x=1:14;xx=1:0.1:14;yy1=spline(x,mean(S2(C1,:)),xx);yy1(yy1<0)=0;
yy2=spline(x,mean(S2(C2,:)),xx) ;yy2(yy2<0)=0;
figure
plot(mean(S2(C1,:)),&#39;o&#39;);hold on,plot(mean(S2(C2,:)),&#39;o&#39;),
plot(xx,yy1,xx,yy2)
xlabel(&#39;化学成分序号&#39;);ylabel(&#39;百分比重&#39;)
legend(&#39;高钾玻璃不同化学成分占比&#39;,&#39;铅钡玻璃不同化学成分占比&#39;,&#39;高钾玻璃样条拟合值&#39;,&#39;铅钡玻璃样条拟合值&#39;)
%% 高钾玻璃 主成分分析
x=zscore(S2(C1,:));%标准化数据;
[coeff,score,latent,tsquare]=pca(x);
latent&#39;%特征值
y=(100*latent/sum(latent))&#39;; %特征值贡献率
B=x*coeff(:,1:3);%新数据
figure
biplot(coeff(:,1:2),&#39;scores&#39;,score(:,1:2),&#39;varlabels&#39;,{&#39;v1&#39;,&#39;v2&#39;,&#39;v3&#39;,&#39;v4&#39;,&#39;v5&#39;,&#39;v6&#39;,&#39;v7&#39;,&#39;v8&#39;,&#39;v9&#39;,&#39;v10&#39;,&#39;v11&#39;,&#39;v12&#39;,&#39;v13&#39;,&#39;v14&#39;});
[idx,C] = kmeans(B,3);%簇索引及质心位置
% 高钾玻璃 后续聚类
figure;
plot(B(idx==1,1),B(idx==1,2),&#39;r.&#39;,&#39;MarkerSize&#39;,12)
hold on
plot(B(idx==2,1),B(idx==2,2),&#39;b.&#39;,&#39;MarkerSize&#39;,12)
hold on
plot(B(idx==3,1),B(idx==3,2),&#39;g.&#39;,&#39;MarkerSize&#39;,12)
plot(C(:,1),C(:,2),&#39;kx&#39;,...
&#39;MarkerSize&#39;,15,&#39;LineWidth&#39;,3)
legend(&#39;类 1&#39;,&#39;类 2&#39;,&#39;类3&#39;,...
&#39;Location&#39;,&#39;NE&#39;)
title &#39;聚类分析—集群分配和质心&#39;
hold off
%% 铅钡玻璃 主成分分析
x=zscore(S2(C2,:));%标准化数据;
[coeff,score,latent,tsquare]=pca(x);
latent&#39;%特征值
y=(100*latent/sum(latent))&#39;; %特征值贡献率
B=x*coeff(:,1:3);%新数据
figure
biplot(coeff(:,1:3),&#39;scores&#39;,score(:,1:3),&#39;varlabels&#39;,{&#39;v1&#39;,&#39;v2&#39;,&#39;v3&#39;,&#39;v4&#39;,&#39;v5&#39;,&#39;v6&#39;,&#39;v7&#39;,&#39;v8&#39;,&#39;v9&#39;,&#39;v10&#39;,&#39;v11&#39;,&#39;v12&#39;,&#39;v13&#39;,&#39;v14&#39;});
[idx,C] = kmeans(B,3);%簇索引及质心位置
% 铅钡玻璃 后续聚类
figure;
plot(B(idx==1,1),B(idx==1,2),&#39;r.&#39;,&#39;MarkerSize&#39;,12)
hold on
plot(B(idx==2,1),B(idx==2,2),&#39;b.&#39;,&#39;MarkerSize&#39;,12)
hold on
plot(B(idx==3,1),B(idx==3,2),&#39;g.&#39;,&#39;MarkerSize&#39;,12)
plot(C(:,1),C(:,2),&#39;kx&#39;,...
&#39;MarkerSize&#39;,15,&#39;LineWidth&#39;,3)
legend(&#39;类 1&#39;,&#39;类 2&#39;,&#39;类3&#39;,...
&#39;Location&#39;,&#39;NW&#39;)
title &#39;聚类分析—集群分配和质心&#39;
hold off
%% 聚类敏感性分析
for i=1:7
[~,~,sumd,~] = kmeans(B,i);%簇索引及质心位置
sumdd(i)=sum(sumd).*i;
end
x2=zscore(S2(C1,:));%标准化数据;
[coeff2,~,~,~]=pca(x2);
B2=x2*coeff2(:,1:3);%新数据
for i=1:7
[~,~,sumd2,~] = kmeans(B2,i);%簇索引及质心位置
sumdd2(i)=sum(sumd2).*i;
end
figure
plot(1:7,sumdd,&#39;o-&#39;,1:7,sumdd2,&#39;o-&#39;);
xlabel(&#39;簇的数量&#39;);ylabel(&#39;簇内的点到质心距离的总和的和与簇的数量的乘积&#39;)
legend(&#39;高钾玻璃&#39;,&#39;铅钡玻璃&#39;)
%% 第三问
x=1:14;xx=1:0.1:14;yy1=spline(x,mean(S2(C1,:)),xx);yy1(yy1<0)=0;
yy2=spline(x,mean(S2(C2,:)),xx) ;yy2(yy2<0)=0;
figure
plot(mean(S2(C1,:)),&#39;o&#39;);hold on,plot(mean(S2(C2,:)),&#39;o&#39;),
plot(xx,yy1,xx,yy2)
xlabel(&#39;化学成分序号&#39;);ylabel(&#39;百分比重&#39;)
legend(&#39;高钾玻璃不同化学成分占比&#39;,&#39;铅钡玻璃不同化学成分占比&#39;,&#39;高钾玻璃样条拟合值&#39;,&#39;铅钡玻璃样条拟合值&#39;)
hold on
%
[~, ~, raw] = xlsread(&#39;附件.xlsx&#39;,&#39;表单3&#39;,&#39;C2:P9&#39;);
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {&#39;&#39;};
% 将非数值元胞替换为 NaN
R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),raw); % 查找非数值元胞
raw(R) = {NaN}; % 替换非数值元胞
% 创建输出变量
S1 = reshape([raw{:}],size(raw));
% 清除临时变量
clearvars raw R;
S1(isnan(S1))=0;
plot(S1&#39;)
kk1=S1-mean(S2(C1,:));mea_kk1=sum(abs(kk1),2);
figure,bar(abs(kk1));xlabel(&#39;文物编号&#39;),ylabel(&#39;与高钾类型插值曲线的一范数&#39;)
kk2=S1-mean(S2(C2,:));mea_kk2=sum(abs(kk2),2);
figure,bar(abs(kk2));xlabel(&#39;文物编号&#39;),ylabel(&#39;与铅钡类型插值曲线的一范数&#39;)
%%
%相关性分析
%默认类型为Pearson系数
data=S2(C1,:);
[xiangguan,p_value]=corr(data)%等效于xiangguan=corr(data,&#39;Type&#39;,&#39;Pearson&#39;);
%x轴和y轴的标签,要和数据的列数对应
index_name={&#39;二氧化硅(SiO2)&#39;,&#39;氧化钠(Na2O)&#39;,&#39;氧化钾(K2O)&#39;,&#39;氧化钙(CaO)&#39;...
&#39;氧化镁(MgO)&#39;,&#39;氧化铝(Al2O3)&#39;,&#39;氧化铁(Fe2O3)&#39;,&#39;氧化铜(CuO)&#39;,&#39;氧化铅(PbO)&#39;,&#39;氧化钡(BaO)&#39;,&#39;五氧化二磷(P2O5)&#39;,&#39;氧化锶(SrO)&#39;,&#39;氧化锡(SnO2)&#39;,&#39;二氧化硫(SO2)&#39;};
y_index = index_name;
x_index=index_name;
figure
%字号12,字体宋体,可以随意改变 显示默认配色
H = heatmap(x_index,y_index, p_value, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
colormap(gca, &#39;parula&#39;)
H.Title = &#39;皮尔逊相关性分析系数检验矩阵&#39;;
figure
% 可以自己定义颜色块
H = heatmap(x_index,y_index, xiangguan, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
H.Title = &#39;皮尔逊相关性分析系数矩阵&#39;;
colormap(autumn(5))%设置颜色个数
% Kendall tau 系数
figure
[xiangguan,~]=corr(data,&#39;Type&#39;,&#39;Kendall&#39;);
H = heatmap(x_index,y_index, xiangguan, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
H.Title = &#39;Kendall tau 相关系数矩阵&#39;;
% Spearman系数
figure
[xiangguan,~]=corr(data,&#39;Type&#39;,&#39;Spearman&#39;);
H = heatmap(x_index,y_index, xiangguan, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
H.Title = &#39;Spearman相关系数矩阵&#39;;
colormap summer
%%
%相关性分析
%默认类型为Pearson系数
data=S2(C2,:);
[xiangguan,p_value]=corr(data)%等效于xiangguan=corr(data,&#39;Type&#39;,&#39;Pearson&#39;);
%x轴和y轴的标签,要和数据的列数对应
index_name={&#39;二氧化硅(SiO2)&#39;,&#39;氧化钠(Na2O)&#39;,&#39;氧化钾(K2O)&#39;,&#39;氧化钙(CaO)&#39;...
&#39;氧化镁(MgO)&#39;,&#39;氧化铝(Al2O3)&#39;,&#39;氧化铁(Fe2O3)&#39;,&#39;氧化铜(CuO)&#39;,&#39;氧化铅(PbO)&#39;,&#39;氧化钡(BaO)&#39;,&#39;五氧化二磷(P2O5)&#39;,&#39;氧化锶(SrO)&#39;,&#39;氧化锡(SnO2)&#39;,&#39;二氧化硫(SO2)&#39;};
y_index = index_name;
x_index=index_name;
figure
%字号12,字体宋体,可以随意改变 显示默认配色
H = heatmap(x_index,y_index, p_value, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
colormap(gca, &#39;parula&#39;)
H.Title = &#39;皮尔逊相关性分析系数检验矩阵&#39;;
figure
% 可以自己定义颜色块
H = heatmap(x_index,y_index, xiangguan, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
H.Title = &#39;皮尔逊相关性分析系数矩阵&#39;;
colormap(autumn(5))%设置颜色个数
% Kendall tau 系数
figure
[xiangguan,~]=corr(data,&#39;Type&#39;,&#39;Kendall&#39;);
H = heatmap(x_index,y_index, xiangguan, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
H.Title = &#39;Kendall tau 相关系数矩阵&#39;;
% Spearman系数
figure
[xiangguan,~]=corr(data,&#39;Type&#39;,&#39;Spearman&#39;);
H = heatmap(x_index,y_index, xiangguan, &#39;FontSize&#39;,12, &#39;FontName&#39;,&#39;宋体&#39;);
H.Title = &#39;Spearman相关系数矩阵&#39;;
colormap summer |
|