簡介:什么是相關(guān)性以及它為何有用琉历?
相關(guān)性是使用最廣泛的一個-和 廣泛的誤解- 統(tǒng)計概念。在本概述中,我們提供了幾種相關(guān)類型背后的定義和直覺旗笔,并說明了如何使用Python pandas
庫計算相關(guān)性彪置。
術(shù)語“相關(guān)性”是指量之間的相互關(guān)系或關(guān)聯(lián)。幾乎在任何企業(yè)中蝇恶,根據(jù)與其他企業(yè)的關(guān)系來表達一個數(shù)量是有用的拳魁。例如,當(dāng)營銷部門在電視廣告上花費更多時撮弧,銷售額可能會增加潘懊,或者電子商務(wù)網(wǎng)站上客戶的平均購買量可能取決于與該客戶相關(guān)的許多因素。通常贿衍,關(guān)聯(lián)是了解這些關(guān)系并隨后構(gòu)建更好的業(yè)務(wù)和統(tǒng)計模型的第一步授舟。
那么,為什么相關(guān)性是一個有用的指標(biāo)贸辈?
- 相關(guān)性可以幫助預(yù)測一個數(shù)量與另一個數(shù)量
- 相關(guān)性可以(但通常不會岂却,正如我們將在下面的一些示例中看到的那樣)表明存在因果關(guān)系
- 相關(guān)性被用作許多其他建模技術(shù)的基本數(shù)量和基礎(chǔ)
更正式地,相關(guān)性是描述隨機變量之間關(guān)聯(lián)的統(tǒng)計度量裙椭。存在幾種用于計算相關(guān)系數(shù)的方法躏哩,每種方法測量不同類型的關(guān)聯(lián)強度。下面我們總結(jié)三種最廣泛使用的方法揉燃。
Types of Correlation
在我們詳細(xì)了解如何計算相關(guān)性之前扫尺,重要的是引入協(xié)方差的概念。協(xié)方差是兩個變量X和Y之間關(guān)聯(lián)的統(tǒng)計量度炊汤。首先正驻,每個變量以減去其均值為中心。這些中心分?jǐn)?shù)相乘抢腐,以衡量一個變量的增加是否與另一個變量的增加相關(guān)聯(lián)姑曙。最后,這些中心分?jǐn)?shù)的乘積的期望值(E)被計算為關(guān)聯(lián)的概要迈倍。直觀地伤靠,中心得分的乘積可以被認(rèn)為是矩形的區(qū)域,每個點與描述矩形的一側(cè)的均值的距離:
如果兩個變量都傾向于在同一方向上移動啼染,我們期望將每個點(X_i宴合,Y_i)與均值(X_bar,Y_bar)連接的“平均”矩形具有大的正對角矢量迹鹅,對應(yīng)于更大的正積上面的等式卦洽。如果兩個變量都傾向于沿相反方向移動,我們期望平均矩形具有大且負(fù)的對角矢量斜棚,對應(yīng)于上面等式中的較大負(fù)產(chǎn)品阀蒂。如果變量不相關(guān)该窗,那么矢量平均應(yīng)該抵消- 并且總對角矢量應(yīng)該具有接近0的幅度,對應(yīng)于上面等式中接近0的乘積蚤霞。
如果您想知道“期望值”是什么酗失,那么它是另一種表示隨機變量的平均值或平均值μ的方法。它也被稱為“期望”争便。換句話說级零,我們可以寫下面的等式以不同的方式表達相同的數(shù)量:
協(xié)方差的問題在于它保持變量X 和 Y的比例 , 因此可以采用任何值滞乙。這使得解釋變得困難并且將協(xié)方差相互比較是不可能的奏纪。例如, Cov(X斩启,Y)= 5.2 和 Cov(Z序调,Q)= 3.1 告訴我們這些對是正相關(guān)的,但很難判斷X 和 Y之間的關(guān)系是否 強于Z 和Q 不看這些變量的均值和分布兔簇。這就是相關(guān)性變得有用的地方- 通過數(shù)據(jù)中某種度量變異性標(biāo)準(zhǔn)化協(xié)方差发绢,它產(chǎn)生的數(shù)量具有直觀的解釋和一致的規(guī)模。
Pearson Correlation Coefficient
Pearson是使用最廣泛的相關(guān)系數(shù)垄琐。Pearson相關(guān)性測量連續(xù)變量之間的線性關(guān)聯(lián)边酒。換句話說,該系數(shù)量化了兩個變量之間的關(guān)系可以用線描述的程度狸窘。值得注意的是墩朦,雖然相關(guān)性可以有很多解釋,但卡爾皮爾遜在120多年前開發(fā)的相同公式仍然是當(dāng)今使用最廣泛的公式翻擒。
在本節(jié)中氓涣,我們將介紹幾種流行的配方和Pearson相關(guān)性的直觀解釋(稱為ρ)。
由Pearson自己開發(fā)的原始相關(guān)公式使用原始數(shù)據(jù)和兩個變量X 和 Y的平均值 :
在這個公式中陋气,原始觀察的中心是減去它們的平均值并通過標(biāo)準(zhǔn)偏差的量度重新定標(biāo)劳吠。
一種不同的方式來表達相同的量是在預(yù)期值來說,意味著μ X巩趁, μ Y痒玩, 和標(biāo)準(zhǔn)偏差*σ *X, *σ *?:
請注意晶渠,此分?jǐn)?shù)的分子與上述協(xié)方差定義相同凰荚,因為均值和期望可以互換使用。通過標(biāo)準(zhǔn)偏差的乘積來劃分兩個變量之間的協(xié)方差可確保相關(guān)性始終在-1和1之間褒脯。這使得相關(guān)系數(shù)的解釋變得更加容易。
下圖顯示了Pearson相關(guān)性的三個例子缆毁。ρ越接近 1番川,一個變量的增加與另一個變量的增加相關(guān)聯(lián)的越多。另一方面,ρ越接近 -1颁督,一個變量的增加將導(dǎo)致另一變量的減少践啄。注意,如果 X 和 Y是獨立的沉御,那么 ρ接近于0屿讽,但反之則不然!換句話說吠裆,即使兩個變量之間存在強關(guān)系伐谈,Pearson相關(guān)性也可能很小。我們很快就會看到情況如何试疙。
那么诵棵,我們?nèi)绾谓忉孭earson相關(guān)性呢?
事實證明祝旷,Pearson相關(guān)性與線的斜率之間存在明顯的聯(lián)系履澳。在上圖中,顯示了通過每個散點圖的回歸線怀跛【啻回歸線是最佳的,因為它最小化了所有點與自身的距離吻谋。由于這個性質(zhì)忠蝗,Y和X 的回歸線的斜率在 數(shù)學(xué)上等于X 和 Y之間的相關(guān)性 *, *由它們的標(biāo)準(zhǔn)偏差的比率標(biāo)準(zhǔn)化:
其中b 是Y的回歸線 與 X的斜率 滨溉。
換句話說什湘,相關(guān)性反映了兩個變量之間的關(guān)聯(lián)性和可變性的量。
這種與線斜率的關(guān)系有兩個重要的含義:
- 它更清楚地說明為什么Pearson相關(guān)性描述了線性關(guān)系
- 它還說明了為什么相關(guān)性很重要晦攒,因此廣泛用于預(yù)測建模
但是闽撤,請注意,在ρ的上述等式中 脯颜,相關(guān)性不等于斜率 - 而是通過數(shù)據(jù)可變性的度量來標(biāo)準(zhǔn)化哟旗。例如,可能具有非常小的斜率栋操,但變量之間的相關(guān)性很大闸餐。在下圖中,描述這種關(guān)系的線相對平坦矾芙,但相關(guān)性為1舍沙,因為變異性s y 非常小:
請注意剔宪,到目前為止拂铡,我們還沒有對X 和 Y的分布做出任何假設(shè)壹无。唯一的限制是Pearsonρ假設(shè)兩個變量之間存在線性關(guān)系。Pearson相關(guān)性依賴于平均值和標(biāo)準(zhǔn)偏差感帅,這意味著它僅針對那些統(tǒng)計量是有限的分布定義斗锭,使得系數(shù)對異常值敏感。
解釋Pearson相關(guān)性的另一種方法是使用確定系數(shù)失球,也稱為R 2岖是。雖然 ρ是無單位的,但是它的平方被解釋為由X解釋 的Y的方差比例 实苞。在上面的例子中豺撑, ρ * = -0.65意味著(-0.65 2) 100 = Y的變化的42%可以用X來解釋。
還有很多其他方法可以解釋 ρ硬梁。如果您對相關(guān)性和向量前硫,省略號等之間的關(guān)系感興趣,請查看經(jīng)典論文“ 查看相關(guān)系數(shù)的十三種方法 ”荧止。
Spearman's Correlation
斯皮爾曼 等級相關(guān)系數(shù) 作為皮爾遜的特殊情況可以被定義 ρ施加到排序(排序)的變量屹电。與皮爾遜不同,斯皮爾曼的相關(guān)性不僅限于線性關(guān)系跃巡。相反危号,它測量兩個變量之間的單調(diào)關(guān)聯(lián)(僅嚴(yán)格增加或減少,但不混合)素邪,并依賴于值的排序外莲。換句話說,Spearman系數(shù)不是比較平均值和方差兔朦,而是查看每個變量的值的相對順序偷线。這使得適用于連續(xù)和離散數(shù)據(jù)。
Spearman系數(shù)的公式看起來非常類似于Pearson沽甥,其區(qū)別在于按行列而不是原始分?jǐn)?shù)計算:
如果所有排名都是唯一的(即排名中沒有關(guān)聯(lián))声邦,您還可以使用簡化版本:
其中d i = rank(X i) - rank(Y i) 是每個觀察的兩個等級之間的差異,N是觀察的數(shù)量摆舟。
Spearman和Pearson相關(guān)性之間的差異最好用例子說明亥曹。在下圖中,有三種情況恨诱,顯示了兩個相關(guān)系數(shù)媳瞪。在第一個例子中,存在明顯的單調(diào)(總是增加)和非線性關(guān)系照宝。由于在這種情況下值的排列完全一致蛇受,因此Spearman系數(shù)為1.在這種情況下,Pearson相關(guān)性較弱厕鹃,但由于關(guān)系的部分線性龙巨,它仍然顯示出非常強的關(guān)聯(lián)笼呆。
實施例2中的數(shù)據(jù)顯示了X中的清晰基團和兩個具有Y的基團的強烈但非單調(diào)的關(guān)聯(lián)熊响。在這種情況下旨别,Pearson相關(guān)性幾乎為0,因為數(shù)據(jù)非常非線性汗茄。Spearman等級相關(guān)顯示弱關(guān)聯(lián)秸弛,因為數(shù)據(jù)是非單調(diào)的。
最后洪碳,示例3示出了以0為中心的近似完美的二次關(guān)系递览。然而,由于數(shù)據(jù)的非單調(diào)瞳腌,非線性和對稱性質(zhì)绞铃,兩個相關(guān)系數(shù)幾乎為0。
這些假設(shè)的例子表明嫂侍,相關(guān)性決不是數(shù)據(jù)內(nèi)部關(guān)系的詳盡總結(jié)儿捧。如實例3中所示,弱相關(guān)或不相關(guān)并不意味著缺乏關(guān)聯(lián)挑宠,甚至強相關(guān)系數(shù)也可能無法完全捕捉到關(guān)系的性質(zhì)菲盾。使用可視化技術(shù)和多個統(tǒng)計數(shù)據(jù)摘要來獲得關(guān)于變量如何相互關(guān)聯(lián)的更好的圖片總是一個好主意。
Kendall's Tau
我們將討論的第三個相關(guān)系數(shù)也基于可變等級各淀。然而懒鉴,與斯皮爾曼的系數(shù)不同,肯德爾斯的τ沒有考慮排名之間的差異- 只有方向性協(xié)議碎浇。因此临谱,該系數(shù)更適合于離散數(shù)據(jù)。
形式上奴璃,肯德爾的 τ系數(shù)定義為:
例如悉默,考慮一個由五個觀察組成的簡單數(shù)據(jù)集。實際上溺健,如此少量的數(shù)據(jù)點不足以得出任何結(jié)論麦牺。但在這里,我們認(rèn)為它是為了簡化計算:
X | Y | |
---|---|---|
a | 1 | 7 |
b | 2 | 5 |
c | 3 | 1 |
d | 4 | 6 |
e | 5 | 9 |
一致對(*x 1鞭缭,y 1)剖膳,(x 2,y *2)是其中列重合的值對: *x *1 < *x *2且 *y *1 < *y *2或 *x *1 > *x *2且 *y *1 > y 2岭辣。在我們的迷你示例中吱晒,行d和e中的(4,6)和(5,9)是一致的對。不一致對將是不滿足該條件的對沦童,例如(1,7)和(2,5)仑濒。計算τ的分子 叹话,我們比較數(shù)據(jù)集中所有可能的對并計算一致對的數(shù)量; 在這種情況下6:
- (1,7)和(5,9)
- (2,5)和(4,6)
- (2,5)和(5,9)
- (3,1)和(4,6)
- (3,1)和(5,9)
- (4,6)和(5,9)
和不和諧的對:
- (1,7)和(2,5)
- (1,7)和(3,1)
- (1,7)和(4,6)
- (2,5)和(3,1)
Kendall的的分母τ是對可能的組合,從而確保只數(shù)τ 1和-1之間變化墩瞳。對于五個數(shù)據(jù)點驼壶,存在5 * 4/2 = 10種可能的組合,在該示例中使得τ =(6-4)/ 10 = 0.2喉酌∪劝迹肯德爾的相關(guān)性對于離散數(shù)據(jù)特別有用,其中數(shù)據(jù)點的相對位置對于它們之間的差異更為重要泪电。
# fake kendall
k = pd.DataFrame()
k['X'] = np.arange(5)+1
k['Y'] = [7, 5,1, 6, 9]
print k.corr(method='kendall')
XY X 1.0 0.2 Y 0.2 1.0
PANDAS計算的相關(guān)性
# pandas provide a convenient method for highlighting
# mpg_data.drop(['m
下面般妙,我們將展示如何使用Python庫計算示例問題的相關(guān)性。我們將使用加州大學(xué)歐文分校的車輛燃油效率數(shù)據(jù)集相速。讓我們說有興趣看看哪種車輛特性可以幫助解釋車輛的燃油消耗(mpg)碟渺。我們首先從UCI在線數(shù)據(jù)存儲庫中讀取數(shù)據(jù)集并檢查前幾行。數(shù)據(jù)集文檔指出一個特殊字符用于缺失值(?
)突诬,它可以用作pandas read_csv()
函數(shù)的一個參數(shù):
import pandas as pd
path = 'http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data'
mpg_data = pd.read_csv(path, delim_whitespace=True, header=None,
names = ['mpg', 'cylinders', 'displacement','horsepower',
'weight', 'acceleration', 'model_year', 'origin', 'name'],
na_values='?')
在檢查數(shù)據(jù)集時苫拍,我們看到horsepower
有六個缺失值,大熊貓的相關(guān)方法將自動丟棄攒霹。由于缺失值的數(shù)量很少怯疤,因此對于我們的說明性示例,此設(shè)置是可接受的催束。但是集峦,請始終確保刪除缺失值適合您的用例。如果不是這種情況抠刺,則存在許多用于填充和處理缺失值的現(xiàn)有方法塔淤,例如簡單的平均插補。
mpg_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 398 entries, 0 to 397
Data columns (total 9 columns):
mpg 398 non-null float64
cylinders 398 non-null int64
displacement 398 non-null float64
horsepower 392 non-null float64
weight 398 non-null float64
acceleration 398 non-null float64
model_year 398 non-null int64
origin 398 non-null int64
name 398 non-null object
dtypes: float64(5), int64(3), object(1)
memory usage: 28.1+ KB
pandas提供了一種方便的單行方法速妖,corr()
用于計算數(shù)據(jù)幀列之間的相關(guān)性高蜂。在我們的燃油效率示例中,我們可以mpg
通過將方法傳遞到特定列來檢查較重的車輛是否傾向于降低:
mpg_data['mpg'].corr(mpg_data['weight'])
-0.8317409332443354
正如預(yù)期的那樣罕容,車輛weight
和車輛之間似乎存在強烈的負(fù)相關(guān)關(guān)系mpg
备恤。但是horsepower
或者displacement
呢?方便的是锦秒,pandas可以快速計算數(shù)據(jù)幀中所有列之間的相關(guān)性露泊。用戶還可以指定相關(guān)方法:Spearman,Pearson或Kendall旅择。如果未指定方法惭笑,則默認(rèn)使用Pearson。在這里,我們刪除模型年份和原始變量沉噩,并計算數(shù)據(jù)框的所有剩余列之間的Pearson相關(guān)性:
in[]:
# pairwise correlation
mpg_data.drop(['model_year', 'origin'], axis=1).corr(method='spearman')
out[]:
MPG | 汽缸 | 移位 | 馬力 | 重量 | 促進 | |
---|---|---|---|---|---|---|
MPG | 1.000000 | -0.821864 | -0.855692 | -0.853616 | -0.874947 | 0.438677 |
汽缸 | -0.821864 | 1.000000 | 0.911876 | 0.816188 | 0.873314 | -0.474189 |
移位 | -0.855692 | 0.911876 | 1.000000 | 0.876171 | 0.945986 | -0.496512 |
馬力 | -0.853616 | 0.816188 | 0.876171 | 1.000000 | 0.878819 | -0.658142 |
重量 | -0.874947 | 0.873314 | 0.945986 | 0.878819 | 1.000000 | -0.404550 |
促進 | 0.438677 | -0.474189 | -0.496512 | -0.658142 | -0.404550 | 1.000000 |
pandas還支持突出顯示表的方法捺宗,因此更容易看到高和低相關(guān)性。了解數(shù)據(jù)中可能存在的相關(guān)性非常重要川蒙,尤其是在構(gòu)建回歸模型時蚜厉。強相關(guān)預(yù)測因子,稱為多重共線性的現(xiàn)象派歌,將導(dǎo)致系數(shù)估計不太可靠弯囊。下面是一個在我們的數(shù)據(jù)上計算Pearson相關(guān)性并使用顏色漸變來格式化結(jié)果表的示例:
odel_year', 'origin'], axis=1).corr(method='pearson').style.format("{:.2}").background_gradient(cmap=plt.get_cmap('coolwarm'), axis=1)
最后,目測檢查之間的關(guān)系mpg
胶果,weight
,horsepower
斤斧,和acceleration
早抠,我們就可以繪制這些值并計算皮爾遜和斯皮爾曼系數(shù)。手頭的數(shù)據(jù)集包含少于400個點撬讽,可以在散點圖上輕松顯示蕊连。如果您要處理更大的數(shù)據(jù)集,請考慮首先采集數(shù)據(jù)樣本以加快流程并生成更易讀的圖表游昼。
在這種情況下甘苍,斯皮爾曼系數(shù)比皮爾遜更高horsepower
和weight
,由于關(guān)系是非線性的烘豌。因為acceleration
载庭,兩個系數(shù)都很接近,因為關(guān)系沒有明確定義:
# plot correlated values
plt.rcParams['figure.figsize'] = [16, 6]
fig, ax = plt.subplots(nrows=1, ncols=3)
ax=ax.flatten()
cols = ['weight', 'horsepower', 'acceleration']
colors=['#415952', '#f35134', '#243AB5', '#243AB5']
j=0
for i in ax:
if j==0:
i.set_ylabel('MPG')
i.scatter(mpg_data[cols[j]], mpg_data['mpg'], alpha=0.5, color=colors[j])
i.set_xlabel(cols[j])
i.set_title('Pearson: %s'%mpg_data.corr().loc[cols[j]]['mpg'].round(2)+' Spearman: %s'%mpg_data.corr(method='spearman').loc[cols[j]]['mpg'].round(2))
j+=1
plt.show()
相關(guān)與因果關(guān)系
我們的燃油效率示例中的變量之間的關(guān)系非常直觀廊佩,可通過車輛力學(xué)解釋囚聚。然而,事情并不總是那么簡單标锄。眾所周知顽铸,相關(guān)性并不意味著因果關(guān)系,因此料皇,任何強相關(guān)都應(yīng)該被認(rèn)為是批判性的谓松。例如,德國研究人員在這篇幽默的論文中使用了相關(guān)概念 來支持嬰兒由鸛提供的理論践剂。該圖顯示了鸛的數(shù)量與嬰兒分娩之間的相關(guān)性:
左圖顯示鸛數(shù)量(黑線)的增加趨勢和臨床分娩數(shù)量的減少趨勢鬼譬。另一方面,右側(cè)的圖表顯示舷手,許多院外分娩(白色方形標(biāo)記)遵循鸛數(shù)量增加的模式拧簸。通過觀察這些系列之間的相關(guān)性,作者提出男窟,院外分娩的增加與鸛數(shù)量的增加以及醫(yī)院分娩的同時減少表明德國越來越多的嬰兒正在通過鸛分娩盆赤。
當(dāng)然贾富,這是一個愚蠢的例子。盡管如此牺六,它表明了一個重要的觀點:虛假的統(tǒng)計關(guān)聯(lián)可以在很多數(shù)量中找到颤枪,僅僅是因為偶然。
通常淑际,由于一些未觀察到的變量畏纲,關(guān)系可能通過高相關(guān)性似乎是因果關(guān)系。例如春缕,一個城市的雜貨店數(shù)量可以與冰淇淋奶油的數(shù)量密切相關(guān)盗胀。但是,這里有一個明顯的隱藏變量- 城市的人口規(guī)模:
這些示例顯示了關(guān)聯(lián)如何只是一個數(shù)據(jù)匯總統(tǒng)計數(shù)據(jù)锄贼,它決不會告訴數(shù)據(jù)中關(guān)系的完整故事票灰。
最后的評論
本概述是相關(guān)類型和解釋的入門讀物。我們引入了三種流行的相關(guān)方法宅荤,并演示了如何使用它們進行計算pandas
屑迂。在許多應(yīng)用中,相關(guān)性是一個有用的數(shù)量冯键,特別是在進行回歸分析時惹盼。雖然這里列出的方法被廣泛使用并涵蓋了大多數(shù)用例,但是這里沒有涉及其他關(guān)聯(lián)度量惫确,例如二進制數(shù)據(jù)或互信息的phi系數(shù)手报。
參考
Rodgers,JL雕薪,&Nicewander昧诱,WA(1988)。十三種觀察相關(guān)系數(shù)的方法所袁。美國統(tǒng)計學(xué)家盏档,42(1),59-66燥爷。
Lichman蜈亩,M。(2013)前翎。UCI機器學(xué)習(xí)庫[ http://archive.ics.uci.edu/ml ]稚配。加利福尼亞州歐文市:加州大學(xué)信息與計算機科學(xué)學(xué)院。
Hofer港华,T.道川,Przyrembel,H。冒萄,&Verleger臊岸,S。(2004)尊流。鸛理論的新證據(jù)帅戒。兒科和圍產(chǎn)期流行病學(xué),18(1)崖技,88-92逻住。