python斯皮爾曼spearman相關(guān)性分析實(shí)例
前言
相關(guān)性分析算是很多算法以及建模的基礎(chǔ)知識(shí)之一了,十分經(jīng)典。關(guān)于許多特征關(guān)聯(lián)關(guān)系以及相關(guān)趨勢(shì)都可以利用相關(guān)性分析計(jì)算表達(dá)。其中常見的相關(guān)性系數(shù)就有三種:person相關(guān)系數(shù),spearman相關(guān)系數(shù),Kendall's tau-b等級(jí)相關(guān)系數(shù)。各有各自的用法和使用場(chǎng)景。當(dāng)然關(guān)于這以上三種相關(guān)系數(shù)的計(jì)算算法和原理+代碼我都會(huì)在我專欄里面寫齊全。目前關(guān)于數(shù)學(xué)建模的專欄已經(jīng)將傳統(tǒng)的機(jī)器學(xué)習(xí)預(yù)測(cè)算法、維度算法、時(shí)序預(yù)測(cè)算法和權(quán)重算法寫的七七八八了,有這個(gè)需求興趣的同學(xué)可以去看看。 皮爾遜相關(guān)性分析一文詳解+python實(shí)例代碼

一、定義
經(jīng)常用希臘字母ρ表示。 它是衡量?jī)蓚€(gè)變量的依賴性的非參數(shù)指標(biāo)。 它利用單調(diào)方程評(píng)價(jià)兩個(gè)統(tǒng)計(jì)變量的相關(guān)性。 如果數(shù)據(jù)中沒有重復(fù)值, 并且當(dāng)兩個(gè)變量完全單調(diào)相關(guān)時(shí),斯皮爾曼相關(guān)系數(shù)則為+1或−1。斯皮爾曼相關(guān)系數(shù)被定義成等級(jí)變量之間的皮爾遜相關(guān)系數(shù)。對(duì)于樣本容量為n的樣本,n個(gè)原始數(shù)據(jù)被轉(zhuǎn)換成等級(jí)數(shù)據(jù),相關(guān)系數(shù)ρ為:

其中,di為Xi和Yi之間的等級(jí)差。 di的計(jì)算方式為:

二、斯皮爾曼相關(guān)使用場(chǎng)景
斯皮爾曼相關(guān)系數(shù)的適用條件比皮爾遜相關(guān)系數(shù)要廣,只需兩個(gè)變量的觀測(cè)值是成對(duì)的等級(jí)評(píng)定數(shù)據(jù),或者是由連續(xù)變量觀測(cè)數(shù)據(jù)轉(zhuǎn)化得到的等級(jí)數(shù)據(jù),不論兩個(gè)變量的總體分布形態(tài)、樣本容量的大小如何,都可以用斯皮爾曼等級(jí)相關(guān)系數(shù)來(lái)進(jìn)行研究。只要數(shù)據(jù)滿足單調(diào)關(guān)系(例如線性函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)等)就能夠使用。
斯皮爾曼相關(guān)系數(shù)對(duì)于異常值不太敏感,因?yàn)樗谂判蛭淮芜M(jìn)行計(jì)算,實(shí)際數(shù)值之間的差異大小對(duì)于計(jì)算結(jié)果沒有直接影響。
三、斯皮爾曼相關(guān)系數(shù)計(jì)算
和上期文章使用的函數(shù)一樣,可以使用pandas的函數(shù)corr:
DataFrame.corr(method='pearson',
min_periods=1,
numeric_only=_NoDefault.no_default)
參數(shù)說(shuō)明:
method: {‘pearson’, ‘kendall’, ‘spearman’} or callable。Method of correlation。
- pearson : standard correlation coefficient,皮爾遜系數(shù)
- kendall : Kendall Tau correlation coefficient,肯德爾系數(shù)
- spearman :Spearman rank correlation,斯皮爾曼系數(shù)
min_periods:int, optional。每對(duì)列所需的最小樣本數(shù)。目前僅適用于Pearson和Spearman相關(guān)性。
numeric_only:bool, default True。僅包含浮點(diǎn)、整型或布爾型數(shù)據(jù)。
實(shí)現(xiàn)起來(lái)很簡(jiǎn)單
rho =df_test.corr(method='spearman') rho

熱力圖
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.heatmap(rho, annot=True)
plt.title('Heat Map', fontsize=18)

或者使用scipy的state函數(shù),效果是一樣的:
import numpy as np from scipy import stats stats.spearmanr(data1,data2)
四、斯皮爾曼相關(guān)系數(shù)的假設(shè)檢驗(yàn)
分為兩種情況:小樣本和大樣本
小樣本情況(n ≤ 30),直接查臨界值表H0:rs = 0; H1:rs ≠ 0
使用得出的斯皮爾曼相關(guān)系數(shù) r 與對(duì)應(yīng)的臨界值進(jìn)行比較。

大樣本情況下,統(tǒng)計(jì)量

H0:rs = 0; H1:rs ≠ 0,計(jì)算檢驗(yàn)值z(mì)*,并求出對(duì)應(yīng)的p值與0.05比較即可。
以上就是python斯皮爾曼spearman相關(guān)性分析實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于python spearman相關(guān)性分析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)識(shí)別圖片為文字的示例代碼
這篇文章主要為大家詳細(xì)介紹了Python如何不調(diào)用三方收費(fèi)接口,照樣實(shí)現(xiàn)識(shí)別圖片為文字的功能。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-08-08
詳解pytest分布式執(zhí)行插件?pytest-xdist?的高級(jí)用法
這篇文章主要介紹了pytest分布式執(zhí)行插件?pytest-xdist?的高級(jí)用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
詳解Python中HTML解析庫(kù)pyquery的使用
在工作中難免會(huì)遇到解析 HTML 的場(chǎng)景,比如將網(wǎng)頁(yè)下載下來(lái)之后,要解析出里面圖片的路徑、指定標(biāo)簽里的文本等等,而 pyquery 專門負(fù)責(zé)做這件事,下面我們就來(lái)學(xué)習(xí)一下他的具體用法吧2023-12-12
Python實(shí)戰(zhàn)之用tkinter庫(kù)做一個(gè)鼠標(biāo)模擬點(diǎn)擊器
這篇文章主要介紹了Python實(shí)戰(zhàn)之用tkinter庫(kù)做一個(gè)鼠標(biāo)模擬點(diǎn)擊器,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
使用Python爬取最好大學(xué)網(wǎng)大學(xué)排名
這篇文章主要介紹了如何使用Python爬取最好大學(xué)網(wǎng)大學(xué)排名,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
python 監(jiān)控服務(wù)器是否有人遠(yuǎn)程登錄(詳細(xì)思路+代碼)
這篇文章主要介紹了python 監(jiān)控服務(wù)器是否有人遠(yuǎn)程登錄的方法,幫助大家利用python 監(jiān)控服務(wù)器,感興趣的朋友可以了解下2020-12-12

