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

浏览: 3007

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

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

文章(技术贴│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语言入门及数据挖掘
回复 人工智能     三个月入门人工智能
回复 数据分析师  数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册