Tableau de contingence et inférence bayésienne

Faux positifs, faux négatifs · Sensibilité et spécificité · Le paradoxe du test fiable

Terminale — Ens. Scientifique Intelligence artificielle Probabilités Calculateur interactif

1. Contexte historique

Angleterre, XVIIIe siècle

Thomas Bayes (1701–1761) est un pasteur presbytérien anglais et mathématicien amateur. Il s'intéresse à un problème alors ouvert : comment remonter des effets observés aux causes probables ? Par exemple, sachant qu'un test médical est positif, quelle est la probabilité que le patient soit réellement malade ?

Bayes ne publie jamais ses travaux de son vivant. C'est son ami Richard Price qui retrouve son manuscrit après sa mort et le fait publier en 1763 sous le titre An Essay towards solving a Problem in the Doctrine of Chances. Le mathématicien français Pierre-Simon de Laplace reformule et généralise le résultat quelques décennies plus tard, lui donnant sa forme moderne.

Aujourd'hui, ce raisonnement — appelé inférence bayésienne — est au cœur de l'intelligence artificielle : diagnostic médical assisté, filtres anti-spam, détection de fraude bancaire, systèmes de recommandation.

2. Vocabulaire et tableau de contingence

On considère un test binaire (positif / négatif) destiné à détecter un caractère binaire (malade / sain, spam / non-spam, défaillant / conforme…). Le test n'est jamais parfait : il peut se tromper dans les deux sens.

Définitions — Les 4 issues d'un test

Ces quatre effectifs se rangent naturellement dans un tableau de contingence :

Test positifTest négatifTotal
MaladeVPFN$M$
SainFPVN$\bar{M}$
Total$T^+$$T^-$$N$
Trois indicateurs clés

3. Construire un tableau de contingence

Méthode
  1. À partir de la prévalence $p$ et de l'effectif total $N$, calculer le nombre de malades $M = pN$ et de sains $\bar{M} = (1-p)N$.
  2. À partir de la sensibilité $Se$, répartir les malades : $VP = Se \times M$ et $FN = (1-Se) \times M$.
  3. À partir de la spécificité $Sp$, répartir les sains : $VN = Sp \times \bar{M}$ et $FP = (1-Sp) \times \bar{M}$.
Exemple — Antivirus et fichiers infectés

Un antivirus analyse 1 000 fichiers, dont 15 % sont réellement infectés. Le logiciel met en quarantaine 98 % des fichiers infectés ($Se = 0{,}98$), mais met aussi à tort en quarantaine 4 % des fichiers sains ($Sp = 1 - 0{,}04 = 0{,}96$).

QuarantaineNon quarantaineTotal
Infecté1473150
Non infecté34816850
Total1818191000

Parmi les 181 fichiers mis en quarantaine, seuls 147 sont réellement infectés : la valeur prédictive positive du test vaut $\frac{147}{181} \approx 81{,}2\,\%$.

4. Calculateur interactif — le paradoxe du test fiable

Fais varier la prévalence, la sensibilité et la spécificité pour observer un phénomène surprenant : un test très fiable peut produire une majorité de faux positifs lorsque la maladie est rare.

1,0 %
99,0 %
99,0 %
Test positifTest négatifTotal
Malade
Sain
Total10 000
Taux de faux positifs parmi les positifs
Taux de faux négatifs parmi les négatifs
VPP — $P(\text{malade} \mid \text{test positif})$

Simulation sur une population fictive de 10 000 personnes.

5. La formule de Bayes

Le calcul précédent peut se généraliser sous forme d'une formule, sans reconstruire tout le tableau à chaque fois.

M p 1−p T+ T− Se 1−Se T+ T− 1−Sp Sp VP : p·Se FN : p·(1−Se) FP : (1−p)·(1−Sp) VN : (1−p)·Sp

Arbre pondéré — les deux chemins menant à « T+ » (en bleu) donnent le dénominateur de la formule de Bayes.

Formule de Bayes — Valeur prédictive positive

La probabilité d'être réellement malade sachant que le test est positif vaut :

$$\boxed{P(M \mid T^+) = \dfrac{p \times Se}{p \times Se + (1-p) \times (1-Sp)}}$$

Le numérateur est la probabilité du chemin « malade et positif » ; le dénominateur est la probabilité totale d'être positif (chemin malade + chemin sain), conformément à la formule des probabilités totales.

🔗 Renvoi — la formule des probabilités totales et la formule de Bayes sous leur forme générale sont étudiées en Première spécialité, chapitre 10 (Probabilités conditionnelles). Le programme d'Enseignement Scientifique se limite au raisonnement direct sur le tableau de contingence.

🎯 Vérifie que tu as compris — Exercices WIMS

Probabilités conditionnelles et arbres
Arbre de probabilité — Probabilités conditionnelles
▸ Arbre pondéré et probabilités conditionnelles
Statistiques — Effectifs et pourcentages
Pourcentages · Proportions · Évolutions
▸ Proportion ▸ Taux d'évolution ▸ Effectifs et pourcentages

6. Exercices

Exercice 1 — Groupes sanguins

Une étude sur 100 personnes donne la répartition suivante selon le groupe sanguin et le facteur Rhésus :

OABABTotal
Rhésus +36388385
Rhésus −671115
Total424594100

a. Quelle proportion de la population est de rhésus positif ? b. Quelle proportion de la population est du groupe A ? c. Parmi les personnes du groupe O, quelle proportion est de rhésus positif ? Comparer avec la proportion parmi le groupe B.

Voir la correction

a. $\frac{85}{100} = 85\,\%$ sont de rhésus positif.

b. $\frac{45}{100} = 45\,\%$ sont du groupe A.

c. Parmi le groupe O : $\frac{36}{42} \approx 85{,}7\,\%$ de rhésus positif. Parmi le groupe B : $\frac{8}{9} \approx 88{,}9\,\%$. Les proportions sont proches, mais celle du groupe B est légèrement supérieure.

Exercice 2 — Une maladie rare (le paradoxe du test)

Une maladie touche 1 personne sur 1 000. Le test de dépistage a une sensibilité de 99 % et une spécificité de 98 %. Sur une population de 100 000 personnes :

a. Construire le tableau de contingence. b. Calculer la valeur prédictive positive du test. c. Commenter le résultat obtenu.

Voir la correction

a. $M = 0{,}001 \times 100\,000 = 100$ malades, $\bar{M} = 99\,900$ sains.
$VP = 0{,}99 \times 100 = 99$ ; $FN = 1$.
$FP = 0{,}02 \times 99\,900 = 1\,998$ ; $VN = 97\,902$.

Test +Test −Total
Malade991100
Sain1 99897 90299 900
Total2 09797 903100 000

b. $VPP = \dfrac{99}{2\,097} \approx 4{,}7\,\%$.

c. Bien que le test soit très fiable (99 % de sensibilité, 98 % de spécificité), plus de 95 % des personnes testées positives ne sont pas malades ! Ceci s'explique par la rareté de la maladie : le grand nombre de personnes saines génère, même avec un faible taux d'erreur, un nombre de faux positifs supérieur au nombre de vrais positifs. C'est pourquoi un résultat positif à un dépistage de masse est presque toujours suivi d'un second test de confirmation.

7. Code Python

Construction automatique du tableau de contingence et calcul de la VPP :

def tableau_contingence(N, p, Se, Sp):
    """Retourne (VP, FN, FP, VN) pour une population de taille N."""
    M = p * N            # nombre de malades
    M_sain = N - M        # nombre de sains
    VP = Se * M
    FN = M - VP
    VN = Sp * M_sain
    FP = M_sain - VN
    return VP, FN, FP, VN

def vpp(p, Se, Sp):
    """Valeur prédictive positive (formule de Bayes)."""
    return (p * Se) / (p * Se + (1 - p) * (1 - Sp))

# Exemple : maladie rare (1/1000), test à 99% de sensibilité et spécificité
N, p, Se, Sp = 100_000, 0.001, 0.99, 0.98
VP, FN, FP, VN = tableau_contingence(N, p, Se, Sp)
print(f"VP={VP:.0f}  FN={FN:.0f}  FP={FP:.0f}  VN={VN:.0f}")
print(f"VPP = {vpp(p, Se, Sp)*100:.1f} %")
# VP=99  FN=1  FP=1998  VN=97902
# VPP = 4.7 %
Exercice 3 — Filtrage des spams (inférence bayésienne)

Un logiciel anti-spam analyse les courriels. On sait que 12 % des courriels sont indésirables (spam).

Le filtre détecte 95 % des spams (ils contiennent l'expression suspecte E). Parmi les courriels légitimes, 1 % contiennent aussi cette expression E par hasard.

Sur 10 000 courriels : a. Combien de spams contiennent l'expression E ? b. Combien de courriels légitimes ne la contiennent pas ? c. Si un courriel contient E, quelle est la probabilité que ce soit un spam ?

Voir la correction

a. 12 % de 10 000 = 1 200 spams. 95 % de 1 200 = 1 140 spams contiennent E.

b. 8 800 courriels légitimes. 99 % de 8 800 = 8 712 ne contiennent pas E.

c. Contiennent E : 1 140 (spams) + 88 (légitimes, soit 1 % de 8 800) = 1 228. Parmi eux, 1 140 sont des spams soit environ 92,8 %. Le filtre est efficace !

Contient EPas ETotal
Spam1 140601 200
Légitime888 7128 800
Total1 2288 77210 000
Exercice 4 — Contrôle qualité en usine

Une usine produit 34 000 pièces par jour avec deux machines. La machine A produit 14 000 pièces (taux de défaut : 1 %). La machine B produit 20 000 pièces (taux de défaut : 0,5 %).

a. Construire le tableau de contingence (machine / présence de défaut). b. On prélève une pièce au hasard ; elle est défectueuse. Quelle est la probabilité qu'elle provienne de la machine A ? de la machine B ?

Voir la correction
DéfautOkTotal
Machine A14013 86014 000
Machine B10019 90020 000
Total24033 76034 000

b. Parmi les 240 pièces défectueuses, 140 viennent de A soit 140/240 ≈ 58 % et 100/240 ≈ 42 % de B. Même si la machine B produit plus, son taux de défaut plus faible compense : les deux machines contribuent de façon comparable aux défauts.

8. Ce qu'il faut retenir

Bilan