Aller au contenu principal

Probabilités & statistiques · L2 · Section 7/9

Tests d’hypothèses

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Tests d’hypothèses

Un test oppose une hypothèse nulle H₀ à une alternative H₁, choisit une statistique de test, et fixe une règle de rejet contrôlant le risque de première espèce. La puissance est la probabilité de rejeter H₀ quand H₁ est vraie; elle dépend de la taille d’échantillon, de la variabilité et de la taille d’effet. Concevoir une étude, c’est calibrer ces ingrédients plutôt que d’espérer une p‑value miraculeuse.

Objectifs d’apprentissage

  • Énoncer H₀ et H₁, distinguer erreurs de première et seconde espèce, et définir puissance et seuil α avant tout calcul.
  • Construire et lire un test t sur une moyenne ou une différence de moyennes (variance inconnue, loi de Student), y compris à la main en Python standard.
  • Interpréter p-value et intervalle de confiance ensemble, taille d’effet comprise, et corriger les tests multiples.

Prérequis: Estimation et inférence (estimateur, réalisation, lecture d’un IC), lois usuelles (normale, χ²).

#La démarche, étape par étape

  1. Formuler H₀ (souvent « pas d’effet », « pas de différence ») et H₁ (ce qu’on veut montrer), et fixer le seuil α avant de voir les données. Sous H₀, la statistique de test a une loi connue: c’est cette loi qui calcule la p-value.
  2. Choisir la statistique de test: z pour une proportion ou variance connue, t quand la variance est estimée, χ² pour des comptages et des tableaux de contingence, F pour comparer plusieurs moyennes (ANOVA).
  3. Calculer la valeur observée de la statistique et la p-value: la probabilité, sous H₀, d’observer une statistique au moins aussi extrême — unilatérale ou bilatérale, décidée à l’étape 1 et jamais après.
  4. Décider: si p ≤ α, rejeter H₀; sinon, ne pas rejeter (ce qui n’est pas « prouver H₀ », seulement ne pas avoir suffisamment de preuve contre elle).
  5. Rapporter: taille d’effet, intervalle de confiance et p-value, avec les conditions de validité vérifiées. Un test sans conditions vérifiées n’est pas un test.

Les tests t comparent des moyennes sous des hypothèses de normalité; les tests du chi‑deux comparent des distributions catégorielles; l’ANOVA généralise la comparaison de moyennes à plusieurs groupes. On préfère des méthodes robustes si les conditions sont fragiles. La décision finale s’exprime en termes de risque, de taille d’effet et de pertinence pratique, pas seulement en « significatif » ou « non significatif ».

Formuler
H0/H1 et métrique pertinente
Choisir T
Statistique de test (t, χ², ...)
Calculer
T observé et p‑value ou seuil
Décider
Rejeter/Non rejeter à α
Rapporter
Effet + IC + p; contexte

#Erreurs, puissance, taille d’échantillon

Quatre issues possibles à un test, deux façons de se tromper:

H₀ vraieH₁ vraie
Rejeter H₀Erreur de type I (faux positif), probabilité αBonne décision, probabilité 1 − β (puissance)
Ne pas rejeter H₀Bonne décisionErreur de type II (faux négatif), probabilité β

Le couple (α, β) est un arbitrage: à taille d’échantillon fixée, baisser α resserre la règle de rejet et augmente β. La seule façon d’améliorer les deux est d’augmenter n — ou de réduire la variance (appariement, mesures répétées, meilleur protocole). Ordres de grandeur à retenir pour un test bilatéral de moyenne (α = 5%, puissance 80%): détecter un effet de 0,2 écart-type exige environ 400 observations par groupe; 0,5 σ environ 64; 1 σ environ 16. La taille d’échantillon croît comme l’inverse carré de la taille d’effet visée.

#Explorer : puissance et risque β

Manipulez taille d’effet, écart-type et n, et observez la puissance réagir: doubler l’effet détectable divise le n nécessaire par quatre, augmenter le bruit le multiplie au carré.

Explorer la puissance statistique

Ajustez taille d’échantillon, taux de base et uplift attendu. L’outil estime la puissance d’un test unilatéral sur une proportion (approximation normale).

Conversion baseline 10 %, on espère +1,5 point avec 5 000 utilisateurs par variante.

Résultat

Puissance estimée
96.2%
Risque β (faux négatif)
3.8%
Signal / bruit
3.54

Un test puissant (>80 %) réduit la probabilité de passer à côté d’un effet réel. Sinon, augmentez N ou acceptez une marge de décision plus large.

Hypothèses

  • Taux H0 (p₀) : 10.0%
  • Taux H1 (p₁) : 11.5%
  • Seuil critique zα : 1.64
  • Distribution sous H1 : µ ≈ 3.54, σ ≈ 1.06

Conseils

  • Pour doubler la puissance, il faut souvent plus que doubler N (effet √N).
  • Si l’uplift attendu est incertain, simulez un scénario pessimiste.
  • Contrôlez les métriques business (taille d’effet) en plus de la p-value.

#Test t construit à la main

Le test binomial d’une proportion est traité plus bas. Complétons-le avec le second pilier: le test t sur une moyenne, où la variance est estimée. La statistique t = (x̄ − μ₀)/(s/√n) suit une loi de Student à n − 1 degrés de liberté, et Python standard suffit: le module random génère des données reproductibles, la densité de Student s’écrit en une ligne avec lgamma, et p-value et quantiles s’obtiennent par intégration numérique de Simpson puis recherche binaire.

Chargement de l’éditeur...

Lecture complète (graine 42): moyenne 9,666 ms, écart-type 1,182, t = −0,848 à 8 degrés de liberté, p-value bilatérale 0,42. On ne rejette pas H₀: neuf observations ne suffisent pas à distingquer 9,67 de 10 avec ce niveau de bruit. L’intervalle [8,76; 10,57] ms contient 10 et déborde des deux côtés: les données sont compatibles avec « aucun changement » et avec des gains allant jusqu’à 1,2 ms. Comparons: avec la loi normale au lieu de Student (quantile 1,960 au lieu de 2,306), l’IC serait [8,89; 10,44], soit 1,54 ms de large au lieu de 1,82 — 15% trop étroit, une précision que l’estimation de σ sur 8 degrés de liberté ne justifie pas. C’est exactement le rôle de la loi de Student: à petit n, elle élargit l’intervalle pour payer l’incertitude sur σ. La même recette — densité explicite, Simpson, dichotomie — reconstruit les lois χ² et F sans aucune dépendance: en Pyodide, où numpy et scipy ne sont pas chargés d’office, cette autonomie n’est pas un luxe.

#Playground: proportion — test binomial (p‑value)

Chargement de l’éditeur...

Ce playground utilise l’IC de Wald pour rester court; la page Proportions: IC et tests montre pourquoi, ici (n·p̂ et n·(1−p̂) valent 62 et 38), le Wald est acceptable, et pourquoi il ne le serait pas avec k proche de 0 ou n.

#Le lexique piégeux en une table

TermeCe que c’estErreur classique
p-valueP(statistique ≥ observée, si H₀)La lire comme P(H₀, si données)
αSeuil fixé d’avance, risque de faux positifLe choisir après coup pour « passer »
Puissance 1 − βP(rejeter, si H₁ vraie)Croire qu’elle se devine sans calcul
Non-significatifDonnées insuffisantes contre H₀Le lire comme « preuve d’absence d’effet »
Taille d’effetMagnitude en unités métierLa confondre avec la petitesse de p

Un test non significatif n’est pas une preuve d’égalité: avec n petit, presque rien n’est significatif. Inversement, à très grand n, presque tout l’est. Seul le trio « effet ± IC + p » rend la conclusion honnête.

#Tests multiples: la moisson des faux positifs

Si on teste 20 hypothèses nulles toutes vraies au seuil 5%, on s’attend à ~1 rejet erroné; sur 1 000 tests, ~50. La correction de Bonferroni (comparer chaque p à α/m) contrôle le risque d’au moins un faux positif mais est conservatrice. Benjamini-Hochberg contrôle le taux de fausses découvertes (FDR) parmi les rejets: on trie les p par ordre croissant, on rejette toute p₍ᵢ₎ ≤ (i/m)·q, et l’on rejette aussi toutes les p-values plus petites — le rang fait partie du critère, c’est ce qui le rend moins conservateur. Exemple avec 20 p-values dont les deux plus petites valent 0,001 et 0,004: Bonferroni à α = 0,05 ne rejette que p < 0,0025, soit un seul test; BH au taux 5% tolère jusqu’à 0,0025 au rang 1 mais jusqu’à 0,005 au rang 2: les deux sont rejetées, et plus les petites valeurs s’accumulent, plus le dernier rang rejeté remonte et emporte la file entière. En pratique, le FDR est le choix courant en exploration (génomique, A/B testing à grande échelle), la famille Bonferroni quand un seul faux positif est inacceptable (validation réglementaire).

#Quiz

Un test bilatéral donne p = 0,20 avec 15 observations. La conclusion correcte est:
Un test bilatéral donne p = 0,20 avec 15 observations. La conclusion correcte est:

#Exercices

Exercice 1 (concevoir la taille d’échantillon). Vous voulez détecter une baisse de latence de 5 ms sur un écart-type de 20 ms, test bilatéral α = 5%, puissance 80%. Combien d’observations?

Corrigé. Taille d’effet standardisée δ = 5/20 = 0,25. Pour un test bilatéral de différence de moyennes, n ≈ 16/δ² par groupe (400 pour δ = 0,2; 64 pour δ = 0,5), car (z₀,₉₇₅ + z₀,₈₀)² = (1,96 + 0,84)² ≈ 8 et n ≈ 2×8/δ². Ici n ≈ 16/0,0625 = 256 observations par groupe. Si le budget ne suit pas, on ne baisse pas α ni la puissance en silence: on déclare un effet minimal détectable plus grand et on le documente.

Exercice 2 (Student au lieu de normal). Reprenez les 9 temps de réponse du playground et calculez l’IC 95% avec le quantile normal 1,960. Quantifiez le rétrécissement induit par cette erreur, puis donnez les quantiles t(0,975) pour 30 et 100 degrés de liberté.

Corrigé. Avec 1,960: [8,89; 10,44] ms, contre [8,76; 10,57] avec le quantile de Student 2,306, soit 1,54 ms de large au lieu de 1,82: l’intervalle erroné est trop étroit de 15%. L’écart se referme à mesure que n croît: t(0,975) vaut 2,306 pour 8 ddl, 2,042 pour 30, 1,984 pour 100, 1,960 à l’infini. Règle pratique: en dessous de n = 30, toujours Student.

Exercice 3 (apparié contre indépendant). Huit serveurs reçoivent un patch; latence moyenne avant 44,25 ms, après 42,13 ms, écart-type des différences individuelles 0,99 ms. Testez l’amélioration, puis examinez ce que deviendrait le test si on ignorait l’appariement (écarts-types individuels ~9 ms chacun).

Corrigé. Test apparié: d̄ = 44,25 − 42,13 = 2,125 ms, se = 0,99/√8 = 0,35, t = 2,125/0,35 = 6,1 à 7 ddl, p < 0,001: amélioration très significative, IC 95% de la baisse [1,30; 2,95] ms (quantile 2,365 à 7 ddl). Ignorer l’appariement et traiter deux groupes indépendants d’écart-type 9 ms: se = 9×√(2/8) ≈ 4,5, t ≈ 2,125/4,5 ≈ 0,47, p ≈ 0,64, rien de significatif. Le message: l’appariement élimine la variabilité inter-serveurs et isole l’effet du patch; l’ignorer aurait enterré un effet évident. En pratique: identifier la structure des données (mesures répétées? blocs?) avant de choisir le test.

Exercice 4 (20 tests, moisson simulée). Simulez 1 000 expériences de 20 tests au seuil 5% sur des données sans aucun effet, et comptez les rejets. Qu’observez-vous, et que deviennent ces rejets après correction de Bonferroni?

Éléments de vérification. Chaque test rejette avec probabilité 0,05 sous H₀ vraie: le nombre de rejets sur 20 tests suit la binomiale(20, 0,05), d’espérance 1 et d’écart-type √(20×0,05×0,95) ≈ 0,97. Sur 1 000 répétitions (graine 42), attendez environ 36% d’expériences sans aucun rejet, 37% avec exactement un, et une longue queue jusqu’à 4-5 rejets qui, sans correction, seraient publiés comme des effets. Refaites le comptage avec le seuil corrigé 0,05/20 = 0,0025: la probabilité d’au moins un rejet tombe à environ 5%, le niveau familial que Bonferroni garantit par construction.