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
-
Hypothèse nulle (H₀) : Les deux groupes proviennent de la même population, ou, en d’autres termes, les distributions des deux groupes sont égales. Il n’y a pas de différence significative entre les groupes.
-
H₀ : Les distributions des deux groupes sont identiques.
-
-
Hypothèse alternative (H₁) : Les deux groupes proviennent de populations différentes, ce qui signifie qu’il existe une différence significative entre les groupes.
-
H₁ : Les distributions des deux groupes sont différentes.
-
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
basée sur ces rangs.
-
U1 et U2 sont les statistiques de Mann-Whitney pour chaque groupe. Ces valeurs sont calculées à partir des rangs des observations dans les deux groupes.
-
La statistique
est ensuite comparée à une distribution théorique pour déterminer la significativité du test.
Formules de Calcul de U
-
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).
-
-
Calcul de U :
-
, où
est la somme des rangs pour le premier groupe et
est le nombre d’observations dans le premier groupe.
-
, où
est la somme des rangs pour le second groupe et
est le nombre d’observations dans le second groupe.
-
-
Statistique U : La plus petite des valeurs
et
est utilisée comme statistique U pour le test.
Interprétation des Résultats
Une fois que la statistique
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.
-
Valeur p : Si la p-value est inférieure au niveau de signification
(généralement
), on rejette l’hypothèse nulle, ce qui signifie qu’il y a une différence significative entre les deux groupes.
-
Hypothèse nulle : Si la p-value est supérieure au seuil
, on ne rejette pas l’hypothèse nulle, ce qui suggère que les deux groupes proviennent de la même population.
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}')
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 ennp
, 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 tableausample_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 tableausample_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, etp_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.