数学建模学习(51):相关性分析(皮尔逊,肯德尔,斯皮尔曼)

x33g5p2x  于2021-12-23 转载在 其他  
字(1.2k)|赞(0)|评价(0)|浏览(1156)

一、数据

该数据为各个国家幸福指数得分、经济、家庭、自由等指标,分析它们之间的相关性

为了便于你们测试,我把数据放网盘

链接:https://pan.baidu.com/s/1orrCkeXdfc6ne7XhyJ7ypg 
提取码:xgag 
--来自百度网盘超级会员V3的分享

二、皮尔逊相关系数

原理如下:

三、肯德尔等级相关系数

原理如下:

四、斯皮尔曼相关系数

原理如下:

五、matlab源码

5.1 Pearson 显著性检验

clc
clear all
data=xlsread('data.xlsx',1,'B2:I13')

%相关性分析
%默认类型为Pearson系数
[xiangguan,p_value]=corr(data)%等效于xiangguan=corr(data,'Type','Pearson');

%x轴和y轴的标签,要和数据的列数对应
index_name={'Score','Economy','Family','Health','Freedom','Generosity','Trust','Residual'};
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 = '皮尔逊相关性分析系数检验矩阵';

效果:

5.2 Pearson 相关系数矩阵

在后面继续追加一部分代码:

figure
% 可以自己定义颜色块
H = heatmap(x_index,y_index, xiangguan, 'FontSize',12, 'FontName','宋体');
H.Title = '皮尔逊相关性分析系数矩阵'; 
colormap(autumn(5))%设置颜色个数

效果如下:

5.3 Kendalltau相关系数矩阵

我们直接在后面继续追加一部分代码即可:

%  Kendall tau 系数
figure
[xiangguan,~]=corr(data,'Type','Kendall');
H = heatmap(x_index,y_index, xiangguan, 'FontSize',12, 'FontName','宋体');
H.Title = 'Kendall tau 相关系数矩阵';

效果如下:

5.4 Spearman系数

底部添加一部分这个代码即可:

%  Spearman系数
figure
[xiangguan,~]=corr(data,'Type','Spearman');
H = heatmap(x_index,y_index, xiangguan, 'FontSize',12, 'FontName','宋体');
H.Title = 'Spearman相关系数矩阵'; 
colormap summer

效果如下:

六、小总结

以上就是三种算法相关性分析的实现了。

相关文章