此篇为转载R语言学习笔记之相关性矩阵分析及其可视化
data(mtcars)#加载数据集
mydata <- mtcars[, c(1,3,4,5,6,7)]
head(mydata, 6)#查看数据前6行
包里的rcorr()函数能够同时给出相关系数以及显著性水平p-value。 rcorr(x, type = c(“pearson”,“spearman”))。
library(Hmisc)#加载包
res2 <- rcorr(as.matrix(mydata))
res2
#可以用res2$r、res2$P来提取相关系数以及显著性p-value
res2$r
res2$P
如何将相关系数以及显著性水平p-value整合进一个矩阵内,可以自定义一个函数 flattenCorrMatrix 。
# ++++++++++++++++++++++++++++
# flattenCorrMatrix
# ++++++++++++++++++++++++++++
# cormat : matrix of the correlation coefficients
# pmat : matrix of the correlation p-values
flattenCorrMatrix <- function(cormat, pmat) {
ut <- upper.tri(cormat) data.frame( row = rownames(cormat)[row(cormat)[ut]],
column = rownames(cormat)[col(cormat)[ut]], cor =(cormat)[ut], p = pmat[ut] )
}
#举个栗子
res3 <- rcorr(as.matrix(mtcars[,1:7]))
flattenCorrMatrix(res3$r, res3$P)
corrplot() function to plot a correlogram
这个函数来自于包corrplot()
,通过颜色深浅来显著相关程度。参数主要有:
type: “upper”, “lower”, “full”,显示上三角还是下三角还是全部
order:用什么方法,这里是hclust
tl.col (for text label color) and tl.srt (for text label string rotation) :控制文本颜色以及旋转角度
library(corrplot)#先加载包
corrplot(res, type = "upper", order = "hclust", tl.col = "black", tl.srt = 45)
# Insignificant correlations are leaved blank
corrplot(res2$r, type="upper", order="hclust", p.mat = res2$P, sig.level = 0.01, insig = "blank")
library(PerformanceAnalytics)#加载包
chart.Correlation(mydata, histogram=TRUE, pch=19)
作者:taoyan
链接:https://www.jianshu.com/p/ef9e6a39a145
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。