R语言相关性分析函数2021.3.10
2021-03-14 本文已影响0人
R语言_茶味先生
1. 相关性分析定义
相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。简单来说就是变量之间是否有关系。用正负号表示正相关还是负相关,数值(一般都在-1到1之间)表示相关程度的强弱。
相关性衡量指标包括Pearson相关系数、Spearman相关系数、Kendall相关系数、偏相关系数、多分格(polychoric)相关系数和多系列(polyserial )相关系数等,定义以及各自的优缺点自己查。
2. 相关性分析函数
2.1 cor函数
cor函数计算的是列与列间的相关系数,可以计算三种相关系数,包括Pearson相关系数、Spearman相关系数、Kendall相关系数,默认是Pearson相关系数,也可以使用method参数来指定另外两种相关系数。
state.x77#导入数据
cor(state.x77,method="pearson")#Pearson相关系数法计算相关系数
结果是一个对角矩阵,自己和自己的相关系数(对角线值)均为1。
从结果可以看出,文盲率和犯罪率有很强的正相关关系,而收入和犯罪率呈负相关。
图1 Pearson相关系数法计算相关系数
面对大数据时,可以只计算一组变量与另一组变量之间的关系,而不要将所有变量间都计算一次,cor函数也可以很好的实现。
x<-state.x77[,c(1,2,3,6)]#取1,2,3,6列
y<-state.x77[,c(4,5)]#取4,5列
cor(x,y)#计算列与列之间的相关系数
图2 Pearson相关系数算法计算列与列之间的相关系数
2.2 pcor函数
cor函数只能计算三种算法,像相关系数、多分格(polychoric)相关系数和多系列(polyserial )相关系数等可以通过R软件的扩展包来实现。例如ggm包可以用pcor函数来实现偏相关系数计算,这个函数有两个参数,第一个参数是一个数值向量,前两个数值表示要计算相关系数的下标,其余的数值为条件变量的下标。第二个参数是cov函数计算出来的协方差结果。
install.packages("ggm")
library(ggm)
colnames(state.x77)
pcor(c(1,5,2,3,6),cov(state.x77))
#pcor函数来实现偏相关系数计算,前两个数值表示要计算相关系数的下标,其余的数值为条件变量的下标。
图3 pcor函数来实现偏相关系数计算
2.3 cov函数
cov函数计算的是列与列的协方差,可以衡量两个变量的总体误差。在计算偏相关的时候可以用到协方差的结果。默认是Pearson相关系数,也可以使用method参数来指定另外两种相关系数。
cov(state.x77,method="pearson")#Pearson相关系数法计算协方差
图4 Pearson相关系数算法计算协方差