皮爾森相關(guān)系數(shù)是一種最簡單的反應特征和響應之間關(guān)系的方法砰粹。
這個方法衡量的是變量之間的線性相關(guān)性。
結(jié)果的取值區(qū)間為[-1,1]许起。-1表示完全的負相關(guān)笋熬,+1表示完全的正相關(guān)热某,0表示沒有線性相關(guān)。
皮爾森相關(guān)系數(shù)有一個明顯的缺陷就是突诬,它只對線性關(guān)系敏感苫拍。如果關(guān)系是非線性的芜繁,哪怕兩個變量之間是一一對應的關(guān)系旺隙,皮爾森相關(guān)系數(shù)也可能接近0.
from pandas import read_csv
import numpy as np
from scipy.stats import pearsonr
def PearsonrCorrelation():
tps = read_csv('E:\workfile\data\trade\tps.csv', header=0)
label = np.array(tps)[:, 0]
feature = np.array(tps)[:, 1:]
for i in range(0, len(feature[0])):
print("第'%i'屬性的皮爾森相關(guān)系數(shù)為" % (i+1), pearsonr(label, feature[:, i]))
這是我的代碼和數(shù)據(jù)的運行結(jié)果。
還是依照慣例骏令,跟進去看一下源碼和說明文字蔬捷。
上面的說明信息,皮爾森相關(guān)系數(shù)描述的是線性關(guān)系榔袋。嚴格來說周拐,需要數(shù)據(jù)集是正態(tài)分布的,但不必是零均值的凰兑。
從代碼里可以看出來妥粟,只能計算兩組數(shù)據(jù)之間的皮爾森相關(guān)系數(shù),不能批量計算吏够。
返回值的第一項是皮爾森相關(guān)系數(shù)勾给,第二項是p_value值滩报。一般來說皮爾森相關(guān)系數(shù)越大,p_value越小播急,線性相關(guān)性就越大脓钾。但是看到note里講的。p_value不是完全的可靠桩警,當數(shù)據(jù)量大于500的時候可训,可能是合理的。