R语言:计算变量间相关系数+导出矩阵结果
-
相关系数可以用来描述定量变量之间的关系
-
相关系数的符号(±)表明关系的方向(正相关或负相关)
-
其值的大小表示关系的强弱程度
-
(完全不相关时为0,完全相关时为1)
相关的类型
-
Pearson相关系数
-
Spearman相关系数
-
Kendall相关系数
-
偏相关系数
-
多分格(polychoric)相关系数
-
多系列(polyserial)相关系数
(1)Pearson相关系数:用来衡量两个定量变量之间的线性相关程度cor()函数
(2)Spearman等级相关系数:衡量分级定序变量之间的相关程度cor()函数
(3)Kendall相关系数:是一种非参数的等级相关度量cor()函数
-
cor(x, use= , method= )
摘自《R语言实战》
-
默认参数为use="everything"和method="pearson"
-
注:在默认情况下得到的结果是一个方阵(所有变量之间两两计算相关)
(4)偏相关
-
是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系
-
用ggm包中的pcor()函数计算偏相关系数pcor(u, S)
-
其中的u是一个数值向量
-
前两个数值表示要计算相关系数的变量下标【下面例子中的1,5】
-
其余的数值为条件变量(即要排除影响的变量)的下标【2,3,6】
-
S为变量的协方差阵
-
这个示例有助于阐明用法
:
相关性的显著性检验:
(1)cor.test()函数:cor.test(x, y, alternative = ,method = )
-
缺点:每次只能检验一种相关关系
-
其中的x和y为要检验相关性的变量
-
alternative则用来指定进行双侧检验或单侧检验(取值为"two.side"、"less"或"greater")
-
method用以指定要计算的相关类型("pearson"、"kendall" 或 "spearman" )
-
当研究的假设为总体的相关系数小于0时,请使用alternative="less"
-
在研究的假设为总体的相关系数大于0时,应使用alternative="greater"
-
在默认情况下,alternative="two.side"(总体相关系数不等于0)
(2)psych包中提供的corr.test()函数:可以为Pearson、Spearman或Kendall相关计算相关矩阵和显著性水平。【优选】corr.test(states, use="complete")
-
参数use=的取值可为"pairwise"或"complete"(分别表示对缺失值执行成对删除或行删除)
-
参数method=的取值可为"pearson"(默认值)、"spearman"或"kendall"
代码如下
#相关系数计算
states<- state.x77[,1:6]
cov(states)#cov()函数可用来计算协方差,#默认参数为use="everything"和 method="pearson"
cor(states)#cor()函数计算三种相关系数
cor(states, method="spearman")#等级相关系数
#计算非方形的相关矩阵
x <- states[, c("Population", "Income", "Illiteracy", "HS Grad")]
y <- states[, c("Life Exp", "Murder")]
cor(x, y)
#偏相关系数计算
library(ggm)
colnames(states)
pcor(c(1,5,2,3,6), cov(states))#pcor()前两个数值表示要计算相关系数的变量
#相关性的显著性检验
cor.test(states[, 3], states[, 5])
library(psych)
corr.test(states, use = "complete")