Jak obliczyć korelację rangi spearmana w pythonie
W statystyce korelacja odnosi się do siły i kierunku związku między dwiema zmiennymi. Wartość współczynnika korelacji może wynosić od -1 do 1, z następującymi interpretacjami:
- -1: doskonały negatywny związek między dwiema zmiennymi
- 0: brak związku pomiędzy dwiema zmiennymi
- 1: doskonały dodatni związek między dwiema zmiennymi
Specjalny rodzaj korelacji nazywany jest korelacją rang Spearmana i służy do pomiaru korelacji między dwiema zmiennymi rankingowymi. (na przykład ranga wyniku ucznia z egzaminu z matematyki w stosunku do rangi jego wyniku z egzaminu z przedmiotów ścisłych w klasie).
W tym samouczku wyjaśniono, jak obliczyć korelację rang Spearmana między dwiema zmiennymi w Pythonie
Przykład: korelacja rang Spearmana w Pythonie
Załóżmy, że mamy następującą ramkę danych pandy zawierającą wyniki egzaminu z matematyki i przedmiotów ścisłych 10 uczniów w określonej klasie:
import pandas as pd #createDataFrame df = pd. DataFrame ({'student': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 'math': [70, 78, 90, 87, 84, 86, 91, 74, 83, 85], 'science': [90, 94, 79, 86, 84, 83, 88, 92, 76, 75]})
Aby obliczyć korelację rangi Spearmana między wynikami z matematyki i przedmiotów ścisłych, możemy użyć funkcji spearmanr() w scipy.stats :
from scipy. stats import spearmanr
#calculate Spearman Rank correlation and corresponding p-value
rho, p = spearmanr(df[' math '], df[' science '])
#print Spearman rank correlation and p-value
print (rho)
-0.41818181818181815
print (p)
0.22911284098281892
Z wyniku widzimy, że korelacja rang Spearmana wynosi -0,41818 , a odpowiadająca jej wartość p wynosi 0,22911 .
Wskazuje to, że istnieje ujemna korelacja między wynikami egzaminów z przedmiotów ścisłych i matematycznych.
Ponieważ jednak wartość p korelacji jest nie mniejsza niż 0,05, korelacja nie jest istotna statystycznie.
Zauważ, że moglibyśmy również użyć następującej składni, aby po prostu wyodrębnić współczynnik korelacji lub wartość p:
#extract Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[0]
-0.41818181818181815
#extract p-value of Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[1]
0.22911284098281892
Dodatkowe zasoby
Jak obliczyć korelację rang Spearmana w R
Jak obliczyć korelację rangi Spearmana w programie Excel
Jak obliczyć korelację rangi Spearmana w Stata