pearson相关系数_Pearson(皮尔逊)相关系数
由于使用的統計相關系數比較頻繁,所以這里就利用幾篇文章簡單介紹一下這些系數。
相關系數:考察兩個事物(在數據里我們稱之為變量)之間的相關程度。
如果有兩個變量:X、Y,最終計算出的相關系數的含義可以有如下理解:
(1)、當相關系數為0時,X和Y兩變量無關系。
(2)、當X的值增大(減小),Y值增大(減小),兩個變量為正相關,相關系數在0.00與1.00之間。
(3)、當X的值增大(減小),Y值減小(增大),兩個變量為負相關,相關系數在-1.00與0.00之間。
相關系數的絕對值越大,相關性越強,相關系數越接近于1或-1,相關度越強,相關系數越接近于0,相關度越弱。
通常情況下通過以下取值范圍判斷變量的相關強度:
相關系數???0.8-1.0?????極強相關
???????????????? 0.6-0.8???? 強相關
???????????????? 0.4-0.6???? 中等程度相關
???????????????? 0.2-0.4???? 弱相關
???????????????? 0.0-0.2???? 極弱相關或無相關
皮爾森(pearson)相關系數
在這三大相關系數中,spearman和kendall屬于等級相關系數亦稱為“秩相關系數”,是反映等級相關程度的統計分析指標。今天暫時用不到,所以現在只做pearson的相關研究。
??? 首先放上公式:
???? 公式定義為:?兩個連續變量(X,Y)的pearson相關性系數(Px,y)等于它們之間的協方差cov(X,Y)除以它們各自標準差的乘積(σX,σY)。系數的取值總是在-1.0到1.0之間,接近0的變量被成為無相關性,接近1或者-1被稱為具有強相關性。
根據以上公式,python3實現代碼:
def pearson(vector1, vector2):
n = len(vector1)
#simple sums
sum1 = sum(float(vector1[i]) for i in range(n))
sum2 = sum(float(vector2[i]) for i in range(n))
#sum up the squares
sum1_pow = sum([pow(v, 2.0) for v in vector1])
sum2_pow = sum([pow(v, 2.0) for v in vector2])
#sum up the products
p_sum = sum([vector1[i]*vector2[i] for i in range(n)])
#分子num,分母den
num = p_sum - (sum1*sum2/n)
den = math.sqrt((sum1_pow-pow(sum1, 2)/n)*(sum2_pow-pow(sum2, 2)/n))
if den == 0:
return 0.0
return num/den
現在,用兩個向量測試一下:vector1 = [2,7,18,88,157,90,177,570]
vector2 = [3,5,15,90,180, 88,160,580]
運行結果為0.998,可見這兩組數是高度正相關的。
此外,從上面的公式我們知道,皮爾森相關性系數是協方差與標準差的比值,所以它對數據是有比較高的要求的:
第一, 實驗數據通常假設是成對的來自于正態分布的總體。為啥通常會假設為正態分布呢?因為我們在求皮爾森相關性系數以后,通常還會用t檢驗之類的方法來進行皮爾森相關性系數檢驗,而 t檢驗是基于數據呈正態分布的假設的。
第二, 實驗數據之間的差距不能太大,或者說皮爾森相關性系數受異常值的影響比較大。例如心跳與跑步的例子,萬一這個人的心臟不太好,跑到一定速度后承受不了,突發心臟病,那這時候我們會測到一個偏離正常值的心跳(過快或者過慢,甚至為0),如果我們把這個值也放進去進行相關性分析,它的存在會大大干擾計算的結果的。
總結
以上是生活随笔為你收集整理的pearson相关系数_Pearson(皮尔逊)相关系数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排列组合思维导图_排列组合——排列数专题
- 下一篇: 双离合档把上按钮作用_英特尔展示双屏幕概