R语言中多列数据计算相关系数及其显著性

这个网站的主题越来越好了,markdown写作真的会上瘾,加上这么好的编辑器,真的是不要太爽喔!

知乎,微信公众号编辑器推荐: https://mdnice.com/

下面是正文,写这个主题是因为我想计算一下相关系数和显著性,发现自己也忘记怎么操作的了。所谓最好的记忆方法就是写篇博客,如果还没学会的话,就写一本教程吧(参考我学习DMU的故事,从入门到秃头!)。我之所以写这么多字,一来公众号原创需要300字,灌水,二来朋友说我的写作风格是往人脸上扔大粪,上来就是统计语言和代码,恶臭扑鼻!这个要改,改。

R语言中cor函数,只能计算相关系数,如果想要计算显著性,需要两两用cor.test进行,如果是多列数据,操作比较麻烦。这里介绍两个包,非常方便的进行多列数据的相关系数及其显著性的检验,并且给出可视化。

1. 模拟数据

这里模拟出10列数据,转化为数据库,是100行10列的数据,目的是为了计算这10列的相关系数及其显著性,虽然随机数没有显著性可言,但是作为一个演示,还是很可以说明问题的。

> set.seed(123)
> dd = as.data.frame(matrix(rnorm(1000),100,10))
> head(dd)
           V1          V2         V3         V4          V5          V6          V7         V8         V9        V10
1 -0.56047565 -0.71040656  2.1988103 -0.7152422 -0.07355602 -0.60189285  1.07401226 -0.7282191  0.3562833 -1.0141142
2 -0.23017749  0.25688371  1.3124130 -0.7526890 -1.16865142 -0.99369859 -0.02734697 -1.5404424 -0.6580102 -0.7913139
3  1.55870831 -0.24669188 -0.2651451 -0.9385387 -0.63474826  1.02678506 -0.03333034 -0.6930946  0.8552022  0.2995937
4  0.07050839 -0.34754260  0.5431941 -1.0525133 -0.02884155  0.75106130 -1.51606762  0.1188494  1.1529362  1.6390519
5  0.12928774 -0.95161857 -0.4143399 -0.4371595  0.67069597 -1.50916654  0.79038534 -1.3647095  0.2762746  1.0846170
6  1.71506499 -0.04502772 -0.4762469  0.3311792 -1.65054654 -0.09514745 -0.21073418  0.5899827  0.1441047 -0.6245675

2. 计算相关系数及显著性

首先要载入Hmisc这个包,因为我们要用这个包里面的rcorr函数,如果没有这个包,那就运行命令install.packages("Hmisc")安装即可。

题外话,这种蓝色的代码高亮,真是太好看了,我进而想到王者荣耀的皮肤那么多人购买真的是有很多人在乎颜值的,进而推测出我钻石五星段位的持久性与我没有氪金有很强的关联性,因为充钱的快乐只能N连胜的喜悦才可以体会。顺便说一句,当你N连跪之后就把游戏卸了洗洗睡吧,我今天都把腾讯的企业微信给投诉了,是截图投诉的,然后领导告诉我“知道为什么腾讯把你公众号封一个月吧?打游戏不氪金还瞎比比。。。”

> # 计算相关系数及显著性
> library(Hmisc)#加载包
> res2 <- rcorr(as.matrix(dd))
> res2
       V1    V2    V3    V4    V5    V6    V7    V8    V9   V10
V1   1.00 -0.05 -0.13 -0.04 -0.19 -0.06 -0.03  0.18 -0.02  0.01
V2  -0.05  1.00  0.03  0.04 -0.13  0.11  0.08 -0.03 -0.05 -0.09
V3  -0.13  0.03  1.00 -0.04 -0.02  0.02  0.01 -0.12 -0.05 -0.01
V4  -0.04  0.04 -0.04  1.00 -0.02 -0.09 -0.06  0.17 -0.17  0.25
V5  -0.19 -0.13 -0.02 -0.02  1.00  0.21 -0.01 -0.14 -0.04 -0.02
V6  -0.06  0.11  0.02 -0.09  0.21  1.00 -0.06  0.09  0.07 -0.03
V7  -0.03  0.08  0.01 -0.06 -0.01 -0.06  1.00  0.00 -0.13 -0.02
V8   0.18 -0.03 -0.12  0.17 -0.14  0.09  0.00  1.00  0.00  0.02
V9  -0.02 -0.05 -0.05 -0.17 -0.04  0.07 -0.13  0.00  1.00 -0.02
V10  0.01 -0.09 -0.01  0.25 -0.02 -0.03 -0.02  0.02 -0.02  1.00

n= 100 


P
    V1     V2     V3     V4     V5     V6     V7     V8     V9     V10   
V1         0.6246 0.2002 0.6632 0.0547 0.5767 0.7343 0.0706 0.8234 0.9135
V2  0.6246        0.7626 0.6650 0.1952 0.2567 0.4398 0.7435 0.6543 0.3653
V3  0.2002 0.7626        0.6576 0.8061 0.8573 0.9317 0.2544 0.5985 0.8866
V4  0.6632 0.6650 0.6576        0.8492 0.3737 0.5284 0.0950 0.1008 0.0139
V5  0.0547 0.1952 0.8061 0.8492        0.0392 0.9488 0.1628 0.6958 0.8741
V6  0.5767 0.2567 0.8573 0.3737 0.0392        0.5225 0.3515 0.4622 0.8046
V7  0.7343 0.4398 0.9317 0.5284 0.9488 0.5225        0.9979 0.2012 0.8398
V8  0.0706 0.7435 0.2544 0.0950 0.1628 0.3515 0.9979        0.9936 0.8107
V9  0.8234 0.6543 0.5985 0.1008 0.6958 0.4622 0.2012 0.9936        0.8225
V10 0.9135 0.3653 0.8866 0.0139 0.8741 0.8046 0.8398 0.8107 0.8225  

3. 显著性的可视化

上面有相关系数,有对应的显著性,但是R语言做完统计如果没有可视化,就像吃完饭没有喝汤,总感觉少了什么,那就可视化吧!

> library(PerformanceAnalytics)#加载包
> chart.Correlation(dd, histogram=TRUE, pch=19)

R语言中多列数据计算相关系数及其显著性_第1张图片

4. 完整代码

这就很魔幻了,我本来计划靠公众号年薪百万呢,真的有这个计划(),现在看起来,转为情感账号是不是更符合公众号的格调,因为这是育种数据分析,而育种主要在于选种选配,进而到看手相,八字,起名,婚前咨询,科学算命,情感账号很明显就是以后的发展方向啊,我忽然发现了一片蓝海。。。,我已经听到了海的声音。

长按扫码关注!

R语言中多列数据计算相关系数及其显著性_第2张图片

set.seed(123)
dd = as.data.frame(matrix(rnorm(1000),100,10))

head(dd)

# 计算相关系数及显著性
library(Hmisc)#加载包
res2 <- rcorr(as.matrix(dd))
res2

# 可视化
library(PerformanceAnalytics)#加载包
chart.Correlation(dd, histogram=TRUE, pch=19)


这是结尾,高中课文里面有一篇意识流的小说叫做《墙上的斑点》,现在看起来,我才读懂,如果没有这么好的编辑器,这篇博文肯定就像一堆大粪一样,让你捏着鼻子看完,然后说,好的,这是一篇介绍相关分析和显著性的R语言操作,和往常一样,没有理论解释,只有代码和结果,他可能对我有用,但是我不想再看第二遍!

你可能感兴趣的:(R语言)