Comment calculer la corrélation de rang Spearman en Python
En statistique, la corrélation fait référence à la force et à la direction d’une relation entre deux variables. La valeur d’un coefficient de corrélation peut aller de -1 à 1, avec les interprétations suivantes :
- -1 : une relation négative parfaite entre deux variables
- 0 : aucune relation entre deux variables
- 1 : une relation positive parfaite entre deux variables
Un type spécial de corrélation est appelé corrélation de rang de Spearman , qui est utilisé pour mesurer la corrélation entre deux variables classées. (par exemple, le rang de la note à l’examen de mathématiques d’un élève par rapport au rang de sa note à l’examen de sciences dans une classe).
Ce tutoriel explique comment calculer la corrélation de rang de Spearman entre deux variables en Python
Exemple : corrélation de rang de Spearman en Python
Supposons que nous ayons le DataFrame pandas suivant qui contient la note à l’examen de mathématiques et la note à l’examen de sciences de 10 élèves d’une classe particulière :
import pandas as pd #create DataFrame 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]})
Pour calculer la corrélation Spearman Rank entre les scores en mathématiques et en sciences, nous pouvons utiliser la fonction spearmanr() de 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
À partir du résultat, nous pouvons voir que la corrélation des rangs de Spearman est de -0,41818 et que la valeur p correspondante est de 0,22911 .
Cela indique qu’il existe une corrélation négative entre les résultats aux examens de sciences et de mathématiques.
Cependant, puisque la valeur p de la corrélation n’est pas inférieure à 0,05, la corrélation n’est pas statistiquement significative.
Notez que nous pourrions également utiliser la syntaxe suivante pour extraire simplement le coefficient de corrélation ou la valeur 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
Ressources additionnelles
Comment calculer la corrélation de rang de Spearman dans R
Comment calculer la corrélation des classements Spearman dans Excel
Comment calculer la corrélation de rang de Spearman dans Stata