什么是相關(guān)性分析相關(guān)性分析也稱為雙變量分析,主要關(guān)注找出變量之間是否存在關(guān)系,然后確定該關(guān)系的大小和作用。相關(guān)性分析在數(shù)據(jù)分析中扮演著關(guān)鍵的角色,幫助我們深入理解數(shù)據(jù)之間的關(guān)系,為更明智的決策提供依據(jù)。通常使用相關(guān)系數(shù)來衡量變量之間的相關(guān)程度。常見的相關(guān)系數(shù)包括皮爾遜相關(guān)系數(shù)(Pearson's correlation coefficient)、斯皮爾曼秩相關(guān)系數(shù)(Spearman's rank-order correlation coefficient)、肯德爾秩相關(guān)系數(shù)(Kendall's tau correlation coefficient)等。
最重要的是:相關(guān)性并不代表因果關(guān)系。相關(guān)性僅僅表明兩個變量之間存在某種聯(lián)系或關(guān)聯(lián),并不能說明其中一個變量的變化導(dǎo)致另一個變量發(fā)生變化的原因。因此,在進行相關(guān)性分析時,我們必須同時考慮其他因素,以免誤判。 皮爾遜相關(guān)系數(shù)由卡爾·皮爾遜從弗朗西斯·高爾頓在1880年代提出的一個相似卻又稍有不同的想法演變而來,并且其數(shù)學(xué)公式由奧古斯特·布拉菲(Auguste Bravais)于1844年推導(dǎo)出和發(fā)表。這個相關(guān)系數(shù)也稱作“皮爾森相關(guān)系r”。 皮爾遜相關(guān)系數(shù)在范圍?1 ≤ r ≤ 1內(nèi)取任意實數(shù)值。
Pearson's r ValueCorrelation Between x and yequal to 1perfect positive linear relationshipgreater than 0positive correlationequal to 0no linear relationshipless than 0negative correlationequal to -1perfect negative linear relationship 示例下面的示例是對包括語文、數(shù)學(xué)、英語、物理和化學(xué)在內(nèi)的學(xué)科成績表進行相關(guān)性分析,探究學(xué)科之間是否存在關(guān)聯(lián)性。通過皮爾遜相關(guān)系數(shù)等方法,我們將揭示學(xué)科成績之間的相關(guān)性程度。
df3.corr() ## Pearson's r 從相關(guān)系數(shù)矩陣可以觀察到學(xué)科成績之間普遍存在著一定程度的正相關(guān)性。具體而言:
綜上所述,該學(xué)科成績表中的學(xué)科間普遍存在一定的正相關(guān)性,這意味著學(xué)生在某個學(xué)科表現(xiàn)較好時,其他學(xué)科的成績也可能相對較好。這種相關(guān)性可以為教育者和學(xué)生提供有價值的信息,幫助他們制定更有效的學(xué)習(xí)策略和學(xué)科優(yōu)化安排。但需要注意的是,相關(guān)性并不代表因果關(guān)系,學(xué)科成績之間的關(guān)聯(lián)可能受到其他復(fù)雜因素的影響,因此在做出任何決策時,仍需綜合考慮其他因素。 什么是秩相關(guān)系數(shù)秩相關(guān)系數(shù)(Coefficient of Rank Correlation),又稱等級相關(guān)系數(shù),反映的是兩個隨機變量的的變化趨勢方向和強度之間的關(guān)聯(lián),是將兩個隨機變量的樣本值按數(shù)據(jù)的大小順序排列位次,以各要素樣本值的位次代替實際數(shù)據(jù)而求得的一種統(tǒng)計量。它是反映等級相關(guān)程度的統(tǒng)計分析指標(biāo),常用的等級相關(guān)分析方法有斯皮爾曼(Spearman)秩相關(guān)系數(shù)和肯德爾(Kendall)秩相關(guān)系數(shù)等。這里秩是秩序的秩,或者說排名、順序、等級的意思(ranked或者ranking)。 考慮兩個隨機變量X和Y,如果秩相關(guān)系數(shù)為正,則Y 隨著X的增加而增加;如果秩相關(guān)系數(shù)為負(fù),則Y隨著X的增加而減?。蝗绻认嚓P(guān)系數(shù)為0,則表示隨著Y的增減變化跟X的增減變化沒啥關(guān)系。當(dāng)Y和X越來越接近嚴(yán)格單調(diào)的函數(shù)關(guān)系時,秩相關(guān)系數(shù)在數(shù)值上就越來越大。當(dāng)秩相關(guān)系數(shù)為1或者-1時,就表明Y隨著X的增加而嚴(yán)格單調(diào)增加或單調(diào)減小。 在實際應(yīng)用中,有時獲得的原始資料沒有具體的數(shù)據(jù)表現(xiàn),只能用等級來描述某種現(xiàn)象,要分析現(xiàn)象之間的相關(guān)關(guān)系,就只能用秩相關(guān)系數(shù)。 斯皮爾曼秩相關(guān)系數(shù)斯皮爾曼秩相關(guān)系數(shù)(The Spearman's rank coefficient of correlation)是秩相關(guān)(rank correlation)的一種非參數(shù)度量(nonparametric measure)。得名于英國統(tǒng)計學(xué)家Charles Spearman,通常記為希臘字母'ρ' (rho)( often called Spearman's rho)。 在討論斯皮爾曼相關(guān)系數(shù)之前,首先要理解皮爾遜相關(guān)(Pearson's correlation),斯皮爾曼相關(guān)可以看作是皮爾遜相關(guān)的非參數(shù)版本(nonparametric version)。皮爾遜相關(guān)是關(guān)于兩個隨機變量之間的線性關(guān)系強度的統(tǒng)計度量(statistical measure),而斯皮爾曼相關(guān)考察的是兩者單調(diào)關(guān)系(monotonic relationship)的強度,通俗地說就是兩者在變大或變小的趨勢上多大程度上保持步調(diào)一致,哪怕沒有保持比例關(guān)系。計算皮爾遜相關(guān)系數(shù)時使用的是數(shù)據(jù)樣本值本身,而計算斯皮爾曼相關(guān)系數(shù)使用的是數(shù)據(jù)樣本排位位次值(有時候數(shù)據(jù)本身就是位次值,有時候數(shù)據(jù)本身不是位次值,則在計算斯皮爾曼相關(guān)系數(shù)之前要先計算位次值)。 能夠適用皮爾遜相關(guān)的場合當(dāng)然是優(yōu)先使用皮爾遜相關(guān),但是在有些場合,皮爾遜相關(guān)所需要的前提假設(shè)不能得到滿足,這時就可以考慮使用斯皮爾曼相關(guān),比如說以下一些情況下:
計算公式取決于觀測數(shù)據(jù)中有沒有位次相同的數(shù)據(jù)(the same rank assigned to two or more observations),斯皮爾曼相關(guān)系數(shù)可以通過以下兩種方法進行計算。當(dāng)沒有位次相同的數(shù)據(jù)時,可以用一個更簡單的公式,如下所示: 其中: di 表示第i個數(shù)據(jù)對的位次值之差 n 總的觀測樣本數(shù) 如果觀測樣本中存在位次相同的數(shù)據(jù),則需要使用如下所示的全版本的計算公式: 示例
import seaborn as snssns.scatterplot(x='pyts', y='chin', data=df)
df['pyts_rank'] = df['pyts'].rank()df['chin_rank'] = df['chin'].rank()df['d'] = df['pyts_rank'] - df['chin_rank']df['d2'] = df['d'].apply(lambda x: x*x)df
def spearman_rank(df): sum_d2 = sum(df['d2']) n = len(df['d2']) r = 1 - sum_d2*6/((n*n-1)*n) return rr = spearman_rank(df)print(f'Spearman's Rank Correlation Coefficient is: {r}')
肯德爾秩相關(guān)系數(shù)肯德爾(Kendall)的Tau相關(guān)系數(shù)(Kendall's tau correlation coefficient)是一種用于衡量兩個變量之間等級關(guān)系(順序關(guān)系)的相關(guān)性指標(biāo)。它不依賴于數(shù)據(jù)的具體數(shù)值,而是根據(jù)數(shù)據(jù)的秩次(排序)來計算相關(guān)性。肯德爾Tau相關(guān)系數(shù)常用于對有序等級數(shù)據(jù)進行相關(guān)性分析。 考慮兩個變量X和Y,假設(shè)有n個數(shù)據(jù)點。首先,對X和Y的每個數(shù)據(jù)點進行秩次排名,得到它們的秩次Rx和Ry。然后,計算出對所有兩兩數(shù)據(jù)點(i點,j點)之間的秩次對(Rxi-Rxj, Ryi-Rxj)中有多少對秩次對符號(正負(fù)號)相符的對和秩次對符合(正負(fù)號)不相符的對。秩次對相符的對表示在兩個變量中,數(shù)據(jù)點的排序順序是一致的,秩次不相符的對表示數(shù)據(jù)點在兩個變量中的排序順序是不一致的。 然后,根據(jù)秩次相符對數(shù)目和秩次不相符對數(shù)目,計算肯德爾Tau相關(guān)系數(shù)(τ): τ = (秩次相符對數(shù)目 - 秩次不相符對數(shù)目) / (秩次相符對數(shù)目 + 秩次不相符對數(shù)目) 肯德爾Tau相關(guān)系數(shù)的取值范圍在-1到1之間。當(dāng)τ接近于1時,表示兩個變量的秩次之間存在完全的正相關(guān)關(guān)系;當(dāng)τ接近于-1時,表示兩個變量的秩次之間存在完全的負(fù)相關(guān)關(guān)系;當(dāng)τ接近于0時,表示兩個變量的秩次之間幾乎沒有相關(guān)關(guān)系。 肯德爾Tau相關(guān)系數(shù)適用于有序等級數(shù)據(jù),特別是當(dāng)數(shù)據(jù)之間存在等級關(guān)系,但數(shù)值之間的差異不具有實際意義或不可測量時,它便是一種比較合適的相關(guān)性度量方法。 示例
df['pyts_rank'] = df['pyts'].rank()df['chin_rank'] = df['chin'].rank()df
s=0for i in range(df.shape[0]): for j in range(i+1,df.shape[0]): if (df['pyts_rank'][i]-df['pyts_rank'][j])*(df['chin_rank'][i]-df['chin_rank'][j])>0: s+=1 else: s-=1print('Kendall\'s tau Rank Correlation Coefficient is:',s/(df.shape[0]*(df.shape[0]-1))*2)
相關(guān)性≠因果性雖然相關(guān)性分析在數(shù)據(jù)分析中非常重要,但我們需要牢記一些關(guān)鍵的注意事項。其中最重要的一點是:相關(guān)性并不代表因果關(guān)系。兩個變量之間的相關(guān)性只是表明它們之間存在某種聯(lián)系或關(guān)聯(lián),而不能確定其中一個變量的變化一定會導(dǎo)致另一個變量發(fā)生變化。因此,在進行相關(guān)性分析時,我們必須同時考慮其他因素,以避免誤判。 下面分別舉一個生活中和數(shù)據(jù)分析工作中實際場景的例子,以更好地理解這個概念。 生活中的例子假設(shè)我們觀察到城市的冰淇淋銷量與游泳池的使用量之間存在正相關(guān)性。即隨著氣溫升高,冰淇淋銷量和游泳池的使用量都增加。然而,我們不能簡單地得出結(jié)論認(rèn)為冰淇淋銷量的增加會直接導(dǎo)致游泳池使用量的增加,或者游泳池使用量的增加是會導(dǎo)致冰淇淋銷量增加。實際上,這兩者之間可能只是因為炎熱的天氣而導(dǎo)致的結(jié)果,而不能把其中一個的變化作為另外一個發(fā)生變化的原因。 數(shù)據(jù)分析中的例子在一份銷售數(shù)據(jù)的分析中,我們可能會發(fā)現(xiàn)銷售額與廣告投入之間存在正相關(guān)性。然而,僅僅依據(jù)相關(guān)性并不能確定廣告投入是直接導(dǎo)致銷售額增加的原因。也可能有其他因素,如產(chǎn)品品質(zhì)、市場需求等,這些因素同樣會對銷售額產(chǎn)生影響。因此,在進行決策時,我們需要綜合考慮這些因素,而不是僅僅依賴于相關(guān)性分析的結(jié)果。 相關(guān)性分析的局限性盡管相關(guān)性分析可以幫助我們理解不同變量之間的關(guān)系,但也存在一些局限性,主要體現(xiàn)在以下幾個方面:
相關(guān)性分析是數(shù)據(jù)分析中一個非常重要的環(huán)節(jié),它可以幫助我們了解數(shù)據(jù)之間的關(guān)系,為我們做出更好的決策提供依據(jù)。在實際應(yīng)用中,我們需要根據(jù)具體問題來選擇恰當(dāng)?shù)南嚓P(guān)系數(shù)進行分析,并注意相關(guān)性分析的局限性和相關(guān)注意事項。 |
|