MATLAB数学建模——皮尔逊、斯皮尔曼相关性分析
·
% 生成多组示例数据
% 生成5组数据,每组数据包含100个随机数
data = randn(100, 5);
data(:,2) = 2*data(:,1) + randn(100,1); % 第2列与第1列存在线性关系
data(:,3) = -data(:,1) + randn(100,1); % 第3列与第1列存在负相关关系
data(:,4) = 0.5*data(:,2) + randn(100,1);% 第4列与第2列有一定相关性
data(:,5) = data(:,3) + data(:,4) + randn(100,1); % 第5列与第3、4列有关
% 计算皮尔逊相关系数矩阵
R_pearson = corr(data, 'Type', 'Pearson');
% 计算斯皮尔曼相关系数矩阵
R_spearman = corr(data, 'Type', 'Spearman');
% 显示皮尔逊相关系数矩阵的热力图
figure
% subplot(1,2,1);
heatmap(R_pearson, 'Colormap', turbo, 'ColorbarVisible', 'on');
title('皮尔逊相关系数热力图');
xlabel('变量');
ylabel('变量');
set(gca, 'XData', 1:length(data(1,:)), 'YData', 1:length(data(1,:)));
figure
% 显示斯皮尔曼相关系数矩阵的热力图
% subplot(1,2,2);
heatmap(R_spearman, 'Colormap', turbo, 'ColorbarVisible', 'on');
title('斯皮尔曼相关系数热力图');
xlabel('变量');
ylabel('变量');
set(gca, 'XData', 1:length(data(1,:)), 'YData', 1:length(data(1,:)));
% 显示图表
% sgtitle('多组数据的相关性分析热力图');


DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)