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

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

一、数据

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

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

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

二、皮尔逊相关系数

原理如下:

三、肯德尔等级相关系数

原理如下:

四、斯皮尔曼相关系数

原理如下:

五、matlab源码

5.1 Pearson 显著性检验

  1. clc
  2. clear all
  3. data=xlsread('data.xlsx',1,'B2:I13')
  4. %相关性分析
  5. %默认类型为Pearson系数
  6. [xiangguan,p_value]=corr(data)%等效于xiangguan=corr(data,'Type','Pearson');
  7. %x轴和y轴的标签,要和数据的列数对应
  8. index_name={'Score','Economy','Family','Health','Freedom','Generosity','Trust','Residual'};
  9. y_index = index_name;
  10. x_index=index_name;
  11. figure
  12. %字号12,字体宋体,可以随意改变 显示默认配色
  13. H = heatmap(x_index,y_index, p_value, 'FontSize',12, 'FontName','宋体');
  14. colormap(gca, 'parula')
  15. H.Title = '皮尔逊相关性分析系数检验矩阵';

效果:

5.2 Pearson 相关系数矩阵

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

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

效果如下:

5.3 Kendalltau相关系数矩阵

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

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

效果如下:

5.4 Spearman系数

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

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

效果如下:

六、小总结

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

相关文章