相关系数矩阵计算_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行
3. 数据处理
在使用mtcars数据集绘制图形前需要对数据集进行一些简单处理。
3.1 转换矩阵
绘图前可以将数据集转换为矩阵,当然,我也看到很多推文没有将数据集转换成矩阵,一样可以绘制图形,这一步也许可以省略。
mtcars # 转化为矩阵
3.2 计算相关系数
在绘制图形前,先计算下相关系数,可以使用cor()函数,函数中有"pearson", "kendall", "spearman"三种方法计算,我们选择默认的"pearson"方法即可。
cor_mtcars 'pearson')cor_mtcars
4. 简单绘制
先简单绘制个基本图形,我们在后面慢慢调整参数自定义图形。
corrplot(cor_mtcars)
如上图所示,一行代码就简单绘制出了图形。
在上图中,正相关用蓝色显示,负相关用红色显示。颜色强度和圆圈的大小与相关系数成正比。
下面我们开始慢慢调整参数设置图形。
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") # 颜色
5.2 矩阵显示类型
在基础图形中,矩阵显示为全矩阵显示,可以设置type参数为"lower"和"upper",来分别显示上三角和下三角矩阵。
layout(matrix(1:2, 1, 2)) # 分割绘图设备
corrplot(cor_mtcars, type = "lower") # 下三角矩阵corrplot(cor_mtcars, type = "upper") # 上三角矩阵
5.3 绘制组合图形
在上面我们可以绘制出上三角和下三角矩阵图形,然后可以使用add参数来绘制组合图形。
add为TRUE则可以图形添加到现有图形中。
corrplot(cor_mtcars, method = "square", type = "lower") # 下三角矩阵corrplot(cor_mtcars, method = "pie", type = "upper", add = TRUE) # 上三角矩阵
如上图所示,先绘制一个下三角图形,再将上三角图形添加到图形上。
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") # 按字母顺序
当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) # 设置聚类矩形的线宽
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") # 背景颜色
还可以设置其他的颜色。
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"))
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") # 设置文本标签的颜色
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") # 图例放在底部
5.7.2 设置图例文本属性
corrplot(cor_mtcars, cl.cex = 1.5) # 设置图例中数字标签的缩放倍数corrplot(cor_mtcars, cl.ratio = 2.0) # 数字,设置图例的宽度corrplot(cor_mtcars, cl.align.text = "l") # 字符,设置图例中的数字标签的对齐方式
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语言统计与绘图 公众号") # 添加图形标题
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")
参考资料
- corrplot()函数帮助文件
既往专辑
相关系数矩阵计算_corrplot包:相关性矩阵可视化相关推荐
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用fa.diagram函数可视化斜交旋转因子分析、并解读可视化图形
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用fa.diagram函数可视化斜交旋转因子分析.并解读可视化图形 目 ...
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用factor.plot函数可视化斜交旋转因子分析、并解读可视化图形
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用factor.plot函数可视化斜交旋转因子分析.并解读可视化图形 ...
- R语言可视化:散点图、散点图和折线图(line charts)、3D散点图、旋转3D散点图、气泡图、corrgram包可视化相关性矩阵、马赛克图( Mosaic plots)、hexbin、密度图
R语言可视化:散点图.散点图和折线图(line charts).3D散点图.旋转3D散点图.气泡图.corrgram包可视化相关性矩阵.马赛克图( Mosaic plots).hexbin.密度图 目 ...
- python绘制相关性矩阵_python seaborn heatmap可视化相关性矩阵实例
方法import pandas as pd import numpy as np import seaborn as sns df = pd.DataFrame(np.random.randn(50) ...
- R语言使用psych包进行探索性因子分析EFA、使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix into correlation matrix)
R语言使用psych包进行探索性因子分析EFA.使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix transform into correlati ...
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用nfactors参数指定抽取的因子个数、fa函数因子分析结果解读
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用nfactors参数指定抽取的因子个数.fa函数因子分析结果解读( ...
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、并获取因子分数、因子得分系数(scoring coefficients)
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.并获取因子分数.因子得分系数(factor scores.scoring ...
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用nfactors参数指定抽取的因子的个数、fa函数因子分析结果解读(Extracting common facto
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用nfactors参数指定抽取的因子的个数.fa函数因子分析结果解读(Extracting common facto ...
- R语言psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、指定进行正交旋转、斜交旋转提取因子、比较正交旋转和斜交旋转之间的差异、因子结构矩阵、因子模式矩阵和因子相关矩阵之间的关系
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行正交旋转.斜交旋转提取因子.比较正交旋转和斜交旋转之间的差异.因子结
最新文章
- 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...
- Cisco Catalyst交换机密码恢复策略
- Jrebel最新激活破解方式
- php抢购排队是怎样做的,基于swoole的抢购排队通用中间件,适合抢购秒杀场景,跟具体业务解耦...
- doorway path issue of my task in HCP
- 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)
- Linux的system()和popen()差异
- 老师只喜欢好学生(转)
- NeurIPS 2020 | 基于“单目标域样本”的领域自适应方法
- python函数实例化_Python中的__new__()方法与实例化
- BZOJ2366 : 多重历史
- 页面库无法捕获到Added事件?
- 信号检测与估计(1)
- 小白学 Python 爬虫(18):Requests 进阶操作
- Tk-Mybatis(通用mybatis)简单使用
- GIS开发:客户端控制的地图样式
- 【渝粤题库】陕西师范大学200891教育心理学作业(高起本)
- mysql 关闭防火墙 命令_CentOS7关闭防火墙命令
- 隐马尔科夫模型模型:原理、实现
- map和filter方法对于稀缺数组的处理
热门文章
- Android快速开发框架XUtils
- 树莓派lnmp安装mysql_在树莓派上安装 LNMP
- android tcpdump log分析,android 系统启动过程中加入tcpdump和logcat
- cesium 经纬度绘制点_NCL绘制2016年1号台风(Nepartak)
- shell -eom_EOM的完整形式是什么?
- LTNS的完整形式是什么?
- Java BufferedWriter close()方法与示例
- 在Python3中将字符串转换为字节的最佳方法
- scala 获取数组中元素_从Scala中的元素列表中获取随机元素
- squid服务配置(正向、反向代理)