Test de Kruskal-Wallis

add

\bullet Présentation:

Publié en 1952 par William Henry Kruskal et Wilson Allen Wallis, le test de Kruskal-Wallis est une approche non paramétrique permettant de tester si les sous-échantillons (X|_{Y = g_1}, \cdots, X|_{Y = g_K}), d’une  variable X continue ou ordinale restreinte aux K \geq 2 groupes d’une variable Y, (et transformés en rang) ont leur rang médian qui diffère au sens statistique du terme.

Le test de Kruskal-Wallis est le faux équivalent non paramétrique de l’ANOVA. En effet, ce test a pour hypothèse nulle l’homogénéité de la distribution aléatoire des différents sous-échantillons X|_{Y = k}, \forall k \in [1, K] contrairement à l’ANOVA qui se base sur leur moyenne pondérée par leur variance. Le test de Kurskal-Wallis ne peut donc pas être considéré comme un équivalent au sens stricte.

Cependant, même en cas de normalité et d’homoscédasticité, le test de Kruskal-Wallis présente l’avantage de rester aussi puissant que l’ANOVA.

Enfin, nous présentons également dans cet article le test robuste de Moses, basé sur le test de Kruskal-Wallis, et qui permet de focaliser l’étude sur la dispersion des données et non plus sur leur moyenne.

\bullet Le test:

Hypothèse préliminaire: Variable X continue ou ordinale et variable Y qualitative à K \geq 2 groupes.

Soit R le vecteur des rangs associés à la variable X. Pour K groupes nous noterons l’effectif respectif n_k, \forall k \in {1, \ldots, K} et N = \sum_{k = 1} ^K n_k l’effectif total. La formule du test de Kruskal-Wallis est:

H = (N - 1) \cdot \frac{\sum_{k = 1} ^K n_k \cdot(\overline{R|_{Y = k}} - \overline{R}) ^2}{\sum_{i = 1} ^N (R_i - \overline{R}) ^2}

A noter qu’en cas de présence de rangs ex-aequos sur l’échantillon total, un correctif doit être appliqué, la formule de la statistique de test devient alors:

\tilde{H} = \frac{H}{1 - \frac{\sum_{e = 1} ^{\sharp \lbrace \mbox{nombre de paquets d'ex-aequos} \rbrace} \sharp \lbrace \mbox{paquet d'ex-aequos } e \rbrace ^3 - \sharp \lbrace \mbox{paquet d'ex-aequos } \rbrace e}{N ^3 - N}}

La loi que suit cette statistique de test dépend grandement de la configuration des données. Ainsi, si la variable YK \leq 5 catégories ou que les effectifs sont trop petits et que la variable X ne contient pas d’ex-aequos, la statistique de test suit une loi de Kruskal-Wallis. Dans le cas contraire, elle suit une loi du \chi ^2 à K - 1 degrés de liberté. L’hypothèse H_0 est: « égalité des médianes des rangs / mediane(R|_{Y = 1}) = \cdots = mediane(R|_{Y = K})« .

Ci-dessous la table de la loi de Kruskal-Wallis:

add

Ci-dessous la table de la loi du \chi ^2:

add47

Tendance pour le rejet de H_0:

Deux cas se distinguent. Celui où H \rightarrow 0 et nous acceptons H_0 et celui où H \rightarrow + \infty et nous rejettons H_0.

Concernant le premier cas,

H \rightarrow 0 \Rightarrow (N - 1) \cdot \frac{\sum_{k = 1} ^K n_k \cdot (\overline{R|_{Y = k}} - \overline{R}) ^2}{\sum_{i = 1} ^N (R_i - \overline{R}) ^2} \rightarrow 0

\Rightarrow \sum_{k = 1} ^K n_k \cdot (\overline{R|_{Y = k}} - \overline{R}) ^2 \rightarrow 0

\Rightarrow \forall k, \overline{R|_{Y = k}} - \overline{R} \rightarrow 0

\Rightarrow \forall k, \overline{R|_{Y = k}} \rightarrow \overline{R}

Soit que les moyennes des rangs de chacun des sous-échantillons soient égales à la moyenne globale, ce qui reviendrait à décrire une distribution aléatoire. 

Pour le second cas,

H = (N - 1) \cdot \frac{\sum_{k = 1} ^K n_k \cdot (\overline{R|_{Y = k}} - \overline{R}) ^2}{\sum_{i = 1} ^N (R_i - \overline{R}) ^2} \rightarrow + \infty

Notons que le dénominateur ne converge jamais vers 0 étant donné sa formule sauf pour le cas suivant, qui ne devrait jamais se produire: X n’est composée que de valeurs égales et donc tous les rangs sont ex-aequos.

Par conséquent, seul le numérateur a le plus d’influence sur le résultat de la statistique de test. Ainsi,

\sum_{k = 1} ^K n_k \cdot (\overline{R|_{Y = k}} - \overline{R}) ^2 \rightarrow + \infty \Rightarrow \exists k, \overline{R|_{Y = k}} >>>> \overline{R}

Soit l’une des propriétés les plus importantes du test de Kruskal-Wallis, à savoir qu’il suffit qu’un rang moyen soit différent de tous les autres pour que le test devienne significatif et rejette H_0.

Il est intéressant de voir le fonctionnement de ce test qui consiste à mesurer l’écart entre les différentes moyennes des rangs et la moyenne global sur la distance de chaque rang d’observation avec la moyenne globale soit la fluctuation de l’échantillon dans un cas parfaitement homogène. Par exemple, le rapport vaut 1 si nous avons autant d’observations pour X que de groupes pour Y.

Le test robuste de Moses:

Créé par Lincoln E. Moses en 1963, le test robuste de Moses permet une approche similaire au test de Kruskal-Wallis mais cette fois-ci en s’affranchissant de la connaissance sur les paramètres de localisation, l’idée étant ici de se concentrer sur leur dispersion. A noter que l’approche demeure moins puissante que celles des tests de Klotz ou de Mood.

Dans un premier temps, il convient de fixer un nombre H de partitions.

Le test robuste de Moses se divise en trois étapes:

– La première étape consiste à partitionner les données en H sous-groupes pour les K différents groupes de Y. Nous obtenons donc H \times K partitions de taille: n_{H_1} = \frac{H}{n_1}, \dots, n_{H_K} = \frac{H}{n_K}. A savoir que les individus ne permettant pas de composer une partition de même taille que les partitions d’un meme groupe k sont retirées du processus.

– La seconde étape consiste à calculer la variabilité à l’intérieur du groupe l \in \lbrace 1, \cdots, H \times K \rbrace au travers de la formule:

V_l = \sum_{i = 1} ^{n_{H_l}} (X_{i,l} - \overline{X_l}) ^2

Nous obtenons alors le vecteur V_H = (V_1, \cdots, V_{H \times K}) auquel correspond l’appartenance aux différents K groupes de Y. Ce vecteur sera noté Y_H car de même longueur H \times K que V_H.

– La troisième étape consiste à appliquer le test de Kruskal-Wallis sur (Y_H, V_H). L’approche non paramétrique se justifie car la distribution au sein des V_H |_{Y = k}, \forall k \in [1,K] est inconnue à ce stade de la procédure, de plus l’étape deux réduit nettement la taille du jeu de données.

La statistique du test robuste de Moses suit la même loi que celle du test de Kruskal-Wallis et l’hypothèse H_0 est la même..

\bullet Tendance lorsque n \longrightarrow \infty:

Nous proposons ici de vérifier si le test de Kruskal-Wallis est sensible aux grands échantillons ou non.

Le tableau ci-dessous présente l’évolution des p-valeurs associées aux statistiques de test calculées sur plusieurs simulations dans le cas où les rangs moyens sont différents d’un groupe à l’autre.

add

Globalement, quelque soit la taille de l’échantillon, le test statistique rejète H_0, ce qui est en accords avec nos hypothèses.

Procédons à la même expérience mais cette fois-ci dans un cas où les différents rangs moyens ne devraient pas être statistiquement différents. Le tableau ci-dessous présente ces résultats.

add

Jusqu’à N = 10 000 nous restons cohérent avec nos hypothèses, néanmoins nous voyons qu’à partir d’un échantillon de taille 100 000  le test rejette H_0 à tort. Nous voyons que même si le test de Kruskal-Wallis subit les effets des grands échantillons, il semble leur présenter une certaine résistance.

\bullet Annexe théorique:

Le statistique de test H connait également une autre écriture:

H = (N - 1) \cdot \frac{\sum_{k = 1} ^K n_k \cdot (\overline{R|_{Y = k}} - \overline{R}) ^2}{\sum_{i = 1} ^N (R_i - \overline{R}) ^2} = \frac{12}{N \cdot (N + 1)} \sum_{k = 1} ^K \frac{\sum_{i = 1} ^{n_k} [(R|_{Y = k})_i] ^2}{n_k} - 3 (N + 1)

Nous nous proposons ici de démontrer l’égalité. 

Partons du principe que nous n’avons pas d’ex-aequos afin de raccourcir la démonstration.

Commençons par le dénominateur. Nous avons,

\sum_{i = 1} ^N [R_i - \overline{R}] ^2 = \sum_{i = 1} ^N R_i ^2 - 2 \overline{R} \cdot \sum_{i = 1} ^N R_i + \overline{R} ^2 \sum_{i = 1} ^N 1

= \frac{(2 N + 1) \cdot (N + 1) \cdot N}{6} - 2 \frac{\sum_{i = 1} ^N R_i}{N} \cdot \frac{N \cdot (N + 1)}{2} + [\frac{\sum_{i = 1} ^N R_i}{N}] ^2 N

 = \frac{(2 N + 1) \cdot (N + 1) \cdot N}{6} - 2 \frac{\frac{N \cdot (N + 1)}{2}}{N} \frac{N \cdot (N + 1)}{2} + [\frac{\frac{N \cdot (N + 1)}{2}}{N}] ^2 N

 = \frac{(2 N + 1) \dot (N + 1) \cdot N}{6} - \frac{N \cdot (N + 1) ^2}{2} + \frac{N \cdot (N + 1) ^2}{4}

 = \frac{N \cdot (N + 1)}{12} \cdot [2 (2 N + 1) - 6 (N + 1) + 3 (N + 1)]

= \frac{N \cdot (N + 1)}{12} \cdot [4 N + 2 - 3 N - 3]

= \frac{N \cdot (N + 1)}{12} \cdot (N - 1)

Et donc,

\Rightarrow H = \frac{12}{N \cdot (N + 1) \cdot (N - 1)} (N - 1) \sum_{k = 1} ^K n_k [\overline{R|_{Y = k}} - \overline{R}] ^2

= \frac{12}{N \cdot (N + 1)} \sum_{k = 1} ^K n_k [\overline{R|_{Y = k}} - \overline{R}] ^2

Il nous reste plus qu’à développer le terme \sum_{k = 1} ^K n_k [\overline{R|_{Y = k}} - \overline{R}] ^2. Dés lors, nous avons:

\sum_{k = 1} ^K n_k [\overline{R|_{Y = k}} - \overline{R}] ^2 = \sum_{k = 1} n_k \overline{R|_{Y = k}} ^2 - 2 \overline{R} \sum_{k = 1} ^K n_k \overline{R|_{Y = k}} + \overline{R} ^2 \sum_{k = 1} ^K n_k

 = \sum_{k = 1} ^K n_k \cdot [\frac{\sum_{i = 1} ^{n_k} (R|_{Y = k})_i}{n_k}] ^2 - 2 \frac{\sum_{i = 1} ^N R_i}{N} \cdot \sum_{k = 1} ^K n_k R|_{Y = k} + [\frac{\sum_{i = 1} ^N R_i}{N}] ^2 N

 = \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - 2 \frac{\frac{N \cdot (N + 1)}{2}}{N} \sum_{k = 1} ^K n_k \sum_{i = 1} ^{n_k} \frac{(R|_{Y = k})_i}{n_k} + [\frac{\frac{N \cdot (N + 1)}{2}}{N}] ^2 N

 = \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - (N + 1) \sum_{k = 1} ^K \sum_{i = 1} ^{n_k} (R|_{Y = k})_i + \frac{N \cdot (N + 1) ^2}{4}

 = \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - (N + 1) \sum_{i = 1} ^N (R|_{Y = k})_i + \frac{N \cdot (N + ) ^2}{4}

 = \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - \frac{N \cdot (N + 1) ^2}{2} + \frac{N \cdot (N + 1) ^2}{4}

 = \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - \frac{1}{4} \cdot [2 (N + 1) ^2 N - N \cdot (N + 1) ^2]

 = \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - \frac{1}{4} N \cdot (N + 1) ^2

Nous avons donc,

H = \frac{12}{N \cdot (N + 1)} \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - \frac{12}{N \cdot (N + 1)} \cdot \frac{1}{4} \cdot N \cdot (N + 1) ^2

 = \frac{12}{N \cdot (N + 1)} \sum_{k = 1} ^K \frac{[\sum_{i = 1} ^{n_k} (R|_{Y = k})_i] ^2}{n_k} - 3 (N + 1)

\bullet Exemple:

Soit l’échantillon ci-dessous:

add

Les boxplots suivants offrent une visualisation plus concrète de notre jeu de données:

add

Dans un premier temps, notons qu’aucune valeur de X n’est identique à une autre. La transformation en rangs de X nous donne le vecteur R suivant:

add

Ce qui nous donne:

\overline{R_{Y = 1}} = 8 et n_1 = 7

\overline{R_{Y = 2}} = 14 et n_1 = 6

\overline{R_{Y = 3}} = 10 et n_1 = 7

\overline{R} = \frac{20 \cdot (20 + 1)}{2} = \frac{21}{2} = 10.5 et N = 20

L’application de la formule de la statistique de test nous donne donc,

H = (20 - 1) \times \frac{7 \times (8 - 10.5) ^2 + 6 \times (14 - 10.5) ^2 + 7 \times (10 - 10.5) ^2}{(12 - 10.5) ^2 + \cdots + (18 - 10.5) ^2}

= 19 \times \frac{43.75 + 73.5 + 1.75}{2.25 + \cdots 56.25}

= 19 \times \frac{119}{665}

= 19 \times 0.1789474

= 3.4

Si nous nous nous reportons à la table de la loi du \chi ^2 pour 3 - 1 = 2 degrés de liberté, nous obtenons une p-valeur de 0.1827, nous ne pouvons pas rejeter H_0. Nous en concluons que la variable X n’est pas lié à la variable Y de part sa distribution aléatoire quelque soit le groupe.

\bullet Application informatique:

Procédure SAS: http://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_npar1way_sect020.htm

Package et fonction R: https://stat.ethz.ch/R-manual/R-patched/library/stats/html/kruskal.test.html

\bullet Bibliographie:

– Use of ranks in one-criterion variance analysis de William Kruskal et Wilson Allen Wallis

– Statistique, dictionnaire encyclopédique de Yadolah Dodge

– Data Mining et statistique décisionnelle. L’intelligence des données de Stéphane Tufféry

– Rank tests of dispersion de Lincoln E. Moses

– Comparaison de populations, tests non paramétriques de Ricco Rakotomalala