三大相關(guān)系數(shù): pearson, spearman, kendall
統(tǒng)計(jì)學(xué)中的三大相關(guān)性系數(shù):pearson, spearman, kendall,他們反應(yīng)的都是兩個變量之間變化趨勢的方向以及程度,其值范圍為-1到+1。
0表示兩個變量不相關(guān),正值表示正相關(guān),負(fù)值表示負(fù)相關(guān),值越大表示相關(guān)性越強(qiáng)。
1. person correlation coefficient(皮爾森相關(guān)性系數(shù))
皮爾遜相關(guān)系數(shù)通常用r或ρ表示,度量兩變量X和Y之間相互關(guān)系(線性相關(guān))
(1)公式
皮爾森相關(guān)性系數(shù)的值等于它們之間的協(xié)方差cov(X,Y)除以它們各自標(biāo)準(zhǔn)差的乘積(σX, σY)。
(2)數(shù)據(jù)要求
a.正態(tài)分布
它是協(xié)方差與標(biāo)準(zhǔn)差的比值,并且在求皮爾森相關(guān)性系數(shù)以后,通常還會用t檢驗(yàn)之類的方法來進(jìn)行皮爾森相關(guān)性系數(shù)檢驗(yàn),而t檢驗(yàn)是基于數(shù)據(jù)呈正態(tài)分布的假設(shè)的。
b.實(shí)驗(yàn)數(shù)據(jù)之間的差距不能太大
比如:研究人跑步的速度與心臟跳動的相關(guān)性,如果人突發(fā)心臟病,心跳為0(或者過快與過慢),那這時候我們會測到一個偏離正常值的心跳,如果我們把這個值也放進(jìn)去進(jìn)行相關(guān)性分析,它的存在會大大干擾計(jì)算的結(jié)果的。
實(shí)例代碼
import pandas as pd
import numpy as np
#原始數(shù)據(jù)
X1=pd.Series([1, 2, 3, 4, 5, 6])
Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5])
X1.mean() #平均值# 3.5
Y1.mean() #2.4
X1.var() #方差#3.5
Y1.var() #2.9760000000000004
X1.std() #標(biāo)準(zhǔn)差不能為0# 1.8708286933869707
Y1.std() #標(biāo)準(zhǔn)差不能為0#1.725108692227826
X1.cov(Y1) #協(xié)方差#3.0600000000000005
X1.corr(Y1,method="pearson") #皮爾森相關(guān)性系數(shù) #0.948136664010285
X1.cov(Y1)/(X1.std()*Y1.std()) #皮爾森相關(guān)性系數(shù) # 0.948136664010285
2. spearman correlation coefficient(斯皮爾曼相關(guān)性系數(shù))
斯皮爾曼相關(guān)性系數(shù),通常也叫斯皮爾曼秩相關(guān)系數(shù)。“秩”,可以理解成就是一種順序或者排序,那么它就是根據(jù)原始數(shù)據(jù)的排序位置進(jìn)行求解
(1)公式
首先對兩個變量(X, Y)的數(shù)據(jù)進(jìn)行排序,然后記下排序以后的位置(X’, Y’),(X’, Y’)的值就稱為秩次,秩次的差值就是上面公式中的di,n就是變量中數(shù)據(jù)的個數(shù),最后帶入公式就可求解結(jié)果。
(2)數(shù)據(jù)要求
因?yàn)槭嵌ㄐ?,所以我們不用管X和Y這兩個變量具體的值到底差了多少,只需要算一下它們每個值所處的排列位置的差值,就可以求出相關(guān)性系數(shù)了
(3)實(shí)例代碼
import pandas as pd
import numpy as np
#原始數(shù)據(jù)
X1=pd.Series([1, 2, 3, 4, 5, 6])
Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5])
#處理數(shù)據(jù)刪除Nan
x1=X1.dropna()
y1=Y1.dropna()
n=x1.count()
x1.index=np.arange(n)
y1.index=np.arange(n)
#分部計(jì)算
d=(x1.sort_values().index-y1.sort_values().index)**2
dd=d.to_series().sum()
p=1-n*dd/(n*(n**2-1))
#s.corr()函數(shù)計(jì)算
r=x1.corr(y1,method='spearman')
print(r,p) #0.942857142857143 0.9428571428571428
3. kendall correlation coefficient(肯德爾相關(guān)性系數(shù))
肯德爾相關(guān)性系數(shù),又稱肯德爾秩相關(guān)系數(shù),它也是一種秩相關(guān)系數(shù),不過它所計(jì)算的對象是分類變量。
分類變量可以理解成有類別的變量,可以分為:
無序的,比如性別(男、女)、血型(A、B、O、AB);
有序的,比如肥胖等級(重度肥胖,中度肥胖、輕度肥胖、不肥胖)。
通常需要求相關(guān)性系數(shù)的都是有序分類變量。
(1)公式
R=(P-(n*(n-1)/2-P))/(n*(n-1)/2)=(4P/(n*(n-1)))-1
注:設(shè)有n個統(tǒng)計(jì)對象,每個對象有兩個屬性。將所有統(tǒng)計(jì)對象按屬性1取值排列,不失一般性,設(shè)此時屬性2取值的排列是亂序的。設(shè)P為兩個屬性值排列大小關(guān)系一致的統(tǒng)計(jì)對象對數(shù)
(2)數(shù)據(jù)要求
類別數(shù)據(jù)或者可以分類的數(shù)據(jù)
(3)實(shí)例代碼
import pandas as pd
import numpy as np
#原始數(shù)據(jù)
x= pd.Series([3,1,2,2,1,3])
y= pd.Series([1,2,3,2,1,1])
r = x.corr(y,method="kendall") #-0.2611165
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
