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

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

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

二、斯皮爾曼相關使用場景
斯皮爾曼相關系數(shù)的適用條件比皮爾遜相關系數(shù)要廣,只需兩個變量的觀測值是成對的等級評定數(shù)據(jù),或者是由連續(xù)變量觀測數(shù)據(jù)轉化得到的等級數(shù)據(jù),不論兩個變量的總體分布形態(tài)、樣本容量的大小如何,都可以用斯皮爾曼等級相關系數(shù)來進行研究。只要數(shù)據(jù)滿足單調關系(例如線性函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)等)就能夠使用。
斯皮爾曼相關系數(shù)對于異常值不太敏感,因為它基于排序位次進行計算,實際數(shù)值之間的差異大小對于計算結果沒有直接影響。
三、斯皮爾曼相關系數(shù)計算
和上期文章使用的函數(shù)一樣,可以使用pandas的函數(shù)corr:
DataFrame.corr(method='pearson',
min_periods=1,
numeric_only=_NoDefault.no_default)
參數(shù)說明:
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。每對列所需的最小樣本數(shù)。目前僅適用于Pearson和Spearman相關性。
numeric_only:bool, default True。僅包含浮點、整型或布爾型數(shù)據(jù)。
實現(xià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)
四、斯皮爾曼相關系數(shù)的假設檢驗
分為兩種情況:小樣本和大樣本
小樣本情況(n ≤ 30),直接查臨界值表H0:rs = 0; H1:rs ≠ 0
使用得出的斯皮爾曼相關系數(shù) r 與對應的臨界值進行比較。

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

H0:rs = 0; H1:rs ≠ 0,計算檢驗值z*,并求出對應的p值與0.05比較即可。
以上就是python斯皮爾曼spearman相關性分析實例的詳細內容,更多關于python spearman相關性分析的資料請關注腳本之家其它相關文章!
相關文章
詳解pytest分布式執(zhí)行插件?pytest-xdist?的高級用法
這篇文章主要介紹了pytest分布式執(zhí)行插件?pytest-xdist?的高級用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
Python實戰(zhàn)之用tkinter庫做一個鼠標模擬點擊器
這篇文章主要介紹了Python實戰(zhàn)之用tkinter庫做一個鼠標模擬點擊器,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
python 監(jiān)控服務器是否有人遠程登錄(詳細思路+代碼)
這篇文章主要介紹了python 監(jiān)控服務器是否有人遠程登錄的方法,幫助大家利用python 監(jiān)控服務器,感興趣的朋友可以了解下2020-12-12

