Test de Spearman

Le test de Spearman, ou corrélation de rang de Spearman, est un test non paramétrique qui mesure la force et la direction d’une relation monotone entre deux variables. Contrairement au test de Pearson, qui évalue la relation linéaire, le test de Spearman est utilisé pour détecter des relations monotones, qu’elles soient linéaires ou non.

Hypothèses du Test de Spearman

Coefficient de Corrélation de Spearman (ρ)

Le coefficient de corrélation de Spearman (ρ) mesure la force et la direction d’une relation monotone entre deux variables en utilisant les rangs des données plutôt que les valeurs elles-mêmes.

La formule pour calculer

ρρ

est :

 

ρ=16di2n(n21)ρ = 1 – \frac{6 \sum d_i^2}{n(n^2 – 1)}

où :

Interprétation du Coefficient de Corrélation de Spearman

Interprétation de la Valeur p du Test de Spearman

Fonctions :

  • stats.spearmanr()

    La fonction stats.spearmanr() de SciPy calcule le coefficient de corrélation de Spearman, qui évalue la relation monotone entre deux variables. Contrairement au coefficient de corrélation de Pearson, qui mesure la corrélation linéaire, le coefficient de Spearman peut capturer des relations monotones, qu'elles soient linéaires ou non. Il est basé sur les rangs des valeurs plutôt que sur les valeurs elles-mêmes. Cette méthode est utile lorsque les données ne suivent pas une distribution normale ou lorsqu'il existe des relations non linéaires entre les variables.

    Importation :

    from scipy import stats

    Attributs :

    Nom Type Description
    x array-like Un tableau de données représentant la première variable.
    y array-like Un tableau de données représentant la deuxième variable à comparer avec la première.
    alternative str, optionnel Spécifie l'hypothèse alternative. Les options sont "two-sided", "greater", et "less". Par défaut, il est fixé à "two-sided".

    Exemple de code :

    from scipy import stats
    import numpy as np
    
    # Création de deux variables x et y
    x = np.array([1, 2, 3, 4, 5])
    y = np.array([5, 4, 3, 2, 1])
    
    # Calcul du coefficient de corrélation de Spearman et de la p-valeur
    corr_coefficient, p_value = stats.spearmanr(x, y)
    
    # Affichage des résultats
    print(f'Coefficient de corrélation de Spearman: {corr_coefficient}')
    print(f'P-valeur: {p_value}')
    Résultat du code

    Explication du code :

    from scipy import stats importe le module stats de la bibliothèque scipy, qui contient des fonctions statistiques permettant de réaliser des tests de corrélation, d'hypothèses et d'autres analyses statistiques.

    import numpy as np importe la bibliothèque numpy, renommée ici en np, utilisée pour manipuler des tableaux (arrays) et effectuer des calculs numériques rapides et efficaces.

    Création de deux variables x et y

    x = np.array([1, 2, 3, 4, 5]) crée un tableau x contenant les valeurs [1, 2, 3, 4, 5], représentant les données de la première variable.

    y = np.array([5, 4, 3, 2, 1]) crée un tableau y contenant les valeurs [5, 4, 3, 2, 1], représentant les données de la deuxième variable.

    Calcul du coefficient de corrélation de Spearman et de la p-valeur

    corr_coefficient, p_value = stats.spearmanr(x, y) applique le test de corrélation de Spearman entre les variables x et y. La corrélation de Spearman est une mesure de la relation monotone entre deux variables. Elle évalue si, lorsque l'une des variables augmente, l'autre augmente ou diminue de manière régulière, indépendamment de la linéarité. Elle est moins sensible aux valeurs extrêmes que le coefficient de Pearson. Ce test retourne deux valeurs : corr_coefficient, le coefficient de corrélation de Spearman, et p_value, la p-valeur associée au test.

    Affichage des résultats

    print(f'Coefficient de corrélation de Spearman: {corr_coefficient}') affiche la valeur du coefficient de corrélation de Spearman. Ce coefficient varie entre -1 et 1 : un coefficient proche de 1 indique une relation monotone positive forte, proche de -1 indique une relation monotone négative forte, et proche de 0 indique aucune relation monotone.

    print(f'P-valeur: {p_value}') affiche la p-valeur associée au test. Si la p-valeur est inférieure à un seuil de signification (généralement 0.05), cela suggère que la relation observée est statistiquement significative, c'est-à-dire que la relation entre les deux variables n'est probablement pas due au hasard.