Problème — Un essai randomisé, du protocole à la conclusion
Exercice de TD · niveau 3 (difficile) · mathématiques complémentaires (terminale), chapitre 19 — Thème 9 — Corrélation et causalité
Énoncé
Problème — Un essai randomisé, du protocole à la conclusion.
Un service de cardiologie veut savoir si un programme de réadaptation après infarctus réduit les réhospitalisations à six mois. Trois cents patients éligibles sont inclus et répartis au hasard en deux groupes de .
- Écrire en Python la fonction qui réalise la randomisation à partir de la loi uniforme sur du chapitre 9. Pourquoi ne pas simplement alterner un patient sur deux ?
- L'âge moyen est de ans dans un groupe et de dans l'autre. Que peut-on en dire des variables que l'on n'a pas mesurées ?
- Résultat : réhospitalisations sur dans le groupe « programme », sur dans le groupe témoin. Sous l'hypothèse « le programme n'y est pour rien », modéliser et conclure. On donne, pour , avec , et .
- Dix-huit patients du groupe « programme » ont abandonné en cours de route ; neuf d'entre eux ont été réhospitalisés. Un cadre du service propose de ne garder que les patients ayant suivi le programme. Calculer le taux qu'il obtiendrait, et dire pourquoi ce calcul est faux.
- Calculer le nombre de patients à inscrire au programme pour éviter une réhospitalisation.
- L'essai n'a inclus que des patients de moins de ans sans insuffisance cardiaque. Que peut-on en conclure pour une patiente de ans ?
Corrigé
- La randomisation. Le chapitre 9 donne la recette : une variable uniforme sur produit une variable de Bernoulli de paramètre en comparant à .
import random
def randomiser(patients, p=0.5):
# Chaque patient est affecte au groupe 1 avec la probabilite p.
# random.random() suit la loi uniforme sur [0 ; 1[ (chapitre 9).
traites, temoins = [], []
for nom in patients:
if random.random() < p:
traites.append(nom)
else:
temoins.append(nom)
return traites, temoins
random.seed(2026)
t, c = randomiser([f"P{i:03d}" for i in range(300)])
print(len(t), len(c)) # 139 161 : les effectifs eux-memes fluctuent
Alterner un patient sur deux serait prévisible : le médecin qui inclut saurait, avant de décider d'inclure, dans quel groupe le prochain patient tombera. Il pourrait alors — même sans mauvaise intention — retarder l'inclusion d'un patient très grave jusqu'à ce que « ce soit le tour » du groupe témoin. Le tirage au sort n'est protecteur que s'il est imprévisible et si l'affectation est dissimulée jusqu'à l'inclusion.
On notera que les deux groupes n'ont pas exactement patients : avec cette méthode, l'effectif lui-même est aléatoire. C'est sans importance, et c'est même ce qui rend le tirage imprévisible jusqu'au dernier patient.
- Ce que dit l'âge. Une différence de an sur des moyennes de l'ordre de soixante ans est manifestement compatible avec le hasard du tirage. Mais l'intérêt de la vérification n'est pas là : on savait d'avance que la répartition serait non biaisée, puisque c'est une pièce qui a décidé. La vérification sur l'âge sert seulement à contrôler que le protocole a bien été appliqué.
Quant aux variables non mesurées — diabète non diagnostiqué, isolement social, observance, génétique — le raisonnement de la section sec:t9ecr vaut pour elles mot pour mot : la pièce ne les consulte pas davantage qu'elle ne consulte l'âge. C'est là toute la supériorité du tirage au sort sur la stratification, qui n'aurait pu traiter que ce qu'on avait pensé à noter.
- Le résultat. Au total patients ont été réhospitalisés. Sous l'hypothèse « le programme n'y est pour rien », ces réhospitalisations étaient acquises d'avance et seule la pièce a décidé du groupe de chacun : le nombre de réhospitalisés du groupe « programme » suit , avec
Or : la valeur observée est hors de l'intervalle de fluctuation à . De plus
soit moins de trois essais sur cent. On rejette l'hypothèse nulle : le programme réduit les réhospitalisations.
- Le calcul du cadre, et pourquoi il est faux. Sur les patients du groupe « programme », ont abandonné, dont réhospitalisés ; il reste donc patients ayant suivi le programme, parmi lesquels réhospitalisations. Le cadre annoncerait
soit un effet apparemment bien plus spectaculaire. Il est faux, pour une raison et une seule : les abandons ne sont pas tirés au sort. Ceux qui abandonnent sont plus souvent les plus fragiles — ici réhospitalisations pour patients, soit , contre chez ceux qui sont restés. Les retirer, c'est retirer les plus malades d'un seul des deux groupes, donc détruire exactement ce que le tirage au sort avait construit.
La règle est l'analyse en intention de traiter : chacun reste compté dans le groupe où le sort l'avait placé. On compare donc
Cette analyse est prudente : elle sous-estime plutôt l'effet du programme suivi jusqu'au bout. C'est le bon sens du décideur — il inscrira des patients dont certains abandonneront.
- Combien inscrire pour éviter une réhospitalisation. La différence des taux vaut
Inscrire patients évite donc en moyenne réhospitalisations ; il en faut tel que , soit
donc environ neuf patients à inscrire pour éviter une réhospitalisation. Ce nombre, bien plus parlant qu'un pourcentage, est celui qu'on présente à l'administration : il donne directement le coût d'une réhospitalisation évitée.
- La patiente de 78 ans. Rien, en toute rigueur. Le tirage au sort a rendu les deux groupes comparables à l'intérieur de l'essai ; il n'a rien dit du dehors. Une femme de ans, éventuellement insuffisante cardiaque, n'aurait pas été incluse : le résultat ne lui est pas transportable automatiquement. On peut décider de l'étendre — en argumentant sur le mécanisme, et en reconnaissant que l'on argumente — mais ce n'est plus l'essai qui parle. C'est la limite de validité externe, et aucune randomisation ne la lève.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.