Hoe de spearman rank-correlatie in python te berekenen
In de statistiek verwijst correlatie naar de sterkte en richting van een verband tussen twee variabelen. De waarde van een correlatiecoëfficiënt kan variëren van -1 tot 1, met de volgende interpretaties:
- -1: een perfect negatief verband tussen twee variabelen
- 0: geen verband tussen twee variabelen
- 1: een perfecte positieve relatie tussen twee variabelen
Een speciaal type correlatie wordt de rangcorrelatie van Spearman genoemd, die wordt gebruikt om de correlatie tussen twee gerangschikte variabelen te meten. (bijvoorbeeld de rangorde van de wiskunde-examenscore van een leerling in verhouding tot de rangorde van de wetenschapsexamenscore in een klas).
In deze tutorial wordt uitgelegd hoe u de Spearman-rangcorrelatie tussen twee variabelen in Python kunt berekenen
Voorbeeld: Spearman-rangcorrelatie in Python
Stel dat we het volgende panda’s DataFrame hebben dat de wiskunde-examenscore en de wetenschapsexamenscore van 10 studenten in een bepaalde klas bevat :
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]})
Om de Spearman Rank-correlatie tussen wiskunde- en wetenschapsscores te berekenen, kunnen we de functie spearmanr() in scipy.stats gebruiken:
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
Uit het resultaat kunnen we zien dat de Spearman-rangcorrelatie -0,41818 is en de overeenkomstige p-waarde 0,22911 is.
Dit geeft aan dat er een negatieve correlatie bestaat tussen examenscores voor natuurwetenschappen en wiskunde.
Omdat de p-waarde van de correlatie echter niet kleiner is dan 0,05, is de correlatie niet statistisch significant.
Merk op dat we ook de volgende syntaxis kunnen gebruiken om eenvoudig de correlatiecoëfficiënt of p-waarde te extraheren:
#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
Aanvullende bronnen
Hoe de Spearman-rangcorrelatie in R te berekenen
Hoe Spearman Rank-correlatie in Excel te berekenen
Hoe de Spearman-rangcorrelatie in Stata te berekenen