相关系数矩阵计算_corrplot包:相关性矩阵可视化

今天学习下相关性矩阵的可视化,可以用来可视化相关性矩阵的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,这些包在大部分情况下都可以满足需求。今天先来学习corrplot包的使用,后面几天有空会详细讲解下另外三个包。


目  录

  • 1. 安装和加载R包

  • 2. 加载数据集

  • 3. 数据处理

    • 3.1 转换矩阵

    • 3.2 计算相关系数

  • 4. 简单绘制

  • 5. 自定义参数

    • 5.1 可视化方法

    • 5.2 矩阵显示类型

    • 5.3 绘制组合图形

    • 5.4 相关矩阵排序

    • 5.5 设置矩阵颜色

    • 5.6 设置文本标签属性

    • 5.7 设置图例属性

    • 5.8 设置图形外观

    • 5.9 设置显著水平


1. 安装和加载R包

corrplot包可以用来可视化相关矩阵,这个包中的参数很多,可以很详细的自定义图形。

第一步先安装和加载好R包。

install.packages("corrplot") # 安装包
library(corrplot) # 加载包

2. 加载数据集

使用mtcars内置数据集进行演示,先加载包,看下数据集的信息。

data(mtcars) # 加载数据集
head(mtcars, 10) # 查看数据集前10行
065e9ad736a3937f08d2b2e9e58704a9.png

3. 数据处理

在使用mtcars数据集绘制图形前需要对数据集进行一些简单处理。

3.1 转换矩阵

绘图前可以将数据集转换为矩阵,当然,我也看到很多推文没有将数据集转换成矩阵,一样可以绘制图形,这一步也许可以省略。

mtcars # 转化为矩阵
32a0a1804a75846d839a6cc54be30fd0.png

3.2 计算相关系数

在绘制图形前,先计算下相关系数,可以使用cor()函数,函数中有"pearson", "kendall", "spearman"三种方法计算,我们选择默认的"pearson"方法即可。

cor_mtcars 'pearson')
cor_mtcars
b3aeb24e634d17db8766e6e8a23b989d.png

4. 简单绘制

先简单绘制个基本图形,我们在后面慢慢调整参数自定义图形。

corrplot(cor_mtcars)
b810bc11b75e393e809a0b01bccdcd97.png

如上图所示,一行代码就简单绘制出了图形。

在上图中,正相关用蓝色显示,负相关用红色显示。颜色强度和圆圈的大小与相关系数成正比。

下面我们开始慢慢调整参数设置图形。

5. 自定义参数

5.1 可视化方法

在上图中,可视化的方法method参数默认为"circle",也就是圆形显示。还可以使用"square","ellipse","number","pie","shade"和"color"显示,分别表示方形、椭圆形、数字、饼图、阴影、颜色。

layout(matrix(1:6, 2, 3)) # 分割绘图设备

corrplot(cor_mtcars, method = "square") # 方形
corrplot(cor_mtcars, method = "ellipse") # 椭圆形
corrplot(cor_mtcars, method = "number") # 数字
corrplot(cor_mtcars, method = "pie") # 饼图
corrplot(cor_mtcars, method = "shade") # 阴影
corrplot(cor_mtcars, method = "color") # 颜色
1822e1d53541faafc97d04fc7ecbea8d.png

5.2 矩阵显示类型

在基础图形中,矩阵显示为全矩阵显示,可以设置type参数为"lower"和"upper",来分别显示上三角和下三角矩阵。

layout(matrix(1:2, 1, 2)) # 分割绘图设备

corrplot(cor_mtcars, type = "lower") # 下三角矩阵
corrplot(cor_mtcars, type = "upper") # 上三角矩阵
0a11a4500a9a5f15af9a64808d763b24.png

5.3 绘制组合图形

在上面我们可以绘制出上三角和下三角矩阵图形,然后可以使用add参数来绘制组合图形。

add为TRUE则可以图形添加到现有图形中。

corrplot(cor_mtcars, method = "square", 
         type = "lower") # 下三角矩阵
corrplot(cor_mtcars, method = "pie", 
         type = "upper", add = TRUE) # 上三角矩阵
00cbcd3f38343c320e2fdac852d61aa3.png

如上图所示,先绘制一个下三角图形,再将上三角图形添加到图形上。

5.4 相关矩阵排序

在corrplot包中,使用order参数设置相关性矩阵排序,排序方法有original(默认)、AOE、FPC、hclust、alphabet等5种。

我们看看其他四种排序是什么样的。

layout(matrix(1:4, 2, 2)) # 分割绘图设备

corrplot(cor_mtcars, order = "AOE") # 特征向量角序
corrplot(cor_mtcars, order = "FPC") # 第一主成分顺序
corrplot(cor_mtcars, order = "hclust") # 按层次聚类
corrplot(cor_mtcars, order = "alphabet") # 按字母顺序
f1a565f87d7579a91505fc343a5ac92d.png

当order为"hclust"按层次聚类时,层次聚类方法也有几种,有"ward", "ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median"或"centroid"等,可以使用hclust.method参数来指定。

同时也可以设置addrect参数来设置可视化矩阵上聚类矩形的数量,为NULL时默认不添加矩形。

可以使用rect.col、rect.lwd参数来设置聚类矩形的颜色和线宽。

layout(matrix(1:6, 2, 3)) # 分割绘图设备

corrplot(cor_mtcars, order = "hclust", # 按层次聚类
         hclust.method = "ward.D2") #层次聚类方法
corrplot(cor_mtcars, order = "hclust", 
         hclust.method = "median") 
corrplot(cor_mtcars, order = "hclust", 
         hclust.method = "single") 
corrplot(cor_mtcars, order = "hclust", 
         hclust.method = "complete", 
         addrect = 2) # 设置聚类矩形的数量
corrplot(cor_mtcars, order = "hclust", 
         hclust.method = "average", 
         addrect = 2, rect.col = "red")  # 设置聚类矩形的颜色
corrplot(cor_mtcars, order = "hclust", 
         hclust.method = "mcquitty", 
         addrect = 4, rect.lwd = 3) # 设置聚类矩形的线宽
21532f9cbc5b81f138895bcabd744d6b.png

5.5 设置矩阵颜色

使用col参数来设置颜色,还可以使用bg参数设置背景颜色。

layout(matrix(1:3, 1, 3)) # 分割绘图设备
col = colorRampPalette(c('blue', 'white', 'red'))(40)
corrplot(cor_mtcars, method = "color")
corrplot(cor_mtcars, method = "color", col = col) # 矩阵颜色
corrplot(cor_mtcars, method = "circle", bg = "grey") # 背景颜色
084cb8a0d094846c17ef4a6c95b2789f.png

还可以设置其他的颜色。

layout(matrix(1:6, 2, 3)) # 分割绘图设备
corrplot(cor_mtcars, order = "hclust", col = heat.colors(100))
corrplot(cor_mtcars, order = "hclust", col = terrain.colors(100))
corrplot(cor_mtcars, order = "hclust", col = cm.colors(100))
corrplot(cor_mtcars, order = "hclust", col = gray.colors(100))
library(RColorBrewer)
corrplot(cor_mtcars, order = "hclust", col = brewer.pal(n = 8, name = "RdYlBu"))
corrplot(cor_mtcars, col = brewer.pal(n = 8, name = "PuOr"))
6cd6ba2c722a07456c122cebee44c4b5.png

5.6 设置文本标签属性

layout(matrix(1:4, 2, 2)) # 分割绘图设备
corrplot(cor_mtcars, tl.pos = "n") # 不显示文本标签
corrplot(cor_mtcars, tl.pos = "lt") # 在左边和顶部显示
corrplot(cor_mtcars, tl.cex = 1.5) # 设置文本标签的缩放倍数
corrplot(cor_mtcars, tl.col = "black") # 设置文本标签的颜色
2b79df6a5d3290c9a04a40eb408f1d26.png

5.7 设置图例属性

颜色标签,也就是图形旁边的图例,可以使用cl.pos、cl.cex、cl.ratio、cl.align.text、cl.offset等参数来设置。

5.7.1 设置图例位置

corrplot(cor_mtcars, cl.pos = "n") # 不显示图例
corrplot(cor_mtcars, cl.pos = "r") # 图例放在右边
corrplot(cor_mtcars, cl.pos = "b") # 图例放在底部
739b65f5802c0b8868f9b532d094f3b6.png

5.7.2 设置图例文本属性

corrplot(cor_mtcars, cl.cex = 1.5) # 设置图例中数字标签的缩放倍数
corrplot(cor_mtcars, cl.ratio = 2.0) # 数字,设置图例的宽度
corrplot(cor_mtcars, cl.align.text = "l") # 字符,设置图例中的数字标签的对齐方式
990e81045a03ecb2b3228a98afaa9dab.png

5.8 设置图形外观

可以设置图形的标题、四边间距、网格线等。

layout(matrix(1:4, 2, 2)) # 分割绘图设备

corrplot(cor_mtcars, mar = c(2.2, 2.6,2.8,1.9)) # 设置图形四边间距
corrplot(cor_mtcars, addgrid.col = "black") # 设置网格线
corrplot(cor_mtcars, outline = "black") # 设置圆形、椭圆形等外边框
corrplot(cor_mtcars, tl.pos = "n", 
         title  = "R语言统计与绘图 公众号") # 添加图形标题
efe9942e4a3bf2ce403be5bb0eadbefd.png

5.9 设置显著水平

可以在图形上显示显著性水平。

layout(matrix(1:4, 2, 2)) # 分割绘图设备
res1 .95)

corrplot(cor_mtcars, p.mat = res1$p, 
         sig.level = .2) # 设置p值>0.2的不显示
corrplot(cor_mtcars, p.mat = res1$p, 
         sig.level = .05) # 设置p值>0.05的不显示
corrplot(cor_mtcars, p.mat = res1$p, 
         insig = "blank") # 擦除p值>0.05的相关系数,设置为空白
corrplot(cor_mtcars, p.mat = res1$p, 
         insig = "p-value")
6d6683f12563c318a57633b345897b87.png

参考资料

  1. corrplot()函数帮助文件

既往专辑
0608ae052ce9a35e0290ca09f54a2c34.png

f00eb7bbbb707c06d59cf646a15b388a.png

3bd64765472290a13683a9533e4035fc.png

c20be4a56e9518c2e06aa0ca0d2223a8.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pat根据中序遍历和先序遍历_[leetcode/lintcode 题解] 前序遍历和中序遍历树构造二叉树...

【题目描述】根据前序遍历和中序遍历树构造二叉树.在线评测地址:九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧​www.jiuzhang.com【样例】样例 1:输入:[],[] 输出:{} 解释: 二叉树为空…

计算机员工工资管理系统源代码,C++员工工资管理系统源代码

《C员工工资管理系统源代码》由会员分享,可在线阅读,更多相关《C员工工资管理系统源代码(17页珍藏版)》请在人人文库网上搜索。1、include #include #include #include #include #include using namespace std;#define NULL 0#define LEN sizeof(struct …

计算机专业人才培养模式改革,地方高校计算机科学与技术专业人才培养模式改革与实践...

摘要:本文分析了目前我国地方高等院校计算机专业人才培养现状,以太原科技大学计算机科学与技术专业为例,针对办学指导思想、专业定位、专业特色、专业培养模式及课程体系进行了研究与探讨,提出了“行业特色明显、专业方向细化、实践技能突出、素质教育鲜明”的专业建设指导思想…

java中审核订单流程图_「数据架构」数据流程图:实例-订餐系统

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过绘制数据流程图,您可以了解由参与系统流程的人员提供并交付给他们的信息、完成流程所需的信息以及需要存储和访问的信息。本文以一个订餐系统为例,对数据流图(DFD)进行了描述和说明。食品订…

太原市中考计算机考试系统,太原中考报名系统

中考报名即将开始,希望大家都能顺利报名,出国留学网小编为大家准备了2016太原中考报名系统,希望对大家有所帮助,更多精彩内容欢迎访问出国留学网中考频道。2016太原中考报名系统【点击查看最新报名系统】延伸阅读:中考…

python求圆柱体的体积_漫谈超球体的体积公式

现实生活中,我们只要掌握圆的周长和面积公式,了解球的表面积和体积公式就够用了,没有什么可以深究的。本篇将带你走进高维度球的表面积和体积公式[1]。  我们生活在三维空间,对更高维度的空间难以构想。笛卡尔说:我思…

ftp 服务器 性能,FTP 服务器性能 测试点

使用ffmpeg转换webm格式安装ffmpeg brew install ffmpeg --with-libvpx --with-libvorbis 如果已经装过 brew reinstall ffmpeg --with-libv ...对于多个列的转行(一个值均匀分布在两个列中),对于个别字段通过取别名,join方式解决。例如,这个表的结构: s…

jsp项目放入宝塔windows环境_商业裂变,之项目技术实战(第八节:宝塔面板介绍)...

一、宝塔简介:宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器&…

es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章

ES文件浏览器是一款多功能的手机文件/程序/进程管理器,可以在手机、电脑、远程和蓝牙间浏览管理文件。是一个功能强大的免费的本地和网络文件管理器和应用程序管理器。ES文件浏览器与电脑进行局域网链接后可以管理电脑的文件,不只是复制,还可…

arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记

本文介绍如何用IDA进行动态调试及部分ARM指令的学习。环境:已root的安卓手机一部,IDA pro 6.8,win7系统。下载样本app,并已确认可调试(debuggable true),下文不表:http://pan.baidu.com/s/1jG22HMY一 手机…

糖豆人显示此服务器正在进行游戏,糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼...

原标题:糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼自从糖豆人游戏开放以来,大批玩家涌入,造成糖豆人服务器拥堵,一度出现崩溃。隔三差五就会来一次。玩家正玩得兴起,突然的崩溃让玩家…

js中立即执行函数会预编译吗_面试官:聊聊对Vue.js框架的理解

作者:yacan8https://github.com/yacan8/blog/issues/26本文为一次前端技术分享的演讲稿,所以尽力不贴 Vue.js 的源码,因为贴代码在实际分享中,比较枯燥,效果不佳,而更多的是以图片和文字的形式进行表达。分…

如何卸载服务器的系统,卸载服务器的操作系统

卸载服务器的操作系统 内容精选换一换弹性云服务器卸载磁盘。弹性云服务器状态为stopped时支持系统盘(也就是/dev/sda挂载点)和用户盘的卸载,没有操作系统限制,也不需要在弹性云服务器内部安装vmtools。弹性云服务器状态为active态时有如下约束限制&…

修改了模板文件tpl如何立即生效_Views视图与模板

一、概述用户请求到视图流程:当有人访问我们django项目的时候 例如127.0.0.1:8000/polls/23,django首先到加载mysite.urls模块在mysite.urls中发现有urlpatterns变量,于是在其内按顺序进行匹配。当它匹配上了polls,就到匹配到的po…

vue本地没事放到服务器上无限循环,解决vue中的无限循环问题

项目中遇到了这样一个问题:每一种产品有对应的服务费,每一个商家有多种商品要单独计算每一家的服务费,最后汇总总的服务费用。我直接写了一个方法来计算出每个商家和总的服务费用并return出来。如果不看控制台的话运行是没问题的。但是控制台…

壁式框架内力计算_4种类型剪力墙的计算要点

剪力墙又称抗风墙、抗震墙或结构墙。房屋或构筑物中主要承受风荷载或地震作用引起的水平荷载和竖向荷载(重力)的墙体,防止结构剪切(受剪)破坏。又称抗震墙,一般用钢筋混凝土做成。它分平面剪力墙和筒体剪力墙。平面剪力墙用于钢筋混凝土框架结构、升板结…

片源系统服务器,OUO NAS10主控界面评测

OUO NAS10主控界面评测■OUO NAS10主控界面评测OUO NAS10采用了高集成度的芯片,功耗比较低,整机满载情况下也不会超过9W。不过他的主控界面看起来还是比较简单易懂的,由于本身自带了linux的操作系统,还是比较容易上手的。附送光盘…

解锁设备_无师自通解锁新设备抗击疫情

随着春节假期接近尾声,一线企业复工复产,春运迎来全面返程客流高峰,为应对返程客流,做好疫情防控工作,哈车管内各站全面组织积极应对,做好进出站旅客测温,加强对进出站旅客体温筛查,…

GPS无线视频服务器,宏电环卫车无线视频监控与GPS定位系统设计方案.docx

Connecting Things环卫车3G/4G视频监控及GPS定位系统解决方案市宏电技术股份Shenzhen Hongdian Technologies Corporation.2015年7月目录 TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc2914" 第一章 系统概述 PAGEREF _Toc2914 4HYPERLINK \l "_Toc5154&q…

css选择器权重排序_css选择器优先级高低排列_css样式权重计算和!important属性

首先我们需要知道选择器的类型有这些:选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的,在不同选择器的样式出现冲突时候,会采用权重高的选择器…