分享

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

 yjt2004us 2018-06-20



上一期(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<>

# 删除缺失值或字符变量

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 <->

# 绘制相关系数矩阵图

corrplot(mycor, method='circle')


第3种:带系数的椭圆图

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


# 计算相关系数

mycor <->

# 绘制相关系数矩阵图

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


第4种:三角圆圈图


# 计算相关系数

mycor <->

# 绘制相关系数矩阵图

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


第5种:三角颜色图


# 计算相关系数

mycor <->

# 绘制相关系数矩阵图

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 <>

# 绘制相关系数矩阵图

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.


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多