您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
相关系数矩阵(相关系数矩阵的意义)
矩阵,宏基,系数相关系数矩阵(相关系数矩阵的意义)
发布时间:2020-12-06加入收藏来源:互联网点击:
很多朋友想了解关于相关系数矩阵的一些资料信息,下面是小编整理的与相关系数矩阵相关的内容分享给大家,一起来看看吧。
今天分享一个相关分析可视化实战!
先给大家送一个我画的假蓝月亮,不管你看着像不像,反正我觉得像。
之前我们分享了关于相关分析的原理,还有ggcorrplot包的使用。
相关分析方法基础:Spearman、Kendall和Pearson
R相关矩阵可视化包ggcorrplot
今天推出相关分析的第三讲,corrplot实战与绘图。
corrplot简介与安装corrplot是一个绘制相关矩阵和置信区间的包,它也包含了一些矩阵排序的算法。
安装也非常简单,如果在Rstudio中,直接安装:
install.packages("corrplot")本节选学内容,让工作体验更美好!
如果使用rstudio的数据源下载太慢,可以使用国内清华镜像安装,反正我在科技网,或方正宽带下载都会快10倍以上。
install.packages("corrplot",repos="https://mirrors.tuna.tsinghua.edu.cn/CRAN")此外还可以devtools工具从作者的github源安装,名称为taiyun/corrplot,追求最新版本的朋友自行尝试,这里不再赘述。
简单的相关分析及绘图实例我们library加载包,使用cor计算内部数据mtcars汽车数据列间相关系数矩阵,再绘图。
library(corrplot)M = cor(mtcars)corrplot(M, order = "hclust", addrect = 2)简单三句话,美美哒相关分析结果是出来了。
实例精华讲解我们现在对原始数据、分析结果和可视化参数进行解释。
我们看一下输入数据格式:使用head查看数据前6行预览:
head(mtcars)mpg cyl disp hp drat wt qsec vs am gear carbMazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1本质上是一个行为样本名,列为属的数值表格。其实我们大部分的数据都是这种格式的文件,只需要使用read.table读入。
cor函数对mtcars数据按列进行两两相关计算,默认使用pearson方法,当然理论解读中提前的spearman和kendall方法也都支持。
比如我们选spearman方法计算相关系数矩阵:
cor(mtcars, method = "spearman")mpg cyl disp hp drat wt qsec vs am gear carbmpg 1.0000000 -0.9108013 -0.9088824 -0.8946646 0.65145546 -0.8864220 0.46693575 0.7065968 0.56200569 0.5427816 -0.65749764cyl -0.9108013 1.0000000 0.9276516 0.9017909 -0.67888119 0.8577282 -0.57235095 -0.8137890 -0.52207118 -0.5643105 0.58006798disp -0.9088824 0.9276516 1.0000000 0.8510426 -0.68359210 0.8977064 -0.45978176 -0.7236643 -0.62406767 -0.5944703 0.53977806hp -0.8946646 0.9017909 0.8510426 1.0000000 -0.52012499 0.7746767 -0.66660602 -0.7515934 -0.36232756 -0.3314016 0.73337937drat 0.6514555 -0.6788812 -0.6835921 -0.5201250 1.00000000 -0.7503904 0.09186863 0.4474575 0.68657079 0.7448162 -0.12522294wt -0.8864220 0.8577282 0.8977064 0.7746767 -0.75039041 1.0000000 -0.22540120 -0.5870162 -0.73771259 -0.6761284 0.49981205qsec 0.4669358 -0.5723509 -0.4597818 -0.6666060 0.09186863 -0.2254012 1.00000000 0.7915715 -0.20333211 -0.1481997 -0.65871814vs 0.7065968 -0.8137890 -0.7236643 -0.7515934 0.44745745 -0.5870162 0.79157148 1.0000000 0.16834512 0.2826617 -0.63369482am 0.5620057 -0.5220712 -0.6240677 -0.3623276 0.68657079 -0.7377126 -0.20333211 0.1683451 1.00000000 0.8076880 -0.06436525gear 0.5427816 -0.5643105 -0.5944703 -0.3314016 0.74481617 -0.6761284 -0.14819967 0.2826617 0.80768800 1.0000000 0.11488698carb -0.6574976 0.5800680 0.5397781 0.7333794 -0.12522294 0.4998120 -0.65871814 -0.6336948 -0.06436525 0.1148870 1.00000000相关系数矩阵的特点:
相关系数矩阵数值范围是-1到1,分别 代表完全负相关或正相关;
对角线全为1,因为自身完全相同即100%s相关;
矩阵中上、下三角阵中数值沿对角线是对称。
corrplot命令解释
可视化时,默认的方法为直接corrplot可视化矩阵即可,如下:
corrplot(M)默认:圆形颜色渐变效果展示相关系数
示例中order按hclust聚类方式排序,addrect是添加分组矩形,可自定义分组类,类似于平时热图的kmean分组方式。用于表现研究对象可分类的特点,方便继续分类讨论或研究
corrplot(M, order = "hclust", addrect = 2)corrplot中参数详解corrplot(corr, method = c("circle", "square", "ellipse", "number", "shade", "color", "pie"), type = c("full", "lower", "upper"), add = FALSE, col = , bg = "white", title = "", is.corr = TRUE, diag = TRUE, outline = FALSE, mar = c(0, 0, 0, 0), addgrid.col = , addCoef.col = , addCoefasPercent = FALSE, order = c("original", "AOE", "FPC", "hclust", "alphabet"), hclust.method = c("complete", "ward", "ward.D", "ward.D2", "single", "average", "mcquitty", "median", "centroid"), addrect = , rect.col = "black", rect.lwd = 2, tl.pos = , tl.cex = 1, tl.col = "red", tl.offset = 0.4, tl.srt = 90, cl.pos = , cl.lim = , cl.length = , cl.cex = 0.8, cl.ratio = 0.15, cl.align.text = "c", cl.offset = 0.5, number.cex = 1, number.font = 2, number.digits = , addshade = c("negative", "positive", "all"), shade.lwd = 1, shade.col = "white", p.mat = , sig.level = 0.05, insig = c("pch", "p-value", "blank", "n", "label_sig"), pch = 4, pch.col = "black", pch.cex = 3, plotCI = c("n", "square", "circle", "rect"), lowCI.mat = , uppCI.mat = , na.label = "?", na.label.col = "black", win.asp = 1, ...)
是不是有点多,功能实在太强大了,我们挑几个常用的说明。
corr: 用于绘图的矩阵,必须是正方形矩阵,如果是普通的矩阵,需要设置is.corr=FALSE
method: 可视化的方法,默认是圆circle,还有正方形square、椭圆ellipse、数字number、阴影shade、颜色color和饼pie可选。文章开篇处的示例即为饼形,类似月亮周期的大小变化。
type:展示类型,默认全显full,还有下三角lower,或上三角upper可选。
col:颜色设置,可设置颜色起、中、终点颜色。
is.corr:逻辑值,若为TRUE,不强制要求矩阵是正方形的相关系数矩阵,图例范围也会随数据变化
diag:是否显示对角线值。因为对角线全为1,显示只是美观,实际意义不大
tl.cex:名称标签字体大小
tl.col:名称标签字体颜色
cl.lim:值域范围
addrect:设置分组数量,添加矩形
官方教程公众号只是信息传播和推荐的作用,让你知道什么东西可以干什么事。具体更深入的学习,作者的官方教程一般都是比较不错的教材,很少有人比作者更了解它的软件使用。
作者在CRAN上包主页的vignettes中提供了非常详细的图片教程,有几十种画法展示,简直像自选超市,大家需要哪种选哪种。
下面我只举几个粟子:
1. 画上三角矩阵
corrplot(M, type = "upper")2. 图形和数值混合矩阵
corrplot.mixed(M)文字看不清,可以设置文字为黑色和大小
corrplot.mixed(M, lower.col = "black", number.cex = .7)3. 修改颜色
col3 - colorRampPalette(c("red", "white", "blue")) corrplot(M, order = "hclust", addrect = 2, col = col3(20))4. 图例标签控制
关闭图例和标签
corrplot(M, order = "AOE", cl.pos = "n", tl.pos = "n")还可以控制对角标签旋转45度
corrplot(M, type = "lower", order = "hclust", tl.col = "black", tl.srt = 45)修改图例范围
corrplot(abs(M),order = "AOE", col = col3(200), cl.lim = c(0, 1))上一篇:洪水坤(洪水坤)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |