Test exact de Fisher

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le Test exact de Fisher est un test statistique utilisé pour l'analyse des tables de contingence. Ce test est utilisé en général avec des faibles effectifs mais il est valide pour toutes les tailles d'échantillon. Il doit son nom à son inventeur Ronald Fisher. C'est un test qualifié d'exact car les probabilités peuvent être calculées exactement plutôt qu'en s'appuyant sur une approximation qui ne devient correcte qu'asymptotiquement comme pour le test du \chi^2 utilisé dans les tables de contingence.

Les calculs à la main ne sont raisonnables que pour les tables 2 × 2 mais le principe du test peut s'étendre au cas général et certains logiciels de statistique permettent le calcul pour le cas général.


Exemple[modifier | modifier le code]

Soit un échantillon d'adolescents on sépare l'échantillon entre filles et garçons et entre ceux qui suivent un régime et ceux qui n'en suivent pas et nous supposons que la proportion de filles qui suivent un régime est supérieure à celle des garçons, et nous voulons tester si la différence de proportions observées est significative. Voici les données

Garçons Filles total ligne
régime 1 9 10
non régime 11 3 14
total colonne 12 12 24

Ces données ne sont pas adaptées pour une analyse par un test du \chi^2, parce que les valeurs attendues (théoriques) dans la table sont inférieures à 10, et dans une table de contingence 2 × 2, le nombre de degrés de liberté est toujours égal à 1.

La question que l'on se pose à propos de ces données est : sachant que 10 de ces 24 adolescents pratiquent un régime et que 12 sont des filles, quelle est la probabilité que ces 10 qui pratiquent un régime soient répartis de manière équilibrée entre les filles et les garçons ? Si on choisit 10 adolescents au hasard, quelle est la probabilité que 9 d'entre eux soient parmi les 12 filles et seulement 1 parmi les 12 garçons ?

Avant de passer au test de Fisher nous introduisons quelques notations. On représente les cellules par les lettres a, b, c et d et on note n le total général. La table se présente ainsi :

Garçons Filles Total
Régime a b a + b
Non-régime c d c + d
Totaux a + c b + d a + b + c + d (=n)


Fisher a montré que la probabilité d'obtenir un tel ensemble de valeurs était donnée par la loi hypergéometrique :

p = \frac{ \displaystyle{{a+b}\choose{a}} \displaystyle{{c+d}\choose{c}} }{ \displaystyle{{n}\choose{a+c}} } = \frac{(a+b)!(c+d)!(a+c)!(b+d)!}{a!b!c!d!n!}

 \tbinom nk est le coefficient binomial et le symbole ! indique la factorielle.

Dans l'exemple la probabilité d'obtenir le tableau croisé observé, avec les totaux marginaux donnés, est donc:

p = \frac{10!14!12!12!}{1!9!11!3!24!}= \frac{40}{29716}=0,001346...

De manière à calculer si des données observées sont significativement éloignées de l'indépendance, c'est-à-dire la probabilité d'observer des données aussi ou plus éloignées que celles observées si l'hypothèse nulle (indépendance) est satisfaite, il faut calculer les valeurs de p pour ces tables et les ajouter. Cela donne un test unilatéral; pour un test bilatéral on doit considérer les tables qui sont extrêmes mais dans l'autre direction. Malheureusement classer les tables pour savoir si elles sont ou non aussi extrêmes est problématique. Une approche utilisée dans R avec la fonction "fisher.test" calcule la valeur p en sommant les probabilités de toutes les tables ayant une probabilité inférieure ou égale à celle de la table observée.

Voici la commande permettant d'entrer le tableau croisé de l'exemple présenté plus haut comme une matrice de R et de calculer la valeur de la probabilité.

fisher.test(matrix(c(1,9,11,3),nrow=2))

Et voici la valeur de la probabilité obtenue:

p-value = 0.002759

Cette valeur se calcule aussi assez facilement sans logiciel puissant avec le principe exposé. Il y a en tout quatre tables aussi éloignées ou plus éloignées de l'indépendance que la table observée. Il n'y a en tout que onze tables possibles sachant qu'il y a seulement dix adolescents qui suivent un régime, le nombre de garçons suivant un régime peut varier de 0 jusqu'à 10. Une fois que le nombre de garçons suivant un régime est connu tout le reste de la table est connu, ce qui correspond intuitivement au degré de liberté valant 1. Les quatre tables extrêmes correspondent aux valeurs 0,1,9 et 10 pour le nombre de garçons suivant un régime. La probabilité des deux tables plus éloignées de l'indépendance est très faible elle se calcule comme précédemment:

p = \frac{10!14!12!12!}{0!10!12!2!24!}= \frac{1}{29716}=0,0000336519...

En ajoutant les probabilités des quatre tables on trouve p = \frac{82}{29716}= 0,0027594561...

Le test permet de rejeter l'indépendance entre le sexe et le fait de faire un régime.

Comme cela a été noté plus haut la plupart des logiciels de statistiques modernes calculent le niveau de signification du test exact de Fisher, même si l'approximation du test du \chi^2 est acceptable. Les calculs faits par les logiciels de statistiques sont différents des règles expliquées plus haut en raison des difficultés numériques dues aux très grandes valeurs des factorielles. Une meilleure approche s'appuie sur une fonction gamma ou une fonction log-gamma, mais les méthodes de calcul précis pour les probabilités hypergéométriques ou binomiales font encore partie de la recherche.