7.1 Probabilités

La vidéo suivante vous introduit la notion de probabilité et le calcul de probabilités d’une manière plaisante à partir d’un jeu de hasard proposé par un petit chat à ses amis…

Sachant qu’un évènement en statistique est un fait qui se produit, la probabilité que cet évènement se produise effectivement peut être quantifiée sur base de l’observation des réalisations passées. Ainsi si l’évènement en question s’est produit, disons, 9 fois sur un total de 12 réalisations, nous dirons que la probabilité que cet évènement se produise est de 9/12, soit 0,75. Notez qu’une probabilité est un nombre compris entre zéro (lorsqu’il ne se produit jamais) et un (lorsqu’il se produit toujours).

On écrira, pour la probabilité de l’évènement E :

\[0 \leq \mathrm{P}(E) \leq 1\]

7.1.1 Dépistage

Voyons tout de suite une application en biologie et en médecine : le dépistage d’une maladie qui touche 8% de la population. Le test de dépistage mis en place détecte la maladie dans 95% des cas lorsque la personne testée en est atteinte. De plus, le test se trompe dans 10% des cas pour les personnes saines. Comment connaître le risque d’être malade si on est diagnostiqué positif par ce test ?

Notons d’emblée que les deux évènements “malade” et “sain” sont les seuls possibles. A un moment donné, une personne a la maladie ou ne l’a pas. De plus il n’est pas possible que ces deux évènements se produisent simultanément pour la même personne. Nous parlons alors d’évènements disjoints.

Pour résoudre ce problème, nous devons d’abord apprendre à combiner des probabilités. Il s’agit de calculer la probabilité que deux évènements successifs se produisent, sachant la probabilité de chacun des deux (la personne tombe malade ou non et puis se fait tester). Deux situations sont possibles :

  • Soit les évènements successifs sont indépendants. Dans ce cas, l’occurrence du second ne dépend pas de l’occurrence du premier. La probabilité que les deux évènements successifs indépendants se produisent tous les deux est la multiplication des deux probabilités. Nous pourrons écrire :

\[\mathrm{P}(E_1 \,\mathrm{et}\, E_2) = \mathrm{P}(E_1) * \mathrm{P}(E_2)\]

  • Soit le second évènement dépend du premier. Ici, c’est le cas, puisque la probabilité que le test soit positif (second évènement) dépend du fait que le patient soit malade ou non (premier évènement).

Une probabilité conditionnelle est la probabilité qu’un évènement E2 se produise si et seulement si un premier évènement E1 s’est produit (E1 et E2 sont deux évènements successifs). La probabilité conditionnelle s’écrit \(\mathrm{P}(E_2|E_1)\).

Le calcul se fait ici également par multiplication des deux probabilités, mais il faut choisir la probabilité du second évènement correspondant de manière conditionnelle au fait que le premier se soit produit ou non.

\[\mathrm{P}(E_1 \,\mathrm{et}\, E_2) = \mathrm{P}(E_1) * \mathrm{P}(E_2|E_1)\]

Vous pouvez dès lors calculer la probabilité que l’on teste un patient malade (probabilité = 0,08) et que le test soit positif si le patient est malade (0,95) dans ce cas :

# Personne malade et détectée positive
(p_sick_positive <- 0.08 * 0.95)
# [1] 0.076

Ceci n’indique pas la probabilité que le test soit positif, car il est également parfois (erronément) positif pour des patients sains. Mais au fait, quelle est la probabilité d’avoir un patient sain ? La probabilité que l’un parmi tous les évènements possibles se produise vaut toujours un. Les seuls évènements possibles ici sont que le patient soit sain ou malade. Donc,

\[\mathrm{P}(sain) + \mathrm{P}(malade) = 1 \rightarrow \mathrm{P}(sain) = 1 - \mathrm{P}(malade) = 0.92\]

Nous pouvons maintenant déterminer la probabilité que le test soit positif dans le cas d’une personne saine. C’est la probabilité que le patient soit sain multipliée par la probabilité que le test soit positif si la personne est saine.

# Personne saine et détectée positive
(p_healthy_positive <- 0.92 * 0.10)
# [1] 0.092

Bon, il nous reste à combiner les probabilités que le test soit positif, que la personne soit saine ou malade. Mais comment faire ? Ici, nous n’avons pas affaire à des évènements successifs, mais à des évènements mutuellement exclusifs : des évènements disjoints. Pour déterminer si l’un parmi deux évènements disjoints se produit, il suffit d’additionner leurs probabilités respectives. Nous pouvons maintenant déterminer la probabilité que le test soit positif, quelle que soit la personne testée :

# Probabilité que le test soit positif 
(p_positive <- p_sick_positive + p_healthy_positive)
# [1] 0.168

Nous nous trouvons ici face à un résultat pour le moins surprenant ! En effet, nous constatons que le test est positif dans 16,8% des cas, mais seulement 7,6% du temps, il sera correct (probabilité d’une personne malade détectée). Parmi tous les cas positifs au test, il y en a…

p_sick_positive / p_positive
# [1] 0.452381

… seulement 45,2% qui sont effectivement malades (on parle de vrais positifs). Ceci ne correspond pas du tout aux indications de départ sur les performances du test.

À vous de jouer !
h5p

Dans le cas de deux faits successifs qui ne peuvent chacun que résulter en deux évènements, nous avons seulement quatre situations possibles. Si l’un des cas est qualifié de positif et l’autre de négatif, nous aurons :

  • les vrais positifs (test positif alors que la personne est malade), ici 0.08 * 0.95

  • les faux positifs (test positif alors que la personne est saine), ici 0.92 * 0.10

  • les vrais négatifs (test négatif alors que la personne est saine), ici 0.92 * 0.90

  • les faux négatifs (test négatif alors que la personne est malade), ici 0.08 * 0.05

En fait, les performances finales du test de dépistage dépendent aussi de la prévalence de la maladie. Ainsi, pour une maladie très commune qui affecterait 80% de la population, nous obtenons :

# Faux positifs
0.20 * 0.10
# [1] 0.02
# Vrais positifs
0.80 * 0.95
# [1] 0.76
# Total des positifs
0.20 * 0.10 + 0.80 * 0.95
# [1] 0.78
# Fractions de tests positifs qui sont corrects
(0.80 * 0.95) / (0.20 * 0.10 + 0.80 * 0.95)
# [1] 0.974359

Ouf ! Dans ce cas-ci le test positif est correct dans 97,4% des cas. Mais qu’en serait-il si la maladie est très rare (probabilité de 0,008) ?

# Faux positifs
0.992 * 0.10
# [1] 0.0992
# Vrais positifs
0.008 * 0.95
# [1] 0.0076
# Total des positifs
0.992 * 0.10 + 0.008 * 0.95
# [1] 0.1068
# Fractions de tests positifs qui sont corrects
(0.008 * 0.95) / (0.992 * 0.10 + 0.008 * 0.95)
# [1] 0.07116105

Dans ce cas, un test positif n’aura effectivement détecté un malade que dans … 7,1% des cas ! Les 92,9% autres cas positifs seront en fait des personnes saines.

Comme nous pouvons le constater ici, le calcul des probabilités est relativement simple. Mais en même temps, les résultats obtenus peuvent être complètement contre-intuitifs. D’où l’intérêt de faire ce genre de calcul !

À vous de jouer !
h5p

7.1.2 Arbre des probabilités

Il se peut que tout cela vous paraisse très (trop) abstrait. Vous comprenez peut-être mieux les concepts lorsqu’ils sont présentés de manière plus imagée. Dans ce cas, la méthode alternative de résolution des calculs de probabilités via les arbres de probabilités devrait vous aider. Le principe consiste à représenter un arbre constitué de nœuds (des faits qui peuvent se produire). De ces nœuds, vous représentez autant de branches (des segments de droites) que d’évènements possibles. La figure suivante est l’arbre des probabilités correspondant au cas du dépistage de la maladie qui touche 8% de la population.

Arbre de probabilités permettant de déterminer la probabilité d’avoir un résultat positif au test.
Arbre de probabilités permettant de déterminer la probabilité d’avoir un résultat positif au test.

Du premier nœud nous avons deux branches menant aux deux évènements “malade” et “sain”. Chacune de ces deux situations est un nouveau nœud d’où deux autres évènements sont possibles à chaque fois (deux fois deux nouvelles branches) : un test “positif”, ou un test “négatif”. Les nœuds terminaux (les “négatifs” et “positifs” ici) sont aussi appelés les feuilles de l’arbre. L’arbre reprend donc tous les cas possibles depuis le nœud de départ (sa racine), jusqu’aux feuilles.

L’étape suivante consiste à aller indiquer le long des branches les probabilités associées à chaque évènement : 0.08 pour “malade”, 0.95 pour un dépistage “positif” si la personne est malade (notre fameuse probabilité conditionnelle \(\mathrm{P}(positif|malade)\)), etc. À ce stade, une petite vérification peut être faite. La somme des probabilités aux feuilles doit toujours valoir un, et il en est de même de la somme de toutes les branches issues d’un même nœud.

Le calcul se fait ensuite comme suit. Nous repérons tous les cas qui nous intéressent. Ici, il s’agit de toutes les branches qui mènent à un test “positif”. Le calcul des probabilités se fait en multipliant les probabilités lorsque nous passons d’un nœud à l’autre le long d’une branche et en additionnant les probabilités ainsi calculées au niveau des feuilles terminales de l’arbre. Donc, le cas patient “malade” -> test “positif” correspond à 0.08 * 0.95 = 0.076. Le cas patient “sain” -> test “positif” correspond à 0.92 * 0.10 = 0.092. Enfin, nous sommons les probabilités ainsi calculées pour les feuilles de l’arbre qui nous intéressent, soit 0.076 + 0.092 = 0.168. Et voilà ! Nous avons résolu le problème. La probabilité d’avoir un résultat positif avec le test de dépistage dans une population dont 8% sont atteints de la maladie est de 16.8%.

7.1.3 Théorème de Bayes

Vous noterez que l’arbre des probabilités représente, en réalité, des probabilités conditionnelles à partir du second niveau (l’arbre peut être évidemment plus complexe). Naturellement, il fonctionnera également si les évènements sont indépendants. Nous aurons simplement les mêmes probabilités reprises aux différents endroits.

Arbre de probabilités avec probabilités conditionnelles en rouge.
Arbre de probabilités avec probabilités conditionnelles en rouge.

Nous connaissons déjà la probabilité conditionnelle d’avoir un résultat positif au test si la personne est malade \(\mathrm{P}(positif|malade)\). C’est une donnée du problème (0.95). Maintenant, la probabilité qu’une personne soit malade si elle est positive au test \(\mathrm{P}(malade|positif)\) est une information capitale ici, mais nous ne la connaissons pas. Le lien entre les deux n’est pas facile à faire. C’est grâce aux travaux du révérend Thomas Bayes au 18e siècle que ce problème a été résolu. Les implications du théorème de Bayes sont énormes, car cela permet de déterminer des probabilités dites a posteriori (suite à l’occurrence des évènements) en fonction de connaissances a priori du problème.

Si nous réanalysons le raisonnement qui est fait dans l’arbre de probabilités, nous pouvons remarquer que le premier calcul (“malade” -> “positif”) correspond en fait à la probabilité que le test soit positif si le patient est malade \(\mathrm{P}(positif|malade)\) multipliée par la probabilité que le patient soit malade \(\mathrm{P}(malade)\), et ceci est aussi égal à \(\mathrm{P}(positif\, et\, malade)\). Donc,

\[\mathrm{P}(positif|malade) * \mathrm{P}(malade) = \mathrm{P}(positif\, et\, malade)\]

Par un raisonnement symétrique, nous pouvons aussi dire que :

\[\mathrm{P}(malade|positif) * \mathrm{P}(positif) = \mathrm{P}(positif\, et\, malade)\]

Donc, nous avons aussi :

\[\mathrm{P}(malade|positif) * \mathrm{P}(positif) = \mathrm{P}(positif|malade) * \mathrm{P}(malade)\] … et en divisant les deux termes par \(\mathrm{P}(positif)\), nous obtenons :

\[\mathrm{P}(malade|positif) = \frac{\mathrm{P}(positif|malade) * \mathrm{P}(malade)}{\mathrm{P}(positif)}\]

De manière générale, le théorème de Bayes s’écrit :

\[\mathrm{P}(A|B) = \frac{\mathrm{P}(B|A) * \mathrm{P}(A)}{\mathrm{P}(B)}\]

Cette équation nous donne une façon simple de déterminer \(\mathrm{P}(malade|positif)\) à partir de \(\mathrm{P}(positif|malade)\), \(\mathrm{P}(malade)\), et \(\mathrm{P}(positif)\), c’est-à-dire à partir des probabilités auxquelles nous avons facilement accès expérimentalement en pratique. Calculez comme exercice la probabilité qu’un patient soit malade s’il est positif au test via le théorème de Bayes, et comparez le résultat de votre calcul à ce que nous avions obtenu plus haut (45.2%).

À retenir

  • Probabilité d’un évènement :

\[\mathrm{P}(E) = \frac{\mathrm{nbr\ occurences\ } E}{\mathrm{nbr\ total\ essais}}\]

  • Probabilité de deux évènements successifs (cas général) :

\[\mathrm{P(A\, \mathrm{et}\, B)} = \mathrm{P}(B|A) * \mathrm{P(A)}\]

  • Probabilité qu’un parmi deux évènements se produise (cas général) :

\[\mathrm{P(A\, \mathrm{ou}\, B)} = \mathrm{P}(A) + \mathrm{P(B)} - \mathrm{P}(A\, \mathrm{et}\, B)\]

Application vraiment utile du théorème de Bayes par xkcd.
Application vraiment utile du théorème de Bayes par xkcd.
Pour en savoir plus
À vous de jouer !
h5p

7.1.4 Probabilités et contingence

Comme un tableau de contingence indique le nombre de fois que des évènements ont pu être observés, il peut servir de base à des calculs de probabilités. Partons du dénombrement de fumeur en fonction du revenu dans une population.

tabac <- dtf(
  revenu_faible = c(634,  1846, 2480),
  revenu_moyen  = c(332,  1622, 1954),
  revenu_eleve  = c(247,  1868, 2115),
  total         = c(1213, 5336, 6549))
rownames(tabac) <- c("**fume**", "**ne fume pas**",  "**total**")
knitr::kable(tabac)
revenu_faible revenu_moyen revenu_eleve total
fume 634 332 247 1213
ne fume pas 1846 1622 1868 5336
total 2480 1954 2115 6549
  • Quelle est la probabilité d’être un fumeur \(\mathrm{P}(fumeur)\) ? Rappelons-nous de la définition de probabilité : nombre de cas où l’évènement se produit sur le nombre total de cas. Ici, on a 1213 fumeurs dans un effectif total de l’échantillon de 6549 personnes, soit :
1213 / 6549
# [1] 0.1852191
  • Quelle est la probabilité d’être fumeur si le revenu est élevé \(\mathrm{P}(fumeur|revenu\_eleve)\) ? Le nombre de fumeurs à revenus élevés se monte à 247. Attention, ici l’échantillon de référence n’est plus la population totale, mais seulement ceux qui ont des revenus élevés, donc 2115 personnes. La probabilité conditionnelle restreint le total à l’évènement qui impose la condition.
247 / 2115
# [1] 0.1167849
  • Quelle est la probabilité d’avoir un revenu faible ou d’avoir un revenu élevé ? Cette question peut s’écrire : \(\mathrm{P}(revenu\-faible\, ou\, revenu\_eleve)\).
2480 / 6549 + 2115 / 6549
# [1] 0.7016338

Il s’agit d’une somme de probabilités disjointes.

  • Quelle est la probabilité d’être fumeur ou d’avoir un revenu moyen ? Cette question peut s’écrire : \(\mathrm{P}(fumeur\, ou\, revenu\_moyen)\).
1213 / 6549 + 1954 / 6549 - 332 / 6549
# [1] 0.4328905

Il s’agit d’une somme de probabilités non disjointes. Si E1 et E2 sont deux évènements non disjoints, la probabilité que l’un de ces deux évènements se produise est :

\[\mathrm{P}(E1\, ou\, E2) = \mathrm{P}(E1) + \mathrm{P}(E2) - \mathrm{P}(E1\, et\, E2)\]

Nous devons soustraire le nombre de fois où les deux évènements se sont produits simultanément, car ils ont été comptabilisés deux fois dans l’addition : une fois pour \(\mathrm{P}(E1)\) et une seconde fois pour \(\mathrm{P}(E2)\).

7.1.4.1 Population de taille infinie

Dans une très grande population, voici les proportions de différents groupes sanguins :

44% O, 42% A, 10% B, 4% AB
  • Quelle est la probabilité d’obtenir un individu du groupe B ? Cette question peut s’écrire : \(\mathrm{P}(B)\).
0.10
# [1] 0.1
  • Quelle est la probabilité d’obtenir trois individus du groupe B d’affilée ? Cette question peut s’écrire : \(\mathrm{P}(B\, et\, B\, et\, B)\), car nous considérons trois évènements successifs indépendants (ce ne sera réellement le cas en pratique, que si aucun lien de parenté n’intervient dans le choix des trois personnes).
0.10 * 0.10 * 0.10
# [1] 0.001

7.1.4.2 Population de taille finie

Dans une population de 100 personnes dont les proportions des différents groupes sanguins sont identiques au cas précédent :

  • Quelle est la probabilité d’obtenir un échantillon de trois individus du groupe B issus de cette population ?

En statistique, nous appelons cela un tirage au sort sans remise. Le résultat est très différent si le premier individu tiré au hasard était remis dans la population et pouvait être éventuellement pris à nouveau au second ou troisième tirage (tirage au sort avec remise). Notez aussi que, pour une population de taille infinie ou très grande, les deux types de tirage au sort sont équivalents à celui avec remise car enlever un individu d’une population infinie ne change pas fondamentalement son effectif, donc les probabilités ultérieures.

Cette question doit s’écrire à l’aide de probabilités conditionnelles : \(\mathrm{P}(B\, et\, B\, et\, B) = \mathrm{P}(B) et \mathrm{P}(B|B) et \mathrm{P}(B|2B)\) (\(\mathrm{P}(B|2B)\) correspond à la probabilité conditionnelle d’obtenir B si les deux individus précédents déjà récupérés sont eux aussi tous les deux du groupe B). Donc :

10 / 100 * 9 / 99 * 8 / 98
# [1] 0.000742115

Il s’agit d’évènements successifs non indépendants. En effet, le retrait d’un individu de la population de taille finie modifie les proportions relatives des groupes sanguins dans le reste de la population, et donc, les probabilités aux tirages suivants. Ainsi pour le groupe B, nous n’avons plus que 9 individus de ce groupe dans une population de 99 individus après le premier tirage d’un individu du groupe B ! Autrement dit, \(\mathrm{P}(B|B) \neq \mathrm{P}(B|not\ B)\). On a donc, \(\mathrm{P}(B|B) = 9/99\) et ensuite \(\mathrm{P}(B|2B) = 8/98\).

À vous de jouer !

Effectuez maintenant les exercices du tutoriel A07La_proba (Probabilités).

BioDataScience1::run("A07La_proba")