笔记说明
读《Discovering Statistics Using R》第六章 Correlation中的6.5.5-6.5.6节做的笔记。主要是介绍Spearman相关系数和Kendall’s tau相关系数。
示例数据
设我们想要验证一个理论:创造力更强的人可以讲出更厉害的故事。有这么一个比赛“the World's Biggest Liar competition”每年举办一次。作者收集了68个参赛者的比赛名次数据并让他们做了一份考察创造力的量表,满分60分。数据在这里:The Biggest Liar.dat
library(rio)
liarData <- import("data/The Biggest Liar.dat")
str(liarData)
## 'data.frame': 68 obs. of 3 variables:
## $ Creativity: int 53 36 31 43 30 41 32 54 47 50 ...
## $ Position : int 1 3 4 2 4 1 4 1 2 2 ...
## $ Novice : int 0 1 0 0 1 0 0 1 1 0 ...
Position即为比赛名次,Creativity即为创造力评分。
由于position变量为定序变量,而Pearson相关系数要求数据为定距变量,不适合使用Pearson相关系数。
仍然是先做一个散点图看一下数据情况:
#散点图
library(ggplot2)
scatter <- ggplot(liarData, aes(Creativity, Position)) + geom_point()
Spearman相关系数
Spearman相关系数 是一个非参数统计量,也称为Spearman's rho,可用于数据违反参数假设(例如正态性假设)的情形。计算Spearman相关系数时首先将原始数据从小到达排序编秩,对排序后的秩次计算Pearson相关系数即为原数据的Spearman相关系数。
和Pearson相关系数一样,Spearman相关系数可以使用cor()
、cor.test()
进行计算和检验,只需指定method='spearman'
即可:
cor(liarData$Creativity, liarData$Position, method = 'spearman')
## [1] -0.3732184
cor.test(liarData$Creativity, liarData$Position,method = 'spearman')
## Spearman's rank correlation rho
##
## data: liarData$Creativity and liarData$Position
## S = 71948, p-value = 0.00172
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## -0.3732184
##
## Warning message:
## In cor.test.default(liarData$Creativity, liarData$Position, method = "spearman") :
## 无法给连结计算精確p值
cor.test()
对Spearman相关系数的结果和Pearson相关系数的很像。但没有置信区间(如果需要计算置信区间可以用bootstrap法,见之后章节的笔记)
Kendall's tau相关系数
Kendall's tau, ,也是一个非参数相关系数,当样本量较小,排序编秩时相同秩次的数又比较多时使用。
Spearman相关系数和Kendall's tau相关系数都是非参数相关系数,虽然Spearman相关系数更多见,有文献(Howell,1997)表明Kendall's tau相关系数实际上是总体相关关系更好的估计。
示例数据中Position
变量有很多值都是编秩时秩次相同的,上面用cor.test()
计算并检验Spearman相关系数时结果中有一条warning中所说的“连结”就是指tied ranks,秩次相同的情况有些多。
和之前介绍的其他两个相关系数一样,Kendall's tau相关系数可以使用cor()
、cor.test()
进行计算和检验,只需指定method='kendall'
即可:
#Kendall's tau相关系数
cor(liarData$Creativity, liarData$Position, method = 'kendall')
cor.test(liarData$Creativity, liarData$Position,method = 'kendall')
## Kendall's rank correlation tau
##
## data: liarData$Creativity and liarData$Position
## z = -3.2252, p-value = 0.001259
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## -0.3002413