R语言入门之相关性

时间:2022-07-22
本文章向大家介绍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) #计算关联度

从结果中可以看到,男性中的吸烟和患病有一定相关性(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)

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

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