# Test exact de Fisher

En statistique, le test exact de Fisher est un test statistique exact utilisé pour l'analyse des tables de contingence. Ce test est utilisé en général avec de faibles effectifs mais il est valide pour toutes les tailles d'échantillons. 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.
Fisher aurait conçu le test à la suite d'un commentaire de Muriel Bristol, qui prétendait pouvoir détecter si le thé ou le lait avait été ajouté en premier à sa tasse. Il a testé sa revendication dans une expérience appelée « lady tasting tea ».

## Explication intuitive

Soit un tableau de contingence entre deux variables qualitatives A et B. La première étape consiste à formuler l'hypothèse nulle d'indépendance entre ces deux variables qualitatives. Si ces deux variables sont indépendantes, on peut alors calculer la probabilité de chaque modalité A1, A2... La probabilité de présenter A1 et B1 est alors égale à P(A1) × P(B1). On peut ainsi calculer la probabilité de se trouver dans chaque case du tableau. Enfin, on peut calculer la probabilité, si l'hypothèse nulle est vraie, d'observer un tableau de contingence donné.
La deuxième étape consiste alors à calculer, pour tous les tableaux de contingence possibles dont celui étudié, la possibilité d'observer ce tableau de contingence si l'hypothèse nulle est vraie. On range alors les tableaux de contingence en deux catégories : ceux qui sont plus compatibles avec l'hypothèse nulle que le tableau étudié (leur probabilité est plus élevée sous l'hypothèse nulle), et ceux qui sont autant ou moins compatibles.
La p-value est obtenue en sommant les probabilités des tableaux de contingence qui sont moins probables (sous l'hypothèse nulle) que le tableau étudié.

## Exemple

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. 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 proportion observée 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 si les totaux marginaux sont fixés, la probabilité de cette configuration est donnée, sous l'hypothèse nulle d'absence d'association, par la loi hypergéométrique :
$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!}}$
où (n/k){\textstyle {\binom {n}{k}}} 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 {10}{7429}}=0{,}001346\ldots$
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é :
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\ldots$
En ajoutant les probabilités des quatre tables on trouve $p={\frac {82}{29716}}=0{,}0027594561\ldots$
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 χ$^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.