R计算两列数据的相关系数_R语言入门之相关性

今天这一期的内容主要是如何在R中进行数据之间的相关性分析,其实这一部分的内容和独立性检验的有点类似,大家可以对比着学习!

1. 相关性度量的assocstats()函数

在这里,我想和大家简单介绍一下如何度量列联表里分类变量之间的相关性。我们可以使用“vcd”包里的assocstats(x) 函数,这里x是一个列联表,示例如下:

A <- c(rep("male",15),rep("female",20),rep("male",15))# 创建变量A
B <- c(rep("healthy",4),rep("sick",35),rep("healthy",11)) # 创建变量B
C <- c(rep("smoker",26), rep("nonsmoker",24)) # 创建变量C
mydata <- data.frame(A,B,C) # 利用以创建的变量构建数据框
library(vcd) #加载R包
mytable <- xtabs(~C+B+A, data=mydata) #生成列联表
assocstats(mytable) #计算关联度

d4e2e4c73b5641bba07a8acc4cf09f47.png

从结果中可以看到,男性中的吸烟和患病有一定相关性(Phi-Coefficient=0.467 > 0.3,P值小于0.05)。由于数据的问题,女性没有计算出结果来,因为表格里有数据是0。

2. 协方差与相关系数

在R中你可以使用基础函数cor()来计算相关系数,用cov()函数来计算协方差。

其简单使用如下:

cor(x, use=, method= ),这里x是矩阵或者数据框,参数use=是用来指定缺失值的处理方法,而method=则是用来指定计算方法,默认的是计算Pearson相关系数。

# 计算mtcars数据集里变量之间的相关系数,删除缺失值 
cor(mtcars, use="complete.obs", method="kendall") #计算kendall相关系数
cov(mtcars, use="complete.obs") #计算协方差

不过,cor()和cov()不能进行显著性检验,虽然可以用corr.test()去进行单次的显著性检验,但这略显麻烦。

这里我想大家推荐使用”psych”包的corr.test()函数,它不仅给出相关系数,也给出各个相关系数的p值,使用很方便。

library(psych) #加载R包
corr.test(mtcars) #计算相关系数及其显著性
#另外我们也可以绘制相关系数图
data <- corr.test(mtcars)
r <- data$r
p <- data$p
corPlot(r,pval=p,numbers=TRUE,diag=FALSE,stars=TRUE)

d585cbea55b3f125309739e9de106674.png

上面这幅图很好地展示了各个变量之间的相关系数及显著性,数字部分代表相关系数,星号代表显著性,星号越多表明越显著。

好了,今天的内容就分享到这里,最后提醒一下大家,“psych”包真的很强大,大家学有余力的时候一定要好好掌握它!

  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值