R 相关性分析_r相关性分析-程序员宅基地

技术标签: 相关  R语言  

R 相关性分析

1. 相关性矩阵计算:

  • 加载mtcars数据
> setwd("E:\\Rwork")
> data("mtcars")
> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
  • 计算两两相关系数
> cor(mtcars$mpg,mtcars$cyl)
[1] -0.852162
  • 计算矩阵相关系数
> matcar.cor <- cor(mtcars)
> matcar.cor
            mpg        cyl       disp         hp        drat         wt
mpg   1.0000000 -0.8521620 -0.8475514 -0.7761684  0.68117191 -0.8676594
cyl  -0.8521620  1.0000000  0.9020329  0.8324475 -0.69993811  0.7824958
disp -0.8475514  0.9020329  1.0000000  0.7909486 -0.71021393  0.8879799
hp   -0.7761684  0.8324475  0.7909486  1.0000000 -0.44875912  0.6587479
drat  0.6811719 -0.6999381 -0.7102139 -0.4487591  1.00000000 -0.7124406
wt   -0.8676594  0.7824958  0.8879799  0.6587479 -0.71244065  1.0000000
qsec  0.4186840 -0.5912421 -0.4336979 -0.7082234  0.09120476 -0.1747159
vs    0.6640389 -0.8108118 -0.7104159 -0.7230967  0.44027846 -0.5549157
am    0.5998324 -0.5226070 -0.5912270 -0.2432043  0.71271113 -0.6924953
gear  0.4802848 -0.4926866 -0.5555692 -0.1257043  0.69961013 -0.5832870
carb -0.5509251  0.5269883  0.3949769  0.7498125 -0.09078980  0.4276059
            qsec         vs          am       gear        carb
mpg   0.41868403  0.6640389  0.59983243  0.4802848 -0.55092507
cyl  -0.59124207 -0.8108118 -0.52260705 -0.4926866  0.52698829
disp -0.43369788 -0.7104159 -0.59122704 -0.5555692  0.39497686
hp   -0.70822339 -0.7230967 -0.24320426 -0.1257043  0.74981247
drat  0.09120476  0.4402785  0.71271113  0.6996101 -0.09078980
wt   -0.17471588 -0.5549157 -0.69249526 -0.5832870  0.42760594
qsec  1.00000000  0.7445354 -0.22986086 -0.2126822 -0.65624923
vs    0.74453544  1.0000000  0.16834512  0.2060233 -0.56960714
am   -0.22986086  0.1683451  1.00000000  0.7940588  0.05753435
gear -0.21268223  0.2060233  0.79405876  1.0000000  0.27407284
carb -0.65624923 -0.5696071  0.05753435  0.2740728  1.00000000

2. 相关系数的显著性水平

  • 使用Hmisc 包,计算矩阵相关系数及其对应的显著性水平
> library(Hmisc)
> res <- rcorr(as.matrix(mtcars))
> res
       mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
mpg   1.00 -0.85 -0.85 -0.78  0.68 -0.87  0.42  0.66  0.60  0.48 -0.55
cyl  -0.85  1.00  0.90  0.83 -0.70  0.78 -0.59 -0.81 -0.52 -0.49  0.53
disp -0.85  0.90  1.00  0.79 -0.71  0.89 -0.43 -0.71 -0.59 -0.56  0.39
hp   -0.78  0.83  0.79  1.00 -0.45  0.66 -0.71 -0.72 -0.24 -0.13  0.75
drat  0.68 -0.70 -0.71 -0.45  1.00 -0.71  0.09  0.44  0.71  0.70 -0.09
wt   -0.87  0.78  0.89  0.66 -0.71  1.00 -0.17 -0.55 -0.69 -0.58  0.43
qsec  0.42 -0.59 -0.43 -0.71  0.09 -0.17  1.00  0.74 -0.23 -0.21 -0.66
vs    0.66 -0.81 -0.71 -0.72  0.44 -0.55  0.74  1.00  0.17  0.21 -0.57
am    0.60 -0.52 -0.59 -0.24  0.71 -0.69 -0.23  0.17  1.00  0.79  0.06
gear  0.48 -0.49 -0.56 -0.13  0.70 -0.58 -0.21  0.21  0.79  1.00  0.27
carb -0.55  0.53  0.39  0.75 -0.09  0.43 -0.66 -0.57  0.06  0.27  1.00

n= 32 


P
     mpg    cyl    disp   hp     drat   wt     qsec   vs     am     gear  
mpg         0.0000 0.0000 0.0000 0.0000 0.0000 0.0171 0.0000 0.0003 0.0054
cyl  0.0000        0.0000 0.0000 0.0000 0.0000 0.0004 0.0000 0.0022 0.0042
disp 0.0000 0.0000        0.0000 0.0000 0.0000 0.0131 0.0000 0.0004 0.0010
hp   0.0000 0.0000 0.0000        0.0100 0.0000 0.0000 0.0000 0.1798 0.4930
drat 0.0000 0.0000 0.0000 0.0100        0.0000 0.6196 0.0117 0.0000 0.0000
wt   0.0000 0.0000 0.0000 0.0000 0.0000        0.3389 0.0010 0.0000 0.0005
qsec 0.0171 0.0004 0.0131 0.0000 0.6196 0.3389        0.0000 0.2057 0.2425
vs   0.0000 0.0000 0.0000 0.0000 0.0117 0.0010 0.0000        0.3570 0.2579
am   0.0003 0.0022 0.0004 0.1798 0.0000 0.0000 0.2057 0.3570        0.0000
gear 0.0054 0.0042 0.0010 0.4930 0.0000 0.0005 0.2425 0.2579 0.0000       
carb 0.0011 0.0019 0.0253 0.0000 0.6212 0.0146 0.0000 0.0007 0.7545 0.1290
     carb  
mpg  0.0011
cyl  0.0019
disp 0.0253
hp   0.0000
drat 0.6212
wt   0.0146
qsec 0.0000
vs   0.0007
am   0.7545
gear 0.1290
carb       
> signif(res$r, 2)
       mpg   cyl  disp    hp   drat    wt   qsec    vs     am  gear   carb
mpg   1.00 -0.85 -0.85 -0.78  0.680 -0.87  0.420  0.66  0.600  0.48 -0.550
cyl  -0.85  1.00  0.90  0.83 -0.700  0.78 -0.590 -0.81 -0.520 -0.49  0.530
disp -0.85  0.90  1.00  0.79 -0.710  0.89 -0.430 -0.71 -0.590 -0.56  0.390
hp   -0.78  0.83  0.79  1.00 -0.450  0.66 -0.710 -0.72 -0.240 -0.13  0.750
drat  0.68 -0.70 -0.71 -0.45  1.000 -0.71  0.091  0.44  0.710  0.70 -0.091
wt   -0.87  0.78  0.89  0.66 -0.710  1.00 -0.170 -0.55 -0.690 -0.58  0.430
qsec  0.42 -0.59 -0.43 -0.71  0.091 -0.17  1.000  0.74 -0.230 -0.21 -0.660
vs    0.66 -0.81 -0.71 -0.72  0.440 -0.55  0.740  1.00  0.170  0.21 -0.570
am    0.60 -0.52 -0.59 -0.24  0.710 -0.69 -0.230  0.17  1.000  0.79  0.058
gear  0.48 -0.49 -0.56 -0.13  0.700 -0.58 -0.210  0.21  0.790  1.00  0.270
carb -0.55  0.53  0.39  0.75 -0.091  0.43 -0.660 -0.57  0.058  0.27  1.000
  • 提取矩阵相关及其P值
> CorMatrix <- function(cor,p) {
+                               ut <- upper.tri(cor) 
+                               data.frame(row = rownames(cor)[row(cor)[ut]] ,
+                               column = rownames(cor)[col(cor)[ut]], 
+                               cor =(cor)[ut], 
+                               p = p[ut] )
+ }
> 
> 
> res <- rcorr(as.matrix(mtcars))
> CorMatrix (res$r, res$P)
    row column         cor            p
1   mpg    cyl -0.85216196 6.112688e-10
2   mpg   disp -0.84755138 9.380328e-10
3   cyl   disp  0.90203287 1.803002e-12
4   mpg     hp -0.77616837 1.787835e-07
5   cyl     hp  0.83244745 3.477861e-09
6  disp     hp  0.79094859 7.142679e-08
7   mpg   drat  0.68117191 1.776240e-05
8   cyl   drat -0.69993811 8.244636e-06
9  disp   drat -0.71021393 5.282022e-06
10   hp   drat -0.44875912 9.988772e-03
11  mpg     wt -0.86765938 1.293958e-10
12  cyl     wt  0.78249579 1.217567e-07
13 disp     wt  0.88797992 1.222311e-11
14   hp     wt  0.65874789 4.145827e-05
15 drat     wt -0.71244065 4.784260e-06
16  mpg   qsec  0.41868403 1.708199e-02
17  cyl   qsec -0.59124207 3.660533e-04
18 disp   qsec -0.43369788 1.314404e-02
19   hp   qsec -0.70822339 5.766253e-06
20 drat   qsec  0.09120476 6.195826e-01
21   wt   qsec -0.17471588 3.388683e-01
22  mpg     vs  0.66403892 3.415937e-05
23  cyl     vs -0.81081180 1.843018e-08
24 disp     vs -0.71041589 5.235012e-06
25   hp     vs -0.72309674 2.940896e-06
26 drat     vs  0.44027846 1.167553e-02
27   wt     vs -0.55491568 9.798492e-04
28 qsec     vs  0.74453544 1.029669e-06
29  mpg     am  0.59983243 2.850207e-04
30  cyl     am -0.52260705 2.151207e-03
31 disp     am -0.59122704 3.662114e-04
32   hp     am -0.24320426 1.798309e-01
33 drat     am  0.71271113 4.726790e-06
34   wt     am -0.69249526 1.125440e-05
35 qsec     am -0.22986086 2.056621e-01
36   vs     am  0.16834512 3.570439e-01
37  mpg   gear  0.48028476 5.400948e-03
38  cyl   gear -0.49268660 4.173297e-03
39 disp   gear -0.55556920 9.635921e-04
40   hp   gear -0.12570426 4.930119e-01
41 drat   gear  0.69961013 8.360110e-06
42   wt   gear -0.58328700 4.586601e-04
43 qsec   gear -0.21268223 2.425344e-01
44   vs   gear  0.20602335 2.579439e-01
45   am   gear  0.79405876 5.834043e-08
46  mpg   carb -0.55092507 1.084446e-03
47  cyl   carb  0.52698829 1.942340e-03
48 disp   carb  0.39497686 2.526789e-02
49   hp   carb  0.74981247 7.827810e-07
50 drat   carb -0.09078980 6.211834e-01
51   wt   carb  0.42760594 1.463861e-02
52 qsec   carb -0.65624923 4.536949e-05
53   vs   carb -0.56960714 6.670496e-04
54   am   carb  0.05753435 7.544526e-01
55 gear   carb  0.27407284 1.290291e-01

3. 可视化相关性分析

1. symnum() function

> cor_matr <- cor(mtcars)
> symnum(cor_matr)
     m cy ds h dr w q v a g cr
mpg  1                        
cyl  + 1                      
disp + *  1                   
hp   , +  ,  1                
drat , ,  ,  . 1              
wt   + ,  +  , ,  1           
qsec . .  .  ,      1         
vs   , +  ,  , .  . , 1       
am   . .  .    ,  ,     1     
gear . .  .    ,  .     , 1   
carb . .  .  ,    . , .     1 
attr(,"legend")
[1] 0 ‘ ’ 0.3 ‘.’ 0.6 ‘,’ 0.8 ‘+’ 0.9 ‘*’ 0.95 ‘B’ 1

2. corrplot() function to plot a correlogram


library(corrplot) 
matcar.cor <- cor(mtcars)

round(matcar.cor, 2)
class(matcar.cor)

corrplot(matcar.cor)



corrplot(matcar.cor, order = "AOE", method = "color",
        addCoef.col = "gray")

corrplot.mixed(matcar.cor, order = "AOE")

corrplot(matcar.cor, method = "ellipse")

3. scatter plots

library(PerformanceAnalytics)
chart.Correlation(mtcars,histogram = TRUE,pch=19)

4. heatmap


matcar.cor <- cor(mtcars)
col<- colorRampPalette(c("blue", "white", "red"))(20)#调用颜色版自定义颜色
heatmap(x = matcar.cor, col = col, symm = TRUE)#symm表示是否对称

5.ggcorrplot

  • 添加P值,不显著用白色显示
setwd("E:\\Rwork")
data("mtcars")
head(mtcars)
library(ggcorrplot)
#计算相关矩阵(cor()计算结果不提供p-value)
data("mtcars")
corr <- round(cor(mtcars), 2)
head(corr[, 1:6])

#用ggcorrplot包提供的函数cor_pmat()
p.mat <- cor_pmat(mtcars)
head(p.mat[, 1:4])


ggcorrplot(corr, hc.order = TRUE, type = "lower", p.mat = p.mat)

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gavin_cdc/article/details/103492370

智能推荐

100个Github上Android开源库-程序员宅基地

文章浏览阅读49次。项目名称项目简介1. react-native这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web 应用和 Native 应用的优势, 可以使用 JavaScript 来开发 iOS 和 Android 原生应用2.Android-Uni..._android 100个库

Gradle系列——Groovy面向对象(基于Groovy文档4.0.4)day2-2_groovy脚本可以继承吗-程序员宅基地

文章浏览阅读206次。定义类和方法时,可以使用类型参数并创建泛型类、接口、方法或构造函数。类和类成员可以具有与Java中相同的修饰符(public、protected、private、static等)泛型类和方法的使用,无论它们是否在Java中定义或Groovy,可能涉及提供类型参数。关键字,Groovy同样也不支持多重继承,可以继承类或者接口(类继承类,接口继承接口)闭包是一个开放的、匿名的代码块,它可以接受参数、也可以有返回值。关键字声明,否则认为是带有方法体的方法。关键字设置位抽象类,方法也必须用。..._groovy脚本可以继承吗

云数据库知识学习——云数据库产品、云数据库系统架构_云数据库相关知识-程序员宅基地

文章浏览阅读1.2k次。UMP 系统是低成本和高性能的 MySQL 云数据库方案,关键模块采用 Erlang 语言实现。开发者通过网络从平台上申请 MySQL 实例资源,由平台提供的单一入口来访问数据。UMP系统把各种服务器资源划分为资源池,并以资源池为单位把资源分配给 MySQL 实例。系统中包含了一系列组件,这些组件协同工作,以对用户透明的形式提供主从热备、数据备份、迁移、容灾、读写分离、分库分表等一系列服务。系统内部划分为 3 种规格的用户,分别是数据量和流量比较小的用户、中等规模用户以及需要分库分表的用户。_云数据库相关知识

字符串匹配_q-grams 匹配-程序员宅基地

文章浏览阅读166次。数据集成原理-字符串匹配_q-grams 匹配

Task02:文本预处理;语言模型;循环神经网络基础_self.token_to_idx.get(tokens, self.unk)-程序员宅基地

文章浏览阅读680次,点赞3次,收藏7次。Task02: 文本预处理;语言模型;循环神经网络基础1、文本预处理摘要:自然语言处理NLP(Natural Language Processing),顾名思义,就是使用计算机对语言文字进行处理的相关技术。在对文本做分析时,我们一大半的时间都会花在文本预处理上,而中文和英文的预处理流程稍有不同。文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理..._self.token_to_idx.get(tokens, self.unk)

python数据容器详解_python数据容器包括-程序员宅基地

文章浏览阅读1.3k次,点赞30次,收藏38次。python数据容器详解,包括列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict),对以上数据容器进行讲解对比_python数据容器包括

随便推点

使用ExtJS做一个用户的增删改查-程序员宅基地

文章浏览阅读136次。extjs版本为4.2,用户数据放在静态list中存储    User.java 1 package com.ext.demo.dao; 2 3 public class User { 4 private int id; 5 private String name; 6 private String loginName; 7..._使用extjs4.2增删改查

word设置页码(不同分节符的页码设置)(全网最超级详细)_word 分节符 设置页码共多少页-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏2次。注意【节与节之间】都有一个默认页码连续的设置,就是【链接到上一节】是默认开启的,需要鼠标点击下,就可以取消该功能。如下这里有4页,我们目标是分成2节内容,并且每节设置不一样的页码。备注:【链接到上一节】又分为页眉链接到上一节、和页码链接到上一节。在设置下页码的起始数字。_word 分节符 设置页码共多少页

LDAP服务器搭建教程-程序员宅基地

文章浏览阅读395次。您可以使用ldapmodify和ldapdelete命令来修改和删除LDAP服务器中的条目。在本教程中,我们将详细介绍如何在Linux系统上搭建LDAP服务器。[No]: 选择 “No”。Organization name: 输入您的组织名称,例如 Example Organization。[No]: 选择 “No”。在安装过程中,您将被要求设置管理员密码。[No]: 选择 “No”。您将被要求输入管理员密码。导入成功后,LDAP服务器将包含该条目。完成配置后,LDAP服务器将根据您提供的信息进行设置。_ldap服务器搭建

ubuntu 14.04 server(amd64) 安装ros indigo-程序员宅基地

文章浏览阅读127次。1.添加软件源(添加了正确的软件源,操作系统就知道去哪里下载程序,并根据命令自动安装软件) sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'2.安装软件包授权密钥(1)在当前目录生成ro..._ubuntu server ros

flink standalone 部署模式且不能使用 hdfs 场景下的各种问题及其应对方案_为什么flink不推荐私用standalone模式-程序员宅基地

文章浏览阅读1.5k次。点击上方蓝色“明哥的IT随笔”,关注并选择“设为星标”,keep striving! 欢迎关注知乎同名专栏!一。背景笔者所在公司某系统在某证券公司现场部署时,客户出于自己集群使用规划的考量..._为什么flink不推荐私用standalone模式

Android中的按键和触屏事件_android apk 兼容触屏和按键-程序员宅基地

文章浏览阅读752次。android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个ViewGroup又包含_android apk 兼容触屏和按键

推荐文章

热门文章

相关标签