python相关性分析 相关性矩阵_R语言学习笔记之相关性矩阵分析及其可视化

本文介绍了使用R语言进行相关性分析的方法,包括计算相关系数、处理缺失值、使用Hmisc包的rcorr函数获取p-value,以及通过flattenCorrMatrix整合结果。此外,还展示了使用symnum、corrplot、scatter plots和heatmap等工具进行相关系数矩阵的可视化。
摘要由CSDN通过智能技术生成

原标题:R语言学习笔记之相关性矩阵分析及其可视化

感谢关注天善智能,走好数据之路↑↑↑

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

作者简介:

taoyan:伪码农,R语言爱好者,爱开源。

个人博客: https://ytlogos.github.io/

计算相关矩阵

R内置函数 cor() 可以用来计算相关系数:cor(x, method = c("pearson", "kendall", "spearman")),如果数据有缺失值,用cor(x, method = "pearson", use = "complete.obs")。

导入数据

如果数据格式是txt,用my_data

csv则用my_data

data(mtcars)#加载数据集

mydata

head(mydata, 6)#查看数据前6行

计算相关系数矩阵

res

round(res, 2)#保留两位小数

cor()只能计算出相关系数,无法给出显著性水平p-value,Hmisc包里的rcorr()函数能够同时给出相关系数以及显著性水平p-value。rcorr(x, type = c(“pearson”,“spearman”))。

The output of the function rcorr() is a list containing the following elements : - r : the correlation matrix - n : the matrix of the number of observations used in analyzing each pair of variables - P : the p-values corresponding to the significance levels of correlations.

library(Hmisc)#加载包

res2

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

ut

column = rownames(cormat)[col(cormat)[ut]], cor =(cormat)[ut], p = pmat[ut] )

}

举个栗子

---

res3

flattenCorrMatrix(res3$r, res3$P)

可视化相关系数矩阵

有不同的方法来可视化,主要有下面四种:

symnum() function

corrplot() function to plot a correlogram

scatter plots

heatmap

##symnum() function主要用法:

symnum(x, cutpoints = c(0.3, 0.6, 0.8, 0.9, 0.95), symbols = c("

“,”.“,”,“,”+“,”*“,”B“),

abbr.colnames = TRUE) #很好理解,0-0.3用空格表示, 0.3-0.6用.表示, 以此类推。

举个栗子

symnum(res, abbr.colnames = FALSE)#abbr.colnames用来控制列名

##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")

##Use chart.Correlation(): Draw scatter plotschart.Correlation()来自于包PerformanceAnalytics

library(PerformanceAnalytics)#加载包

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

解释一下上图:

对角线上显示的是分布图

左下部显示的是具有拟合线的双变量散点图

右上部显示的是相关系数以及显著性水平

##heatmap()

col

heatmap(x = res, col = col, symm = TRUE)#symm表示是否对称

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值