L’expérience qui allait gagner de toute façon
Un test de 2 000 utilisateurs par bras rapporte des effets 2,4 fois trop grands. Un test A/A consulté dix fois ressort significatif 19 % du temps. Vingt métriques nulles indépendantes produisent un vainqueur 64 % du temps, et douze segments nuls 46 %. Quatre nombres, une seule cause, et les décisions à prendre avant l’arrivée des données.
Prérequis : Statistical Inference
Lancez une expérience où les deux bras sont identiques. Même page, même code, utilisateurs répartis au hasard, rien à trouver.
- Lue une fois à la taille prévue : significative 5,0 % du temps. Correct.
- Consultée dix fois en arrêtant quand elle fait bonne figure : 19,3 %.
- Lue sur vingt métriques indépendantes au lieu d’une : 64,2 %.
- Découpée en douze segments : 46,4 %.
Aucun de ces nombres ne suppose le moindre effet. Ce sont les résultats d’un test parfaitement sain quand la règle de lecture n’est pas celle pour laquelle la garantie a été écrite. Et c’est pourquoi la plupart des désaccords sur les résultats d’expériences sont en réalité des désaccords sur des décisions qui auraient dû être prises un mois plus tôt.
D’abord : le test trop petit pour être honnête
Supposons un taux de conversion de 10 % et une hausse d’un point qui compterait. Pour avoir 80 % de chances de la détecter, il faut 14 751 utilisateurs par bras.
| effet à détecter | échantillon par bras |
|---|---|
| 2,0 points | 3 841 |
| 1,0 point | 14 751 |
| 0,5 point | 57 763 |
Diviser l’effet par deux multiplie le trafic par 3,9, car l’écart-type décroît en et l’échantillon requis varie donc comme un sur le carré de l’effet.
Lancez-la maintenant avec 2 000 par bras. La puissance tombe à 17,8 % : elle rate quatre fois sur cinq. C’est attendu, et ce n’est pas le plus intéressant.
Le plus intéressant est ce qu’elle rapporte sur les tirages qu’elle attrape. Sur 20 000 expériences simulées, l’effet moyen parmi les significatives vaut 2,38 fois la vérité, et 0,8 % d’entre elles sont significatives avec le mauvais signe.
L’estimateur n’est pas biaisé : moyenné sur tous les tirages il tombe exactement sur l’effet réel. Ce qui est biaisé, c’est la moyenne sur les tirages ayant franchi un filtre, et ce filtre est « l’estimation était assez grande pour dépasser le seuil », ce qui à faible puissance exige que le bruit ait aidé. C’est la malédiction du vainqueur, et elle explique qu’un résultat frappant issu d’un petit test rétrécisse si fidèlement quand on le reproduit correctement.
Ainsi « nous le traiterons comme préliminaire » n’est pas une défense. Une expérience sous-dimensionnée n’est pas une version bruitée d’une bonne : c’est une machine qui, chaque fois qu’elle parle, parle avec un nombre gravement gonflé et un intervalle d’apparence saine autour.
La figure ci-dessous calcule tout cela en forme close plutôt que par simulation : l'exagération bouge donc continûment quand vous faites glisser la taille d'échantillon. Elle s'ouvre sur le test trop petit : 2 000 par groupe, 17,8 % de puissance, des gagnants qui surestiment la vérité d'un facteur 2,39, et 0,8 % d'entre eux significatifs à l'envers. Remontez le curseur jusqu'à 14 751 et deux choses arrivent ensemble. L'exagération s'effondre vers un, et la puissance affichée revient exactement à 80,0 % : la formule de dimensionnement et ce calcul s'accordent sur le même seuil.
Interactif : ce qu’un petit test annonce quand il gagne
Exact, non simulé. Le filtre est « assez grand pour franchir la barre ».
- Puissance
- 17.8%
- Exagération
- 2.39x
- Significatif, mauvais sens
- 0.8%
- Requis pour 80 %
- 14,751
À 2,000 par groupe, ce test trouve l’effet 17.8% du temps, et ce n’est pas le problème. Le problème est ce que disent les essais gagnants : en moyenne 2.39 fois l’effet réel, et 0.8% d’entre eux sont significatifs dans le mauvais sens. L’estimateur n’a rien de faux : sur l’ensemble des essais il est sans biais. Ce qui est biaisé, c’est la moyenne sur ceux qui ont passé un filtre. Le qualifier de préliminaire n’y change rien ; le dimensionner à 14,751 si.
Ensuite : chaque coup d’œil supplémentaire est une chance de plus
La différence estimée erre à mesure que les données s’accumulent. Le seuil de significativité est une ligne fixe. Une quantité errante finit par franchir une ligne fixe, et une règle qui s’arrête au premier franchissement garde l’excursion en jetant le retour qui aurait suivi.
C’est tout le mécanisme, et il fait passer 5,0 % à 19,3 % en dix coups d’œil. Un suivi continu le pousse vers la certitude avec assez de temps.
Deux objections qui reviennent et ne tiennent pas :
- ce n’est pas que les premières données sont plus bruitées et donc fausses. Chaque coup d’œil est un test valide sur les données disponibles. L’objet invalide est la règle qui les combine.
- cela ne se corrige pas en regardant la tendance plutôt que la p-value. Toute règle qui décide d’arrêter d’après le résultat observé a la même structure.
Si vous devez surveiller - et pour détecter les pannes il le faut - employez un test séquentiel ou un schéma de dépense d’alpha. Ceux-là dépensent délibérément le budget d’erreur. Ce qui casse la garantie, c’est de le dépenser par accident.
Puis : la même arithmétique, en largeur
pour métriques nulles indépendantes. Les vraies métriques sont en général corrélées positivement, ce qui fait un peu baisser ces taux.
| métriques nulles | chance qu’au moins une soit significative |
|---|---|
| 1 | 5,0 % |
| 5 | 22,6 % |
| 20 | 64,2 % |
| 50 | 92,3 % |
À vingt métriques c’est plus probable qu’improbable, à cinquante c’est quasiment garanti. Les segments se comportent pareil : douze d’entre eux produisent un vainqueur dans 46,4 % des expériences nulles, et il y a toujours ensuite une histoire expliquant pourquoi les utilisateurs mobiles ou les nouveaux se comportent autrement. L’histoire vient après le nombre, et elle vient tout aussi aisément quand le nombre est du bruit.
Notez la partie qui surprend : un échantillon plus grand ne corrige pas les segments. Le taux dépend du nombre de chances, non de leur précision. Une expérience plus grande produit des segments fallacieux tout aussi souvent, avec des intervalles plus serrés autour.
Bonferroni ramène vingt métriques à 4,9 % en testant chacune à 0,25 %, ce qui est correct et coûte beaucoup de puissance. Holm fait uniformément mieux à garantie égale. Benjamini-Hochberg contrôle la part de fausses affirmations plutôt que la probabilité d’en faire une, ce qui est la bonne cible pour cribler des candidats et la mauvaise quand une seule affirmation fausse coûte cher.
Mais la limite qui compte n’est pas mathématique. Une correction ne compte que les comparaisons déclarées. L’analyste qui a vérifié vingt métriques, trois segments et quatre fenêtres avant de rapporter celle qui marchait a fait des centaines de comparaisons implicites que rien n’a enregistrées. La p-value est alors un nombre portant sur une procédure que personne n’a suivie.
Interactif : combien de chances avant qu’une gagne
Deux bras identiques. Rien à trouver.
- Au moins une significative
- 64.2%
- Après Bonferroni
- -
- Seuil par test requis
- -
Avec 20 comparaisons nulles au seuil de 5 %, quelque chose ressort significatif 64.2 % du temps. Ni les données, ni le test, ni l’analyste n’ont de problème : c’est 1 − 0,9520, et c’était vrai avant que quiconque regarde. Deux choses dont cela ne dépend pas méritent l’attention. Pas de la taille d’échantillon : une expérience plus grande produit des segments fallacieux tout aussi souvent, avec des intervalles plus serrés autour. Et cela compte les comparaisons faites, pas celles rapportées. Activez la correction pour voir ce que coûte le remède.
Le remède économique : acheter de la précision, pas des chances
Il existe une manière légitime de rendre une expérience moins chère, et ce n’est aucune des précédentes.
Les utilisateurs diffèrent énormément entre eux, et l’essentiel n’a rien à voir avec votre changement. Un gros utilisateur l’était déjà le mois dernier. Si vous disposez d’une mesure pré-expérimentale par utilisateur, retranchez la part du résultat qu’elle prédit :
appliquée à l’identique aux deux bras. À une corrélation pré-période de 0,7, cela retire 50,3 % de la variance - la théorie dit - donc la même précision vient de la moitié du trafic.
Cela ne peut pas biaiser le résultat parce que est mesurée avant l’attribution et n’a pas pu être affectée par le traitement. Ajuster sur quelque chose mesuré pendant l’expérience casse précisément cela, et peut fabriquer un effet inexistant.
Deux autres leviers gratuits : rogner une métrique à queue lourde, décidé à l’avance, et stratifier l’attribution pour que les bras soient équilibrés par construction et non en moyenne.
Aucun des deux nombres de cette leçon n'a besoin de la simulation qui l'a produit, et la figure ci-dessous les calcule tous deux. L'ajustement retire exactement rho au carré de la variance, soit 49 % à une corrélation de 0,7 : les 50,3 % mesurés plus haut sont ce chiffre avec le bruit de 1 500 tirages. Et un découpage propre en douze segments fait ressortir au moins un résultat significatif 45,96 % du temps, ce que les 46,4 % estiment.
Interactif : le trafic que vaut une colonne déjà en votre possession
Les deux nombres sont exacts. La leçon les simule ; ils n’en ont pas besoin.
- Variance retirée
- 49.0%
- Trafic encore requis
- 51.0%
- Par groupe, brut
- 14,751
- Par groupe, ajusté
- 7,524
Une mesure antérieure corrélée à 0.70 avec le résultat retire 49.0% de la variance, exactement rho au carré. La même précision s’obtient alors avec 51.0% des utilisateurs : 7,524 par groupe contre 14,751. Et cela ne peut pas biaiser le résultat, X étant mesuré avant l’assignation et le même coefficient étant appliqué aux deux groupes.
Et enfin : la significativité n’est pas une décision
L’expérience est dimensionnée, pré-enregistrée et précise. Elle rapporte une hausse significative de 0,1 %. On déploie ?
La significativité répond à la question de savoir si l’effet se distingue de zéro, et avec assez de trafic presque tout s’en distingue. La décision réclame l’intervalle face au coût :
- 0,02 % à 0,18 % : réel et presque certainement pas digne de la maintenance de la fonctionnalité
- 0,02 % à 3,5 %, soit une hausse de 1,8 % tout juste significative : autre situation, l’expérience n’a pas tranché
- un résultat nul d’intervalle −0,05 % à +0,07 % est réellement informatif : vous avez exclu tout ce qui vaudrait la peine
- un résultat nul d’intervalle −4 % à +5 % ne vous a rien appris
Voilà pourquoi le plus petit effet digne d’être déployé se fixe au moment même où se fixe la taille d’échantillon, par ceux qui agiront. Fixé à l’avance, il rend la décision arithmétique. Laissé ouvert, il devient une dispute où chacun lit le même intervalle dans le sens qu’il préférait déjà.
Ce qu’est réellement la discipline
À écrire avant l’arrivée des données :
- le plus petit effet sur lequel on agirait, convenu avec celui qui agira
- la taille d’échantillon qui le détecte, et la décision de ne pas lancer si le trafic n’existe pas
- une métrique principale, plus des garde-fous déclarés à part
- une population, une durée et une règle d’arrêt fixes, avec une méthode séquentielle si vous devez arrêter tôt
- la réduction de variance que vous comptez appliquer
- tout le reste étiqueté exploration, qui produit des hypothèses et jamais des conclusions
Aucune des défaillances ci-dessus n’est une subtilité statistique. Chacune découle d’une décision prise après avoir vu les données alors qu’elle aurait dû l’être avant, et toute la discipline de l’expérimentation consiste à déplacer ces décisions plus tôt.
Références et lectures complémentaires
- Ron Kohavi, Diane Tang, Ya Xu, Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing, Cambridge University Press, 2020· Bibliothèque de référence Kudos AI
- Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, An Introduction to Statistical Learning, with Applications in R, Springer (Springer Texts in Statistics 103), 2013source ↗
Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.