R语言:计算变量间相关系数+导出矩阵结果

  • 相关系数可以用来描述定量变量之间的关系

  • 相关系数的符号(±)表明关系的方向(正相关或负相关)

  • 其值的大小表示关系的强弱程度

  • (完全不相关时为0,完全相关时为1)

R语言:计算变量间相关系数+导出矩阵结果-LMLPHP

相关的类型

  • Pearson相关系数

  • Spearman相关系数

  • Kendall相关系数

  • 偏相关系数

  • 多分格(polychoric)相关系数

  • 多系列(polyserial)相关系数

(1)Pearson相关系数:用来衡量两个定量变量之间的线性相关程度cor()函数

(2)Spearman等级相关系数:衡量分级定序变量之间的相关程度cor()函数

(3)Kendall相关系数:是一种非参数的等级相关度量cor()函数

  • cor(x, use= , method= )

R语言:计算变量间相关系数+导出矩阵结果-LMLPHP

摘自《R语言实战》

  • 默认参数为use="everything"和method="pearson"

  • 注:在默认情况下得到的结果是一个方阵(所有变量之间两两计算相关)

(4)偏相关

  • 是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系

  • 用ggm包中的pcor()函数计算偏相关系数pcor(u, S)

  • 其中的u是一个数值向量

  • 前两个数值表示要计算相关系数的变量下标【下面例子中的1,5】

  • 其余的数值为条件变量(即要排除影响的变量)的下标【2,3,6】

  • S为变量的协方差阵

  • 这个示例有助于阐明用法

    R语言:计算变量间相关系数+导出矩阵结果-LMLPHP

R语言:计算变量间相关系数+导出矩阵结果-LMLPHP

相关性的显著性检验:

(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")

04-21 19:27