Come calcolare la correlazione del rango di spearman in python
In statistica, la correlazione si riferisce alla forza e alla direzione di una relazione tra due variabili. Il valore di un coefficiente di correlazione può variare da -1 a 1, con le seguenti interpretazioni:
- -1: una perfetta relazione negativa tra due variabili
- 0: nessuna relazione tra due variabili
- 1: una perfetta relazione positiva tra due variabili
Un tipo speciale di correlazione è chiamata correlazione per rango di Spearman , che viene utilizzata per misurare la correlazione tra due variabili classificate. (ad esempio, la posizione del punteggio dell’esame di matematica di uno studente rispetto alla posizione del punteggio dell’esame di scienze in una classe).
Questo tutorial spiega come calcolare la correlazione del rango di Spearman tra due variabili in Python
Esempio: correlazione dei ranghi di Spearman in Python
Supponiamo di avere il seguente DataFrame panda che contiene il punteggio dell’esame di matematica e il punteggio dell’esame di scienze di 10 studenti in una particolare classe:
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]})
Per calcolare la correlazione Spearman Rank tra i punteggi di matematica e scienze, possiamo utilizzare la funzione spearmanr() in 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
Dal risultato, possiamo vedere che la correlazione del rango di Spearman è -0,41818 e il corrispondente valore p è 0,22911 .
Ciò indica che esiste una correlazione negativa tra i punteggi degli esami di scienze e quelli di matematica.
Tuttavia, poiché il valore p della correlazione non è inferiore a 0,05, la correlazione non è statisticamente significativa.
Nota che potremmo anche usare la seguente sintassi per estrarre semplicemente il coefficiente di correlazione o valore 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
Risorse addizionali
Come calcolare la correlazione del rango di Spearman in R
Come calcolare la correlazione del rango di Spearman in Excel
Come calcolare la correlazione del rango di Spearman in Stata