La p-value est la probabilité d'observer un écart au moins aussi grand si l'effet était nul. Ce n'est pas la probabilité que l'effet soit réel. Pour passer de l'une à l'autre, il faut savoir quelle part des hypothèses testées est vraie et avec quelle puissance on les détecte. Avec 50 individus par groupe, un effet de 0,3 écart-type et 10 % d'hypothèses vraies, la puissance est de 32 % et la part de faux positifs parmi les résultats significatifs monte à 58 %.
Un test de dépistage fiable à 95 % sur une maladie rare donne surtout des faux positifs. Le seuil de 5 % d'un test statistique joue le même rôle : tout dépend de la fréquence des vrais effets.
Si l'effet est nul, la p-value est uniformément répartie entre 0 et 1 : 5 % des tests tombent sous 0,05 par pur hasard. Si l'effet est réel, les p-values se concentrent près de 0, d'autant plus que l'échantillon est grand. On teste n individus par groupe avec un effet réel de δ écart-types : la statistique centrée vaut δ√(n/2). Sur un ensemble de tests dont une part π est vraie, la part de faux positifs parmi les résultats significatifs est 0,05(1 − π) / (0,05(1 − π) + puissance × π).
Réglez la taille de chaque groupe, l'effet réel et la part d'hypothèses vraies parmi celles que vous testez. Les barres donnent la répartition des p-values en tranches de 0,05 quand l'effet est réel ; le trait pointillé est la répartition quand l'effet est nul (5 % par tranche).
Test bilatéral à 5 %, écart-type connu ; les valeurs sont calculées exactement, sans tirage aléatoire.
Les courbes donnent la part de faux positifs parmi les résultats significatifs selon la fréquence des vrais effets, pour trois tailles d'effet (n réglé plus haut). Un effet fort et un test puissant ramènent la part de faux positifs près de 5 % ; un effet faible la laissent très haut.
Chips : part de faux positifs pour l'effet et la taille de groupe réglés plus haut.
Voici la démarche, puis un exemple.
from scipy.stats import norm n, d, pi = 50, 0.3, 0.10 # individus/groupe, effet, vrais effets ncp = d * (n / 2) ** 0.5 puissance = 1 - norm.cdf(1.96 - ncp) + norm.cdf(-1.96 - ncp) # 0.323 faux = 0.05*(1-pi) / (0.05*(1-pi) + puissance*pi) # 0.582 des significatifs
Chaque test supplémentaire ajoute 5 % de risque de faux positif : sur 20 tests, on en trouve presque toujours un.
Statistiques, finance quantitative, machine learning, deep learning, LLM, agents IA, MLOps : 321 épisodes avec des simulateurs à manipuler, pas des vidéos.
Statistics, quantitative finance, machine learning, deep learning, LLMs, AI agents, MLOps: 321 interactive episodes with simulators to play with, not videos.