簡介
斯皮爾曼等級相關系數(簡稱等級相關系數,或稱秩相關系數,英語:Spearman's rank correlation coefficient或Spearman's ρ)。一般用

或者
表示。它是衡量兩個變量的相關性的無母數名額。它利用單調函數評價兩個統計變量的相關性。若資料中沒有重複值,且當兩變量完全單調相關時,斯皮爾曼相關系數為+1或−1,而且
位于-1到1之間。
如圖所示。
更常用的一般為這個公式,但是比較麻煩。一般我們直接調用scipy.stats.spearman()直接調用。
備注:當所有的等級數值都為整數時,可以通過以下簡單的公式計算等級相關系數。
斯皮爾曼(等級)系數主要是針對X,Y兩個變量求相關性。
适用範圍
- 用于當資料不滿足下列條件任意一個(線性關系,連續資料,正态分布)的時候
- 當資料為定序資料的時候
定序資料為反應登記的資料,代表了某種邏輯順序,而且屬于品質資料,(甲,乙,丙)(優,良,差)等類型都可以稱為定序資料。
補充spearman系數資料排序
備注:如果變量資料相同的話,我們采取依次順序排序,相同數值取位置的平均值。
具體代碼
import numpy as np
import pandas as pd
import scipy.stats as stats
def calculate_spearman_correlation(X, Y):
return stats.spearmanr(X, Y)[0]
def calculate_spearman_correlation_p(X, Y):
return stats.spearmanr(X, Y)[1]
if __name__=='__main__':
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [2, 1, 2, 4.5, 7, 6.5, 6, 9, 9.5]
print(calculate_spearman_correlation_p(x, y))
print(calculate_spearman_correlation(x, y))
spearman檢驗
小樣本檢驗(n<30)
在一般情況下,我們通過直接适用查表的方式進行驗證,即為spearman系數要大于表中對應的臨界值。即為我們認為我們的相關系數大于表中的臨界值,我們認為相關系數是有顯著性差異的,即為有相關性而且相關性不為0。
大樣本檢驗(n>30)
在一般情況下,我們通過構造統計量進行假設檢驗,假設檢驗如圖,而且在統計量
,如果統計量
符合正态分布,具體公式如圖所示。
H0:H1:![]()
斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗 ![]()
斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗
(構造的統計量符合正态分布)
計算p值,如果p值大于0.05,即為證明有顯著差異。即為有相關性,相關系數不為0。
求P值代碼
def calculate_spearman_correlation_p(X, Y):
return stats.spearmanr(X, Y)[1]