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

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为变量的协方差阵

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

> library(ggm)

> colnames(states)

[1] "Population" "Income" "Illiteracy" "LifeExp" "Murder""HS Grad"

> pcor(c(1,5,2,3,6),cov(states))

[1] 0.346

本例中,在控制了收入、文盲率和高中毕业率的影响时,人口和谋杀率之间的相关系数为0.346。偏相关系数常用于社会科学的研究中

相关性的显著性检验:

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

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮肤小白生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值