(Pearson)皮爾遜相關係數和spearman相關係數(附python實現)

今天在做數據分析的時候,發現了需要計算特徵之間的相似度,從而在相似度比較高的特徵之間保留一個就行。查了一下,發現可以通過皮爾遜相關係數和spearman相關係數來計算特徵之間的相似度,下面將介紹這兩個係數和區別。

皮爾遜相關係數

下面是皮爾遜相關係數的計算公式,只需要將(X和Y的協方差)/(X的標準差*Y的標準差)

在這裏插入圖片描述
可以化簡成
在這裏插入圖片描述

spearman相關係數

在這裏插入圖片描述

簡單的相關係數的分類

那麼對於這兩個係數,怎樣的值纔是好的呢,遵循下面的關係

  • 0.8-1.0:極強相關
  • 0.6-0.8:強相關
  • 0.4-0.6:中等強度相關
  • 0.2-0.4:弱相關
  • 0.0-0.2:極弱或者無相關

區別

那麼有個問題,是所有的變量都可以用這兩個係數嗎,這兩個變量當然是有區別的,區別如下。

  1. 連續數據,正態分佈,線性關係,用pearson相關係數是最恰當,當然用spearman相關係數也可以,效率沒有pearson相關係數高。
  2. 上述任一條件不滿足,就用spearman相關係數,不能用pearson相關係數。
  3. 兩個定序測量數據(順序變量)之間也用spearman相關係數,不能用pearson相關係數。

代碼實現

import pandas as pd
data = loans_2007[["funded_amnt", "funded_amnt_inv"]]
#計算皮爾遜係數
print(data.corr())
#計算spearman係數
print(data.corr('spearman'))

這是結果,可以看出這兩個變量的相關性還是很高的



                 funded_amnt  funded_amnt_inv
funded_amnt         1.000000         0.947525
funded_amnt_inv     0.947525         1.000000
                 funded_amnt  funded_amnt_inv
funded_amnt          1.00000          0.92876
funded_amnt_inv      0.92876          1.00000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章