天天看點

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

簡介

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

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

或者

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

表示。它是衡量兩個變量的相關性的無母數名額。它利用單調函數評價兩個統計變量的相關性。若資料中沒有重複值,且當兩變量完全單調相關時,斯皮爾曼相關系數為+1或−1,而且

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

位于-1到1之間。

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

如圖所示。

更常用的一般為這個公式,但是比較麻煩。一般我們直接調用scipy.stats.spearman()直接調用。

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

備注:當所有的等級數值都為整數時,可以通過以下簡單的公式計算等級相關系數。

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

斯皮爾曼(等級)系數主要是針對X,Y兩個變量求相關性。

适用範圍

  1. 用于當資料不滿足下列條件任意一個(線性關系,連續資料,正态分布)的時候
  1. 當資料為定序資料的時候

定序資料為反應登記的資料,代表了某種邏輯順序,而且屬于品質資料,(甲,乙,丙)(優,良,差)等類型都可以稱為定序資料。

補充spearman系數資料排序

備注:如果變量資料相同的話,我們采取依次順序排序,相同數值取位置的平均值。

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼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。

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

大樣本檢驗(n>30)

在一般情況下,我們通過構造統計量進行假設檢驗,假設檢驗如圖,而且在統計量

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

,如果統計量

斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗

符合正态分布,具體公式如圖所示。

H0:
斯皮爾曼(spearman)相關系數python代碼實作簡介适用範圍補充spearman系數資料排序具體代碼spearman檢驗
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]
           

繼續閱讀