美文网首页
《Discovering Statistics Using R》

《Discovering Statistics Using R》

作者: 新云旧雨 | 来源:发表于2020-04-10 22:16 被阅读0次

    笔记说明

    读《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相关系数 r_s是一个非参数统计量,也称为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, \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 
    

    相关文章

      网友评论

          本文标题:《Discovering Statistics Using R》

          本文链接:https://www.haomeiwen.com/subject/fahephtx.html