統計學三大相關性系數:pearson,spearman,kendall


目錄

    • person correlation coefficient(皮爾森相關性系數-r)
    • spearman correlation coefficient(斯皮爾曼相關性系數-p)
    • kendall correlation coefficient(肯德爾相關性系數-k)
    • R語言計算correlation

 

在文獻以及各種報告中,我們可以看到描述數據之間的相關性:pearson correlation,spearman correlation,kendall correlation。它們分別是什么呢?計算公式?怎樣用R語言簡單實現計算呢?本文一一介紹~
建議前期閱讀:協方差與相關系數-“傻傻”也能分清

總的來講,三個相關性系數(pearson, spearman, kendall)反應的都是兩個變量之間變化趨勢的方向以及程度,其值范圍為-1到+1,0表示兩個變量不相關,正值表示正相關,負值表示負相關,值越大表示相關性越強

person correlation coefficient(皮爾森相關性系數-r)

公式:
在這里插入圖片描述
兩個變量(X, Y)的皮爾森相關性系數(ρX,Y)等於它們之間的協方差cov(X,Y)除以它們各自標准差的乘積(σX, σY)。(分母是變量的標准差,這就意味着變量的標准差不能為0(分母不能為0),也就是說你每個變量所包含值不能都是相同的。如果沒有變化,方差為0,那么是無法計算的)

方差是表示一個變量的波動情況,方差越小表示數據越集中,越大表示數據越離散;
標准差:等於(或近似等於)方差的開根號;
協方差:可以理解成兩個變量之間的方差,其取值可以是負無窮到正無窮,它可以表示兩個變量之間的變化趨勢,但是不能表示它們之間的程度

局限性:

  • 實驗數據通常假設是成對的來自於正態分布的總體。為啥通常會假設為正態分布呢?因為我們在求皮爾森相關性系數以后,通常還會用t檢驗之類的方法來進行皮爾森相關性系數檢驗。
  • 實驗數據之間的差距不能太大,或者說皮爾森相關性系數受異常值的影響比較大。因為根據公式可以看到是直接是用x,y的值進行計算。相對應的spearman correlation對異常值不敏感,因為它是屬於rank test,具體見下面介紹。

spearman correlation coefficient(斯皮爾曼相關性系數-p)

通常也叫斯皮爾曼相關系數。

“秩”,可以理解成就是一種順序或者排序,那么它就是根據原始數據的排序位置進行求解,而不是直接是用x,y的值進行求解(因此對異常值不敏感,也不要求正態分布)。
公式:
在這里插入圖片描述
計算過程就是:

  1. 獲得秩次:記下原始X Y值得排序位置(X’, Y’),(X’, Y’)的值就稱為秩次
  2. 對兩個變量(X, Y)的數據進行排序
  3. 計算兩個變量秩次的差值,也就是上面公式中的di,n就是變量中數據的個數
  4. 最后帶入公式就可求解結果。
    舉個例子吧,假設我們實驗的數據如下:
    在這里插入圖片描述

帶入公式,求得斯皮爾曼相關性系數:ρ(s)= 1-6*(1+1+1+9)/6*35=0.657
不用管X和Y這兩個變量具體的值到底差了多少,只需要算一下它們每個值所處的排列位置的差值,就可以求出相關性系數了。(如果原始數據中有重復值,則在求秩次時要以它們的平均值為准)

優勢:

  • 即便在變量值沒有變化的情況下,也不會出現像皮爾森系數那樣分母為0而無法計算的情況。
  • 即使出現異常值,由於異常值的秩次通常不會有明顯的變化(比如過大或者過小,那要么排第一,要么排最后),所以對斯皮爾曼相關性系數的影響也非常小
  • 斯皮爾曼相關性系數沒有那些數據條件要求,適用的范圍廣

pearson和spearman都是衡量連續型變量間的相關性,那么如果是分類變量呢?

kendall correlation coefficient(肯德爾相關性系數-k)

肯德爾相關性系數,又稱肯德爾秩相關系數,它也是一種秩相關系數,不過它所計算的對象是分類變量。分類變量可以理解成有類別的變量,可以分為無序的,比如性別(男、女)、血型(A、B、O、AB),以及有序的,比如肥胖等級(重度肥胖,中度肥胖、輕度肥胖、不肥胖)。通常需要求相關性系數的都是有序分類變量

例子:比如評委對選手的評分(優、中、差等),我們想看兩個(或者多個)評委對幾位選手的評價標准是否一致;或者醫院的尿糖化驗報告,想檢驗各個醫院對尿糖的化驗結果是否一致,這時候就可以使用肯德爾相關性系數進行衡量。

由於數據情況不同,求得肯德爾相關性系數的計算公式不一樣,一般有3種計算公式,在這里就不繁瑣地列出計算公式了,具體感興趣的話可以自行搜尋資料。

R語言計算correlation

x <- c(seq(10))
y <- c(seq(11,20))
res <- cor.test(x, y,method = "pearson") # method 參數修改:“spearman","kendall"
# 具體見 ?cor.test

參考鏈接:聊聊統計學三大相關性系數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM