皮爾森相關係數(Pearson Correlation)

airland發表於2021-09-09

皮爾森相關係數是一種最簡單的反應特徵和響應之間關係的方法。

這個方法衡量的是變數之間的線性相關性。

結果的取值區間為[-1,1]。-1表示完全的負相關,+1表示完全的正相關,0表示沒有線性相關。

皮爾森相關係數有一個明顯的缺陷就是,它只對線性關係敏感。如果關係是非線性的,哪怕兩個變數之間是一一對應的關係,皮爾森相關係數也可能接近0.

from pandas import read_csv
import numpy as np
from scipy.stats import pearsonr

def PearsonrCorrelation():
tps = read_csv('E:workfiledatatradetps.csv', header=0)
label = np.array(tps)[:, 0]
feature = np.array(tps)[:, 1:]

for i in range(0, len(feature[0])):    print("第'%i'屬性的皮爾森相關係數為" % (i+1), pearsonr(label, feature[:, i]))

圖片描述

image.png

這是我的程式碼和資料的執行結果。
還是依照慣例,跟進去看一下原始碼和說明文字。


圖片描述

image.png


上面的說明資訊,皮爾森相關係數描述的是線性關係。嚴格來說,需要資料集是正態分佈的,但不必是零均值的。
從程式碼裡可以看出來,只能計算兩組資料之間的皮爾森相關係數,不能批次計算。


圖片描述

image.png


圖片描述

image.png

返回值的第一項是皮爾森相關係數,第二項是p_value值。一般來說皮爾森相關係數越大,p_value越小,線性相關性就越大。但是看到note裡講的。p_value不是完全的可靠,當資料量大於500的時候,可能是合理的。



作者:曦寶
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/964/viewspace-2816516/,如需轉載,請註明出處,否則將追究法律責任。

相關文章