Test de Mann-Whitney

Le test de Mann-Whitney, également appelé test U de Mann-Whitney, est un test non paramétrique utilisé pour comparer les différences entre deux groupes indépendants. Contrairement au test t de Student, qui fait l’hypothèse que les données suivent une distribution normale, le test de Mann-Whitney ne fait aucune hypothèse sur la distribution des données et est donc utilisé lorsque les données ne suivent pas une loi normale ou que les tailles d’échantillons sont petites.

Hypothèses du Test de Mann-Whitney

Méthode de Calcul

Le test de Mann-Whitney repose sur le rang des valeurs dans les deux groupes. Le test compare les rangs des valeurs des deux groupes et calcule une statistique

UU

basée sur ces rangs.

Formules de Calcul de U

  1. Calcul des rangs :

    • Combine les données des deux groupes et attribue un rang à chaque valeur.

    • Si deux valeurs sont égales, elles reçoivent le même rang (moyenne des rangs).

  2. Calcul de U :

    • U1=R1n1(n1+1)2U_1 = R_1 – \frac{n_1(n_1 + 1)}{2}, où

      R1R_1 est la somme des rangs pour le premier groupe et

      n1n_1 est le nombre d’observations dans le premier groupe.

    • U2=R2n2(n2+1)2U_2 = R_2 – \frac{n_2(n_2 + 1)}{2}, où

      R2R_2 est la somme des rangs pour le second groupe et

      n2n_2 est le nombre d’observations dans le second groupe.

  3. Statistique U : La plus petite des valeurs

    U1U_1 et

    U2U_2 est utilisée comme statistique U pour le test.

Interprétation des Résultats

Une fois que la statistique

UU

est calculée, il est comparé à la valeur critique d’une table de Mann-Whitney ou on peut également obtenir la p-value à partir de cette statistique.

Fonctions :

  • stats.mannwhitneyu()

    La fonction stats.mannwhitneyu() de SciPy effectue le test de Mann-Whitney U, qui est utilisé pour comparer deux échantillons indépendants afin de vérifier s'ils proviennent de la même distribution. Ce test est souvent utilisé lorsque les données ne suivent pas une distribution normale, ce qui en fait une alternative au test t de Student. Il est particulièrement utile dans les situations où les données sont ordinales ou lorsque les variances des échantillons sont inégales.

    Importation :

    from scipy import stats

    Attributs :

    Nom Type Description
    x array-like Le premier échantillon de données.
    y array-like Le deuxième échantillon de données.
    alternative str, optionnel Type d'hypothèse alternative à tester. Les options sont `'two-sided'`, `'less'`, ou `'greater'`. Par défaut, c'est `'two-sided'`.
    use_continuity bool, optionnel Si `True`, la correction de continuité de Yates est appliquée. Par défaut, c'est `True`.
    method str, optionnel La méthode pour calculer la statistique U. Par défaut, c'est `'auto'`, mais il est possible de spécifier `'asymptotic'` ou `'exact'` si nécessaire.

    Exemple de code :

    from scipy import stats
    import numpy as np
    
    # Création de deux échantillons d'exemple
    sample_1 = np.array([23, 21, 19, 22, 20, 24, 25])
    sample_2 = np.array([30, 29, 31, 28, 30, 29, 32])
    
    # Réalisation du test de Mann-Whitney U
    u_stat, p_value = stats.mannwhitneyu(sample_1, sample_2)
    
    # Affichage de la statistique U et de la p-valeur
    print(f'Statistique U: {u_stat}')
    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, comme les tests d'hypothèses.

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

    Création de deux échantillons d'exemple

    sample_1 = np.array([23, 21, 19, 22, 20, 24, 25]) crée un tableau sample_1 qui contient les valeurs de l'échantillon 1. Ces valeurs peuvent représenter, par exemple, des observations sur une variable dans une étude.

    sample_2 = np.array([30, 29, 31, 28, 30, 29, 32]) crée un tableau sample_2 qui contient les valeurs de l'échantillon 2, similaires à sample_1 mais provenant d'un autre groupe.

    Réalisation du test de Mann-Whitney U

    u_stat, p_value = stats.mannwhitneyu(sample_1, sample_2) applique le test de Mann-Whitney U, qui est un test non paramétrique pour comparer deux échantillons indépendants afin de vérifier si leurs distributions sont différentes. Le test retourne deux valeurs : u_stat, la statistique U calculée, et p_value, la p-valeur associée au test.

    Affichage de la statistique U et de la p-valeur

    print(f'Statistique U: {u_stat}') affiche la valeur de la statistique U calculée par le test de Mann-Whitney.

    print(f'P-valeur: {p_value}') affiche la p-valeur associée au test. Cette p-valeur permet de déterminer si la différence entre les deux échantillons est statistiquement significative. Une p-valeur inférieure à 0.05 (par exemple) indiquerait que les deux échantillons proviennent probablement de distributions différentes.