ATELIER G

Le test de dépistage

1. Une question posée à des médecins

Boston, 1978 : soixante médecins et étudiants en médecine face à un calcul.

En 1978, trois médecins, Ward Casscells, Arno Schoenberger et Thomas Graboys, posent la même question à soixante personnes rencontrées dans les couloirs d'hôpitaux universitaires de Harvard : des étudiants en médecine, des internes et des médecins confirmés.

La question

Une maladie touche une personne sur 1 000. Un test de dépistage la détecte chez tous les malades, mais il est aussi positif chez 5 % des personnes saines : ce sont les « faux positifs ». Une personne prise au hasard a un test positif. Quelle est la probabilité qu'elle soit réellement malade ?

Faites votre pari, sans calculer ce pari ne compte pas dans le score

En 1978, la réponse la plus fréquente a été « \(95\,\%\) », donnée par 27 personnes sur 60. Seules 11 personnes sur 60 ont trouvé la bonne réponse. Les écrans suivants vont la calculer avec les outils du chapitre.

2. L'arbre du dépistage

Deux évènements, quatre chemins.

On choisit une personne au hasard et l'on note \(M\) : « la personne est malade » et \(T\) : « le test est positif ».

L'énoncé donne \(p(M) = 0{,}001\), \(p_M(T) = 1\) (le test détecte tous les malades) et \(p_{\overline{M}}(T) = 0{,}05\) (les faux positifs). Les autres branches s'en déduisent : sur les branches issues d'un même point, la somme vaut \(1\).

MMTTTT0,0010,999100,050,95
L'arbre pondéré de la situation.
Que vaut \(p(T)\), la probabilité qu'une personne prise au hasard ait un test positif ? une seule réponse
Aide au calcul

\(0{,}999 \times 0{,}05 = 1 \times 0{,}05 - 0{,}001 \times 0{,}05 = 0{,}05 - 0{,}00005 = 0{,}04995\).

Deux chemins mènent à \(T\). D'après la formule des probabilités totales (voir le théorème 1 et l'exemple 1) : \[p(T) = p(M)\times p_M(T) + p(\overline{M})\times p_{\overline{M}}(T) = 0{,}001\times 1 + 0{,}999\times 0{,}05 = 0{,}001 + 0{,}04995 = 0{,}05095.\] La probabilité qu'une personne prise au hasard ait un test positif est \(0{,}05095\). Le piège \(0{,}05\) ne garde que la probabilité \(p_{\overline{M}}(T)\) des faux positifs ; le piège \(0{,}94905\) est la probabilité \(p(\overline{T})\) d'un test négatif ; le piège \(0{,}001\) ne garde que le chemin des malades.

3. Malade, sachant que le test est positif

La question de 1978, enfin calculée.

Votre pari de l'écran 1

Vous n'avez pas parié : revenez à l'écran 1 pour le faire, sans calculer.

On cherche la probabilité \(p_T(M)\) qu'une personne soit malade sachant que son test est positif. Ce n'est pas \(p_M(T) = 1\), la probabilité que le test soit positif sachant que la personne est malade : \(p_M(T)\) porte sur les malades, alors que \(p_T(M)\) porte sur les personnes au test positif.

\[p_T(M) = \frac{p(M\cap T)}{p(T)} = \frac{p(M)\times p_M(T)}{p(T)} = \frac{0{,}001\times 1}{0{,}05095}.\]
Sans calculatrice : que vaut environ \(p_T(M)\) ?
Aide au calcul

\(0{,}05095\) est très proche de \(0{,}05\).

\(p(T)\) est très proche de \(0{,}05\), donc \(p_T(M) \approx \dfrac{0{,}001}{0{,}05} = \dfrac{1}{50} = 0{,}02\). La probabilité \(p_T(M)\) qu'une personne soit malade sachant que son test est positif vaut donc environ \(0{,}02\), soit \(2\,\%\) : un test positif, ici, ne veut presque jamais dire que l'on est malade.

D'où vient la réponse « 95 % » ?

Beaucoup de personnes interrogées en 1978 ont raisonné ainsi : « le test ne se trompe que dans \(5\,\%\) des cas, donc un test positif est juste dans \(95\,\%\) des cas ». Mais ces \(5\,\%\) sont la probabilité \(p_{\overline{M}}(T)\) qu'une personne saine ait un test positif. Ils ne disent pas quelle part des tests positifs concerne des malades : c'est \(p_T(M)\), et il faut la formule des probabilités totales pour la calculer.

4. Cent mille personnes

Les probabilités, traduites en effectifs.

Pour comprendre ce résultat surprenant, imaginons que l'on teste 100 000 personnes. Dévoilez le tableau ligne à ligne.

GroupeEffectif
Personnes testées100 000
Malades (une sur 1 000)100
Malades au test positif (tous)100
Personnes saines99 900
Saines au test positif (5 %)4 995
Total des tests positifs5 095

Les malades sont rares, mais les personnes saines sont si nombreuses que leurs \(5\,\%\) de faux positifs sont bien plus nombreux que les vrais positifs.

malade   personne saine

Un malade sur 51 tests positifs

Il y a \(5\,095\) tests positifs, dont \(100\) seulement concernent un malade. Or \(5\,095 \div 100 \approx 51\) : en moyenne, sur 51 tests positifs, un seul concerne un malade ; les 50 autres sont des faux positifs. C'est ce que montre la figure : un carré bleu pour 51 carrés.

Parmi \(1\,000\) personnes au test positif, combien environ sont malades ?
Aide au calcul

\(51\) vaut environ \(50\), donc \(\dfrac{1}{51}\) vaut environ \(\dfrac{1}{50} = \dfrac{2}{100}\), c'est-à-dire \(2\,\%\).

Un test positif sur \(51\) environ concerne un malade, soit à peu près \(2\,\%\) des tests positifs : \(2\,\%\) de \(1\,000\), c'est \(20\). On retrouve la probabilité \(p_T(M) \approx 0{,}02\) qu'une personne soit malade sachant que son test est positif.

5. Tout dépend de la prévalence

Et si la maladie était moins rare ?

La prévalence est la proportion de malades dans la population, ici \(p(M)\). Faites-la varier, ainsi que la probabilité \(p_{\overline{M}}(T)\) d'un test positif chez une personne saine, et observez la probabilité \(p_T(M)\) qu'une personne soit malade sachant que son test est positif. La barre représente l'ensemble des tests positifs.

positifs malades positifs sains

\(p(T)\) =  ·  \(p_T(M)\) =

Avec \(5\,\%\) de faux positifs, à partir de quelle prévalence la probabilité \(p_T(M)\) d'être malade sachant que l'on a un test positif dépasse-t-elle \(\dfrac{1}{2}\) ?

Le curseur montre que \(p_T(M)\) dépasse \(\dfrac{1}{2}\) vers \(4{,}8\,\%\). Il faut que les malades positifs, de probabilité \(p(M)\times 1\), l'emportent sur les sains positifs, de probabilité \(p(\overline{M})\times 0{,}05\) : avec \(p(M) \approx 0{,}05\), les deux sont presque égales. C'est pourquoi on réserve souvent les dépistages aux personnes à risque, chez qui la maladie est plus fréquente.

6. Refaire le test : la console Python

Ce qui serait long à la main, la machine le fait en un instant.

Deux idées

Pourquoi refaire un test ? Après un premier test positif, la probabilité d'être malade n'est que d'environ \(2\,\%\) : c'est trop peu pour conclure. Mais avant le test, cette probabilité était \(p(M) = 0{,}001\) ; après un test positif, elle vaut \(p_T(M) \approx 0{,}02\), soit environ vingt fois plus, car \(0{,}02 = 20 \times 0{,}001\). Le test positif a donc rendu la maladie nettement plus probable, sans la rendre certaine : le médecin prescrit un second test, et seulement aux personnes dont le premier test est positif.

Pourquoi \(p(M)\) change-t-elle ? La personne qui passe le second test n'est plus « une personne prise au hasard dans la population » : c'est une personne dont le premier test est positif. Pour elle, la probabilité d'être malade avant le second test n'est plus \(0{,}001\), mais la probabilité \(p_T(M)\) calculée à l'écran 3, environ \(0{,}0196\). Dans l'arbre du second test, c'est donc ce nombre qui remplace \(p(M)\).

On admet que le second test se comporte comme le premier : il détecte tous les malades, \(p_M(T) = 1\), et donne un résultat positif chez \(5\,\%\) des personnes saines, \(p_{\overline{M}}(T) = 0{,}05\). Seul le premier niveau de l'arbre change.

MMTTTT0,01960,9804100,050,95
L'arbre du second test (valeurs arrondies).

Il suffit alors de refaire le calcul de l'écran 3 sur ce nouvel arbre, puis de recommencer pour un troisième test, et ainsi de suite. Le programme ci-dessous le fait. La fonction malade_sachant_positif reçoit \(p(M)\) et \(p_{\overline{M}}(T)\) ; elle calcule \(p(T)\) par la formule des probabilités totales, puis \(p_T(M) = \dfrac{p(M\cap T)}{p(T)}\), exactement comme aux écrans 2 et 3.

def malade_sachant_positif(pM, pMbarre_T): # pM : probabilité p(M) d'être malade avant le test # pMbarre_T : probabilité qu'une personne saine ait un test positif pT = pM * 1 + (1 - pM) * pMbarre_T # formule des probabilités totales return pM * 1 / pT # p_T(M) = p(M ∩ T) / p(T) pM = 0.001 # avant le 1er test pMbarre_T = 0.05 # 5 % de faux positifs for n in range(1, 5): pM = malade_sachant_positif(pM, pMbarre_T) # point de départ du test suivant print("après", n, "test(s) positif(s), probabilité d'être malade :", round(100 * pM, 1), "%")

La ligne pM = malade_sachant_positif(pM, pMbarre_T) traduit la deuxième idée : la probabilité \(p_T(M)\) obtenue après un test devient le \(p(M)\) du test suivant. Exécutez le programme : la première ligne affichée doit redonner les \(2\,\%\) de l'écran 3 — c'est la preuve que le programme calcule juste. Les lignes suivantes vont plus loin.

Si la console ne se charge pas — réseau du lycée, tablette capricieuse —, le même programme s'exécute sur https://sciency.co/console.

Lire les résultats
Tests positifs consécutifsProbabilité d'être malade
12 %
228,6 %
388,9 %
499,4 %

Avec \(5\,\%\) de faux positifs, il faut trois tests positifs de suite pour que la probabilité d'être malade dépasse \(80\,\%\). Python écrit les nombres décimaux avec un point : \(28.6\) se lit \(28{,}6\).

Modifiez le programme pour un test qui donne \(1\,\%\) de faux positifs. Combien de tests positifs consécutifs suffisent alors pour que la probabilité d'être malade dépasse \(80\,\%\) ?

Il suffit de remplacer pMbarre_T = 0.05 par pMbarre_T = 0.01. Le programme affiche alors environ \(9{,}1\,\%\) après un test, puis \(90{,}9\,\%\) après deux : deux tests positifs suffisent.

7. Ce qu'il faut retenir

Le fil, d'un bout à l'autre.

Le raisonnement

L'arbre donne \(p(M)\), \(p_M(T)\) et \(p_{\overline{M}}(T)\). La formule des probabilités totales donne la probabilité \(p(T)\) qu'une personne ait un test positif, puis la probabilité \(p_T(M)\) qu'une personne soit malade sachant que son test est positif :

\[p_T(M) = \frac{p(M\cap T)}{p(T)} = \frac{p(M)\times p_M(T)}{p(M)\times p_M(T) + p(\overline{M})\times p_{\overline{M}}(T)}.\]

Cette égalité porte un nom : la formule de Bayes, du nom du pasteur et mathématicien anglais Thomas Bayes, dont le texte fut publié en 1763, deux ans après sa mort. Elle n'est pas au programme : elle n'est que l'enchaînement de la formule des probabilités totales et de la définition d'une probabilité conditionnelle.

Il ne faut jamais confondre \(p_M(T)\), qui porte sur les malades, et \(p_T(M)\), qui porte sur les personnes au test positif. Quand la maladie est rare, \(p_T(M)\) peut être très petite, même avec un bon test : avant de conclure, on refait le test, et la probabilité \(p_T(M)\) obtenue devient le point de départ du test suivant.

Votre parcours

Vous avez répondu juste à 0 question(s) sur 5.