技术贴│R语言13种相关矩阵图

2018 年 11 月 26 日 R语言中文社区
作者简介Introduction

郑连虎,在数学学院取得理学学位的文科生,中国人民大学硕博连读生在读,山东大学管理学学士、理学学士

个人公众号:阿虎定量笔记


文章技术贴│Stata回归图表美化推送之后,有读者问我,能不能给相关系数的报告也美化一下?当然没问题,这期我来介绍用R语言中的5个程序包,绘制13种相关系数矩阵,13种哦~图后直接上代码。

本期使用R语言内置数据集进行练习;查看R包含哪些内置数据,请使用“data()”函数:


我们使用这里面的“mtcars”数据,

包含“mpg”、“cyl”、“disp”、“hp”、“drat”等11个变量的汽车道路测试数据;在R中读取内置数据,直接输入数据名称即可:



corrplot包

# 安装corrplot包并调用

install.packages("corrplot")

library(corrplot)


第1种:简单粗暴

蓝色表示两个变量呈正相关,红色表示变量呈负相关。色彩越深,表示变量相关性越大:


# 计算相关系数

mycor<-cor(mtcars)

# 删除缺失值或字符变量

use="complete.obs"

# 输出为mycor且保留两位小数

round(mycor,digits=2)

# 绘制相关系数矩阵图

corrplot(mycor, method = "shade",shade.col = NA, tl.col ="black", tl.srt = 45, order = "AOE")


第2种:圆圈图

蓝色表示两个变量呈正相关,红色表示变量呈负相关。色彩越深,表示变量相关性越大:


# 计算相关系数

mycor <- cor(mtcars)

# 绘制相关系数矩阵图

corrplot(mycor, method="circle")


第3种:带系数的椭圆图

椭圆越扁,表示相关系数的绝对值较大;椭圆越圆,表示相关系数的绝对值较小;椭圆长轴的方向表示相关系数的正负:右上-左下方向对应正值,左上-右下方向对应负值:


# 计算相关系数

mycor <- cor(mtcars)

# 绘制相关系数矩阵图

corrplot.mixed(mycor, upper = "ellipse")


第4种:三角圆圈图


# 计算相关系数

mycor <- cor(mtcars)

# 绘制相关系数矩阵图

corrplot(mycor, method="circle",type="upper",order="hclust")


第5种:三角颜色图


# 计算相关系数

mycor <- cor(mtcars)

# 绘制相关系数矩阵图

corrplot(mycor,method="color",type="upper",order="hclust",addCoef.col = "black")

 

corrgram包

# 安装iterators包并调用

install.packages("iterators")

library(iterators)

# 安装corrgram包并调用

install.packages("corrgram")

library(corrgram)


第6种:添加斜线

蓝色和从左下指向右上的斜杠表示两个变量呈正相关,红色和从左上指向右下的斜杠表示变量呈负相关。色彩越深,表示变量相关性越大:


# 绘制相关系数矩阵图

corrgram(mtcars, lower.panel=panel.shade, upper.panel=NULL,text.panel=panel.txt, main="Car Mileage Data (unsorted)")


第7种:添加饼图

上三角区域使用饼图表示相关系数;蓝色和从12点钟处开始顺时针填充饼图表示两个变量呈正相关,红色和逆时针方向填充饼图表示变量负相关:


# 绘制相关系数矩阵图

corrgram(mtcars, order=TRUE, lower.panel=panel.shade, upper.panel=panel.pie,text.panel=panel.txt, main="Correlogram of mtcar intercorrelations")


第8种:添加拟合曲线与置信椭圆

下三角区域使用平滑拟合曲线和置信椭圆,上三角区域使用散点图:


# 绘制相关系数矩阵图

corrgram(mtcars, order=TRUE, lower.panel=panel.ellipse, upper.panel=panel.pts,text.panel=panel.txt, diag.panel=panel.minmax, main="Correlogram of mtcardata using scatterplots and ellipses")

 

ellipse包

# 安装ellipse包并调用

install.packages("ellipse")

library(ellipse)


第9种:椭圆图

椭圆越扁,表示相关系数的绝对值较大;椭圆越圆,表示相关系数的绝对值较小;椭圆长轴的方向表示相关系数的正负:右上-左下方向对应正值,左上-右下方向对应负值:


# 绘制相关系数矩阵图

col = colors[as.vector(apply(cor, 2, rank))]

plotcorr(cor, col = col, mar = rep(0, 4))


第10种:颜色图

蓝色表示正相关系数,红色表示负相关系数:


# 计算相关系数

fit = lm(mpg ~ ., mtcars)

cor = summary(fit, correlation = TRUE)$correlation

# 相关阵上下倒转再转置

cor2 = t(cor[11:1, ])

# 绘制相关系数矩阵图

colors = c("#A50F15", "#DE2D26","#FB6A4A", "#FCAE91","#FEE5D9","white", "#EFF3FF","#BDD7E7", "#6BAED6", "#3182BD","#08519C")

image(1:11, 1:11, cor2, axes = FALSE, ann = F, col = colors)

text(rep(1:11, 11), rep(1:11, each = 11), round(100 * cor2))

 

GGally包

# 安装GGally包并调用

install.packages("GGally")

library(GGally)


第11种:三角颜色图


# 绘制相关系数矩阵图

ggcorr(mtcars, label = TRUE, label_alpha = TRUE)


第12种:添加相关类型


# 绘制相关系数矩阵图

ggpairs(mtcars, columns = c("mpg", "cyl", "disp"),upper = list(continuous = wrap("cor", size = 10)), lower =list(continuous = "smooth"))

 

PerformanceAnalytics包

# 安装PerformanceAnalytics包并调用

install.packages("PerformanceAnalytics")

library(PerformanceAnalytics)


第13种:添加直方图、散点图与P值

显示相关系数大小、相关系数显著性检验的P值、变量的直方图与变量间的散点图:


# 列出待计算变量

mydata <-mtcars[c('mpg','cyl','disp','hp','drat')]

# 绘制相关系数矩阵图

chart.Correlation(mydata, histogram=TRUE, pch=19)


本期参考文献

[1] Robert I. Kabacoff. R in Action-Data analysis and graphics with R. Manning Publications Co. 2015: 283-287.



精彩回顾

R语言绘图:28个实用程序包

Stata绘图:简单好用的37条外部命令

技术贴│Stata回归图表美化

SPSS时间序列分析

R语言图形界面R commander

R语言数据挖掘利器:Rattle包

R语言时间序列分析


公众号后台回复关键字即可学习

回复 爬虫            爬虫三大案例实战  
回复 
Python       1小时破冰入门

回复 数据挖掘     R语言入门及数据挖掘
回复 
人工智能     三个月入门人工智能
回复 数据分析师  数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

登录查看更多
14

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
192+阅读 · 2020年3月12日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
R语言机器学习:xgboost的使用及其模型解释
R语言中文社区
11+阅读 · 2019年5月6日
R语言自然语言处理:情感分析
R语言中文社区
16+阅读 · 2019年4月16日
R语言自然语言处理:词性标注与命名实体识别
R语言中文社区
7+阅读 · 2019年3月5日
基于R语言进行Box-Cox变换
R语言中文社区
45+阅读 · 2018年11月19日
R语言时间序列分析
R语言中文社区
12+阅读 · 2018年11月19日
R语言数据挖掘利器:Rattle包
R语言中文社区
21+阅读 · 2018年11月17日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
74+阅读 · 2018年9月16日
数据分析师应该知道的16种回归技术:分位数回归
数萃大数据
29+阅读 · 2018年8月8日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
R语言之数据分析高级方法「时间序列」
R语言中文社区
17+阅读 · 2018年4月24日
A Modern Introduction to Online Learning
Arxiv
20+阅读 · 2019年12月31日
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
VIP会员
相关资讯
R语言机器学习:xgboost的使用及其模型解释
R语言中文社区
11+阅读 · 2019年5月6日
R语言自然语言处理:情感分析
R语言中文社区
16+阅读 · 2019年4月16日
R语言自然语言处理:词性标注与命名实体识别
R语言中文社区
7+阅读 · 2019年3月5日
基于R语言进行Box-Cox变换
R语言中文社区
45+阅读 · 2018年11月19日
R语言时间序列分析
R语言中文社区
12+阅读 · 2018年11月19日
R语言数据挖掘利器:Rattle包
R语言中文社区
21+阅读 · 2018年11月17日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
74+阅读 · 2018年9月16日
数据分析师应该知道的16种回归技术:分位数回归
数萃大数据
29+阅读 · 2018年8月8日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
R语言之数据分析高级方法「时间序列」
R语言中文社区
17+阅读 · 2018年4月24日
Top
微信扫码咨询专知VIP会员