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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *