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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *