Le test de Siegel-Tukey

add

\bullet Présentation:

Né suite aux travaux de Sidney Siegel et John Wilder Tukey en 1960, le  test de Siegel-Tukey est une approche non paramétrique permettant de tester si X|_{Y = g_1}, \dots, X|_{Y = g_K}, les sous-échantillons d’une variable continue X distribuée en fonction des K \geq 2 groupes d’une variable qualitative Y, ont même fonction de répartition.

Le test de Siegel-Tukey se base sur le même principe que ceux de Ansari-Bradley, Conover, Klotz et Savage, à savoir la construction d’une fonction score répartissant la distribution des rangs de X autour de la position centrale symbolisée par leur moyenne.

Enfin, le test de Siegel-Tukey est reconnu comme pouvant manquer de puissance.

\bullet Le test:

Hypothèse préliminaire: variable continue distribuée selon K modalités d’une variable qualitative.

La formule de la fonction score intervenant pour calculer la statistique de test de Siegel-Tukey consiste en l’attribution d’un score aux différents rangs R associés à X selon la suite logique suivante:

f(R_1) = 1; f(R_n) = 2; f(R_{n-1}) = 3;

f(R_2) = 4; f(R_3) = 5; f(R_{n-2}) = 6;

f(R_{n-3}) = 7; f(R_4) = 8; f(R_5) = 9;

ect \cdots

La statistique de test a alors pour formule:

ST = \frac{\sum_{k = 1} ^K \frac{1}{n_k} [\sum_{i = 1} ^{n_k} f(R_i) - n_k \overline{f(R)}] ^2}{T ^2}

Avec T ^2 = \frac{\sum_{i = 1} ^n [f(R_i) - \overline{f(R)}] ^2}{n - 1}.

Elle suit une loi du \chi ^2  à (K - 1) degrés de liberté et l’hypothèse H_0 est: « Distribution identique de la variable au sein des K groupes / F_1 = \cdots = F_K« .

Ci-dessous le tableau de la loi du \chi ^2.

addTendance pour le rejet de H_0:

Plus la statistique de test ST de Siegel-Tukey est grande et plus nous avons de chance de rejeter H_0, ce qui revient à dire que,

\sum_{k = 1} ^K \frac{1}{n_k} [\sum_{i = 1} ^{n_k} (f(R|_{Y = g_k}))_i - n_k \overline{f(R)}] ^2 \rightarrow \infty \Rightarrow rejet de H_0

Ce qui implique,

\exists k / \frac{1}{n_k} [\sum_{i = 1} ^{n_k} (f(R|_{Y = g_k}))_i - n_k \overline{f(R)}] ^2 \rightarrow \infty

\Rightarrow \exists k / \sum_{i = 1} ^{n_k} (f(R|_{Y = g_k}))_i >>>> n_k \overline{f(R)}

Soit que la somme des rangs pour l’un des groupes est nettement plus grande que la moyenne des rangs pondérés, impliquant que l’une des distributions est nettement différente des autres.

\bullet Tendance lorsque n \longrightarrow \infty:

Nous proposons ici de vérifier si le test de Siegel-Tukey est sensible aux grands échantillons ou non. Étant donné la formule de la statistique de test, et qui fait intervenir régulièrement les effectifs n_k des différents groupes, il semblerait que ce soit le cas.

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 distribution sont différentes d’un groupe à l’autre.

add

Globalement, quelque soit la taille de l’échantillon, le test statistique rejette 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érentes distributions ne devraient pas être statistiquement différentes. Le tableau ci-dessous présente ces résultats.

add

Jusqu’à N = 1 000 nous restons cohérent avec nos hypothèses, cependant nous voyons qu’à partir d’un échantillon de taille 10 000, le test rejette H_0 à tort.

Nous en déduisons que le test de Siegel-Tukey est influencé par la taille de l’échantillon.

\bullet Annexe théorique:

Cette partie de l’article présente une esquisse des démonstrations pour la fonction génératrice, l’espérance et la variance de la statistique de test ST de Siegel-Tukey dans le cas où le nombre de groupe G = 2.

Démonstration de la fonction génératrice:

Sous l’hypothèse nulle H_0 chacune des \begin{pmatrix} n_1 + n_2 \\ n_1 \end{pmatrix} combinaisons des rangs R  associés à X sont équivalentes. La probabilité des différentes valeurs de ST est alors obtenue comme produit des 1 / \begin{pmatrix} n_1 + n_2 \\ n_1 \end{pmatrix}.

De ce constat, nous pouvons écrire la probabilité de la manière suivante:

P(ST | n_1, n_2 + 1) = f(ST | n_1, n_2) / \begin{pmatrix} \\ n_1 + n_2 \\ n_1 \end{pmatrix}

, avec la fonction de densité:

f(ST | n_1, n_2 + 1) = f(ST | n_1, n_2) + f(ST - N - 1 | n_1 - 1, n_2 + 1)

, en posant n_1 + n_2 = 2N ou n_1 + n_2 = 2N + 1.

Le premier terme étant la fréquence de ST quand ST ne contient pas l’élément de rang N + 1 et le second le cas inverse.

Alternativement, nous pouvons écrire,

(n_1 + n_2 + 1) P(ST | n_1, n_2 + 1) = (n_2 + 1) P(ST | n_1, n_2) + n_1 P(ST - N - 1 |n_1 - 1, n_2 + 1)

La fonction génératrice est alors:

g(u,v) = \prod_{i = 1} ^N ( 1 + u ^i v) ^2 si n_1 + n_2 = 2 N

g(u,v) = ( 1 + u ^{n + 1} v) \prod_{i = 1} ^N ( 1 + u ^i v) ^2 si n_1 + n_2 = 2 N + 1

, dont la fonction de densité f(ST |n_1, n_2) est s’inscrit comme étant le coefficient u ^{ST} v ^{n_1}.

L’espérance et la variance de ST:

En reprenant la notation n_1 + n_2 = 2 N, nous avons:

E[ST] = n_1 E_1(r) = \frac{n_1 (n_1 + n_2 + 2)}{4}

, Avec E_1[r] l’espérance basée sur l’intégrale choisie aléatoirement parmi les N premières intégrales.

En posant:

E_1 [r ^2], l’espérance basée sur le carré de l’une des intégrales choisie aléatoirement parmi les N premières,

E_1 [rs], l’espérance basée sur le produit de deux intégrales distinctes et choisies aléatoirement parmi les N premières,

E_2 [rs], l’espérance basée sur le produit de deux intégrales distinctes (sous contrainte d’être séparées au moins par un pas de deux) et choisies aléatoirement parmi les N premières,

Nous avons,

E[ST ^2] = n_1 E_1 (r ^2) = n_1 E_1 (r ^2) + n_1 (n_1 - 1) E[rs]

 = \frac{(N + 1) (2 N + 1)}{6} + n_1 (n_1 - 1) [2 \begin{pmatrix} N \\ 2 \end{pmatrix} E_1 (rs) + 2 \begin{pmatrix} N \\ 2 \end{pmatrix} ^2 E_2 (rs)] / 2 \begin{pmatrix} 2 N \\ 2 \end{pmatrix}

 = \frac{(N + 1) (2 N + 1)}{6} + n_1 (n_1 - 1) [2 \begin{pmatrix} N \\2 \end{pmatrix} \frac{(3 N + 2) (N + 1)}{12} + 2 \begin{pmatrix} N \\ 2 \end{pmatrix} ^2 \frac{(N + 1) ^4}{4}] / 2 \begin{pmatrix} 2 N \\ 2 \end{pmatrix}

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

La variance peut alors se calculer à son tour,

V(ST) = E[ST ^2] - E[ST] ^2 = \frac{n_1 n_2 (n_ 1 + n_2 - 2) (n_1 + n_2 + 2)}{48 (n_1 + n_2 - 1)}

\bullet Exemple:

Soit l’échantillon ci-dessous:

addNous présentons ci-dessous les trois courbes de densité liées à X|_{Y = 1} (en vert), X_{Y = 2} (en bleu) et X|_{Y = 3} (en rouge):

add

Cette représentation des données permet de voir que les si les distributions de X|_{Y = 2} et X|_{Y = 3} semblent plus ou moins similaires, elles semblent différer de celle de X|_{Y = 1}. Vérifions-le statistiquement.

Dans un premier temps, présentons le vecteur des rangs R associés à X indépendamment de Y:

R = (13,12,2,14,9,1,5,8,17,19,4,20,16,7,11,3,6,15,10,18)

En appliquant la méthode itérative de Siegel-Tukey, nous obtenons la fonction de score suivante:

f(R) = (15,18,4,14,17,1,9,16,7,3,8,2,10,13,19,5,12,11,20,6)

Nous avons alors,

f(R_{Y = 1}) = (15,18,4,14,17,1,9)

f(R_{Y = 2}) = (16,7,3,8,2,10)

f(R_{Y = 3}) = (13,19,5,12,11,20,6)

Et,

\overline{f(R)} = 10.5

Il nous reste à déterminer le dénominateur T ^2 et le numérateur. Pour le dénominateur,

T ^2 = \frac{\sum_{i = 1} ^{20} [(f(R))_i - 10.5] ^2}{20-1} = \frac{665}{19} = 35

Pour le numérateur,

\sum_{k = 1} ^3 \frac{1}{n_k} \times [\sum_{i = 1} ^{n_k} (f(R|_{Y = k}))_i - n_k \times 10.5] ^2

= \frac{[\sum_{i = 1} ^7 (f(R|_{Y = 1}))_i - 7 \times 10.5] ^2}{7} + \frac{[\sum_{i = 1} ^6 (f(R|_{Y = 2}))_i - 6 \times 10.5] ^2}{6} + \frac{[\sum_{i = 1} ^7 (f(R|_{Y = 3}))_i - 7 \times 10.5] ^2}{7}

= \frac{[78 - 73.5] ^2}{7} + \frac{[46 - 63] ^2}{6} + \frac{[86 - 73.5] ^2}{7}

= 2.892857 + 48.16667 + 22.32143

= 73.38096

Par conséquent,

ST = \frac{73.38096}{35} = 1.483516

Si nous reportons la valeur de la statistique de test à la table de la loi du \chi ^2 pour 3 - 1 = 2 degrés de liberté, nous obtenons une p-valeur de 0.7767749 >>>>> 5 \%. Nous en concluons que les trois distributions ne sont pas différentes.

\bullet Application informatique:

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

Package et fonction R:

SiegelTukey.test = function (DATA) {

# La fonction SiegelTukey.test permet d’appliquer le test de Siegel-Tukey quelque soit le nombre de classe. Les données doivent être structurées de la manière suivante: colonne1, variable qualitative Y et colonne2, variable continue X

# Suppression des données manquantes
DATA = na.omit(DATA)

# Restructuration de la base pour être sur qu’elle est au bon format
DATA = as.data.frame(DATA)
DATA[,1] = as.factor(DATA[,1])

# Récupération de la taille d’échantillon
n = dim(DATA)[1]

# Récupération du nombre de classe
Ybiblio = summary(DATA[,1])
K = length(Ybiblio)
DATA = DATA[order(DATA[,2]),]

# Calcul de la fonction score de Siegel-Tukey afin de pouvoir déterminer la statistique de test
f = matrix(0,n,1)

# Cas de base
f[1] = 1
f[n] = 2
f[n-1] = 3
i = 2

# Pour la première moitié, on applique la méthodo en montant
while (i <= n/2) {
f[i] = f[i-1]+3
f[i+1] = f[i]+1
i = i + 2
}
i = 2

# Pour la seconde moitié, on applique la méthodo en descendant
while (i < n/2) {
f[n-i] = f[n-i+1]+3
f[n-i-1] = f[n-i]+1
i = i + 2
if (((n/2) != round(n/2)) && (i+1 > n/2)) {i = i + 3}
}

# Calcul des différentes valeurs nécessaires au calcul de la statistique de test
mf = mean(f)
T2 = sum((f-mf)^2)/(n-1)
N = (sum(f[which(DATA[,1]==names(Ybiblio)[1])]) – Ybiblio[1]*mf)^2/Ybiblio[1]
for (k in 2:K) {N = N + (sum(f[which(DATA[,1]==names(Ybiblio)[k])]) – Ybiblio[k]*mf)^2/Ybiblio[k]}

# Calcul de la statistique de test de Siegel-Tukey
ST = N/T2

# Calcul de la p-valeur
p = pchisq(ST,K-1)

# Mise sous format des différents résultats d’intérêt
Resultats = data.frame(VAR = names(DATA)[2],Pop = n,Statistic = ST,p_valeur = p)
return(Resultats)

}

\bullet Bibliographie: 

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

– Rank sum tests for dispersion de A. R. Ansari et Richard A. Bradley

A nonparametric sum of ranks procedure for relative spread in unpaired samples de Sidney Siegel et John Wilder Tukey