||
本次,介绍一下相关性分析以及相关性分析可视化常用方法。
library(learnasreml) library(tidyverse) data(fm) str(fm) dd = fm %>% select(-c(1:5)) head(dd)
cor
cor(dd)
这里,原始数据中有缺失值,所以有NA,所以我们需要考虑缺失值,修改的代码如下:
cor(dd,use = "complete.obs")
相关性结果:上面还有一个缺陷,没有给出显著性检验,默认的cor.test
只能对两个变量进行显著性检验,比如:
cor.test(dd[,1],dd[,2])
Hmisc
包中的rcorr
函数Hmisc
包中的rcorr
函数可以对多个变量进行相关性计算,并且计算显著性。
注意,需要将变量转化为矩阵,才可以进行分析。
library(Hmisc) dd = as.matrix(dd) rcorr(dd)
结果如下:
> rcorr(dd) dj dm wd h1 h2 h3 h4 h5 dj 1.00 0.38 0.86 0.04 0.04 -0.02 0.07 0.03 dm 0.38 1.00 0.57 -0.03 0.03 -0.05 0.05 0.04 wd 0.86 0.57 1.00 0.11 0.14 0.07 0.18 0.15 h1 0.04 -0.03 0.11 1.00 0.58 0.47 0.47 0.44 h2 0.04 0.03 0.14 0.58 1.00 0.83 0.79 0.73 h3 -0.02 -0.05 0.07 0.47 0.83 1.00 0.82 0.75 h4 0.07 0.05 0.18 0.47 0.79 0.82 1.00 0.91 h5 0.03 0.04 0.15 0.44 0.73 0.75 0.91 1.00 n dj dm wd h1 h2 h3 h4 h5 dj 826 824 826 826 826 826 823 823 dm 824 825 825 825 825 825 822 822 wd 826 825 827 827 827 827 824 824 h1 826 825 827 827 827 827 824 824 h2 826 825 827 827 827 827 824 824 h3 826 825 827 827 827 827 824 824 h4 823 822 824 824 824 824 824 824 h5 823 822 824 824 824 824 824 824 P dj dm wd h1 h2 h3 h4 h5 dj 0.0000 0.0000 0.2023 0.2388 0.6239 0.0399 0.3939 dm 0.0000 0.0000 0.4264 0.3668 0.1415 0.1619 0.2514 wd 0.0000 0.0000 0.0013 0.0000 0.0314 0.0000 0.0000 h1 0.2023 0.4264 0.0013 0.0000 0.0000 0.0000 0.0000 h2 0.2388 0.3668 0.0000 0.0000 0.0000 0.0000 0.0000 h3 0.6239 0.1415 0.0314 0.0000 0.0000 0.0000 0.0000 h4 0.0399 0.1619 0.0000 0.0000 0.0000 0.0000 0.0000 h5 0.3939 0.2514 0.0000 0.0000 0.0000 0.0000 0.0000
上面结果中:
所以,我们使用第一部分相关系数,和第三部分显著性结果即可。
R包进行相关系数可视化时,会将相关系数和显著性也输出到图片中,一步到位。
PerformanceAnalytics
包中的chart.Correlation
代码如下:
library(PerformanceAnalytics) chart.Correlation(dd)
corrplot
包中的corrplot
注意corrplot
的对象,需要时相关系数,而不是原始数据。
library(corrplot) re = cor(dd,use = "complete.obs") corrplot(re)
没有给出显著性,不太友好。
GGally
包中的chart.ggpairs
注意,ggpairs
的对象,需要是数据框,所以要转化为数据框。
library(GGally) dd = as.data.frame(dd) ggpairs(dd)
ggpairs的好处是,还可以进行分组。比如这里按照两组进行划分。
fm
数据框中,有两个密度,这里,我们按照密度进行分组。
ggpairs(fm, columns = (6:13),ggplot2::aes(color = fm$Spacing))
library(learnasreml) library(tidyverse) data(fm) str(fm) dd = fm %>% select(-c(1:5)) head(dd) # 相关系数 cor(dd) cor(dd,use = "complete.obs") cor.test(dd[,1],dd[,2]) library(Hmisc) dd = as.matrix(dd) rcorr(dd) # 相关系数可视化 library(PerformanceAnalytics) chart.Correlation(dd) library(corrplot) re = cor(dd,use = "complete.obs") corrplot(re) library(GGally) dd = as.data.frame(dd) ggpairs(dd) ggpairs(fm, columns = (6:13),ggplot2::aes(color = fm$Spacing))
> 欢迎关注我的公众号:`育种数据分析之放飞自我`。主要分享R语言,Python,育种数据分析,生物统计,数量遗传学,混合线性模型,GWAS和GS相关的知识。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-12 16:35
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社