Research & Evidence

Rechercher une méthode

Recherchez parmi les titres, les questions, les territoires et les identifiants MSC.

    ← Toutes les méthodes
    FICHE MÉTHODEMSC-P-040Fondements de la preuveDossier scientifique vérifié

    Que faire quand on teste des dizaines de variantes ou de segments à la fois ?

    Lancer 40 tests au seuil de 5 % sans correction produit presque à coup sûr de fausses victoires : 81 % des séries en contiennent au moins une. Bonferroni ramène ce risque à 3,9 % mais ne retrouve plus qu'un tiers des vrais effets ; Benjamini-Hochberg en retrouve la moitié en bornant la proportion moyenne de fausses découvertes. Mesuré sur données synthétiques, avec les valeurs exactes à côté des valeurs simulées.

    Rédaction scientifique : Marketing Science Center

    Réponse directe

    Choisir l'erreur à contrôler — se tromper au moins une fois, ou la proportion de fausses victoires parmi les variantes retenues —, corriger une famille de tests déclarée avant le lancement, et chiffrer les vrais effets que chaque correction fait manquer.

    Lancer 40 tests au seuil de 5 % sans correction produit presque à coup sûr de fausses victoires : 81 % des séries en contiennent au moins une. Bonferroni ramène ce risque à 3,9 % mais ne retrouve plus qu'un tiers des vrais effets ; Benjamini-Hochberg en retrouve la moitié en bornant la proportion moyenne de fausses découvertes. Mesuré sur données synthétiques, avec les valeurs exactes à côté des valeurs simulées.

    Storey & Tibshirani, 2003Storey, 2002

    01

    En bref

    Sur données synthétiques — construites pour que l'on sache qui a vraiment gagné —, lancer 40 tests au seuil de 5 % sans correction produit presque à coup sûr de fausses victoires : 81 % des séries de 40 tests contiennent au moins une fausse découverte, et en moyenne 18 % des « victoires » d'une série sont fausses. La correction de Bonferroni ramène le risque de se tromper au moins une fois à 3,9 %, mais ne retrouve plus qu'un tiers des vrais effets. La procédure de Benjamini-Hochberg contrôle autre chose : la proportion moyenne de fausses découvertes parmi les découvertes. Elle la maintient à 4,0 % — la valeur exacte que la théorie prévoit ici, pas moins — tout en retrouvant 52 % des vrais effets. Le bon choix dépend de ce que coûte une fausse victoire par rapport à une vraie victoire manquée.

    02

    La situation

    Une équipe e-commerce teste en même temps 40 variantes de pages produit, chacune contre sa version actuelle. Chaque test reçoit 8 200 visiteurs sur la variante et 8 200 sur la page actuelle — on appelle « bras » chacun de ces deux groupes. Le taux de conversion de référence est de 5 %. L'équipe veut déployer « tout ce qui gagne ». Dans nos données, huit variantes améliorent réellement la conversion d'un point (de 5 % à 6 %) ; les 32 autres n'ont aucun effet. Ces données sont synthétiques : c'est ce qui permet de savoir, test par test, qui a vraiment gagné.

    03

    La question scientifique

    Parmi 40 hypothèses nulles « la variante ne change pas la conversion », lesquelles rejeter pour que les erreurs restent sous contrôle ? Et quelle erreur contrôler : la probabilité d'au moins une fausse découverte (FWER, taux d'erreur par famille) ou la proportion attendue de fausses découvertes parmi les découvertes (FDR, taux de fausses découvertes) ?

    04

    Pourquoi la méthode simple échoue

    Le seuil de 5 % garantit qu'un test sans effet sort « significatif » dans 5 % des cas. Avec 32 tests sans effet, on attend environ 1,6 fausse victoire par série (32 × 0,05), et la probabilité d'en avoir au moins une devient très élevée : 80,6 %, soit 1 − 0,95³². Chaque test pris isolément est correct ; c'est la famille de tests qui dérape.

    05

    L'intuition

    • Bonferroni exige de chaque test un seuil 40 fois plus sévère (5 % / 40). Il borne à 5 % la probabilité qu'au moins une fausse alerte apparaisse dans la série, au prix de nombreux vrais effets manqués. Storey et Tibshirani jugent ce contrôle « bien trop conservateur » (« much too conservative ») dans leur domaine, la génomique, où l'on teste des milliers d'hypothèses et où l'on s'attend à ce qu'une part appréciable d'entre elles soient de vrais effets [C01, C02, C12]. Ici, c'est notre simulation qui le montre, pas la citation.
    • Holm applique la même idée pas à pas, du plus petit au plus grand : même garantie, un peu plus de vrais effets retrouvés.
    • Benjamini-Hochberg accepte quelques fausses découvertes, mais en proportion bornée. Le FDR est la proportion attendue de fausses découvertes parmi les hypothèses rejetées [C06, C07]. C'est une garantie moins stricte, mais plus puissante [C08, C09].

    06

    Les données nécessaires

    Pour chaque test : l'effectif et le nombre de conversions de chaque bras, et la règle de décision fixée avant de regarder les résultats (seuil α, niveau q). Aucune donnée personnelle : des totaux par test suffisent. Le jeu de données de la page contient 40 lignes (test_id, effectifs, conversions) et, parce qu'il est synthétique, une colonne indiquant le vrai effet.

    07

    Le modèle formel

    • m = 40 tests, m₀ = 32 hypothèses nulles vraies (inconnu en pratique).
    • α : le seuil de signification choisi à l'avance, c'est-à-dire le risque de fausse alerte accepté pour un test (ici 5 %). q : le niveau de FDR choisi à l'avance, soit la proportion de fausses victoires acceptée parmi les variantes retenues (ici 5 % également). k : le rang d'un test une fois les p-values triées de la plus petite à la plus grande.
    • pᵢ : la p-value du test i, c'est-à-dire la probabilité d'observer un écart au moins aussi grand que celui mesuré si la variante ne changeait rien. Elle vient d'un test z sur deux taux de conversion, avec une variance commune aux deux bras, dans les deux sens : hausse comme baisse.
    • V : nombre de fausses découvertes ; R : nombre total de découvertes. P(·) se lit « probabilité que », E[·] « valeur moyenne sur un grand nombre de séries ».
    • FWER = P(V ≥ 1). FDR = E[V / max(R, 1)], la proportion attendue de fausses découvertes.
    • Bonferroni rejette i si pᵢ ≤ α / m.
    • Holm trie les p-values p₍₁₎ ≤ … ≤ p₍ₘ₎ et rejette tant que p₍ₖ₎ ≤ α / (m − k + 1).
    • Benjamini-Hochberg cherche le plus grand k tel que p₍ₖ₎ ≤ k · q / m et rejette les k plus petites p-values [C10].

    Traduction : Bonferroni et Holm raisonnent sur la série entière — leur seuil est assez sévère pour que la probabilité de se tromper ne serait-ce qu'une fois sur les 40 tests reste sous 5 %. Benjamini-Hochberg raisonne sur la récolte : son seuil s'assouplit à mesure que des p-values petites s'accumulent, parce que beaucoup de petites p-values signalent de vrais effets plutôt que du bruit.

    08

    Le calcul déclaré

    1. Taille fixée a priori : avec 8 200 visiteurs par bras, un test a 80 % de chances de détecter un vrai gain de 1 point sur une base de 5 %, au seuil de 5 % dans les deux sens — c'est ce qu'on appelle la puissance. Cette taille est fixée avant le lancement, jamais après.
    2. Génération des conversions visiteur par visiteur avec une récurrence congruentielle déclarée (graine 20260916 ; x ← 1103515245 · x + 12345 mod 2³¹), identique en Python et en R.
    3. Test z à variance commune pour chaque variante, puis les quatre règles : aucune correction, Bonferroni, Holm, Benjamini-Hochberg (α = q = 0,05).
    4. Valeurs exactes calculées là où le plan les permet : probabilité d'au moins une fausse alerte, puissance par test, et FDR de Benjamini-Hochberg sous indépendance. Elles sont imprimées par les programmes à côté des valeurs simulées.
    5. Simulation de Monte Carlo : 10 000 séries de 40 tests, statistiques tirées directement selon la loi normale — les 32 variantes sans effet centrées sur zéro, les 8 vraies gagnantes décalées de 2,81 écarts-types, le décalage qu'entraîne un gain de 1 point avec 8 200 visiteurs par bras — l'écart-type retenu est celui de la différence sous l'alternative, non celui, groupé, que le test emploie au dénominateur ; l'écart entre les deux reste sous l'erreur de simulation. La simulation sert à vérifier les valeurs exactes et à estimer ce qui ne se calcule pas à la main, jamais de source de vérité.

    Attention : le jeu de référence est tiré visiteur par visiteur, alors que les 10 000 séries simulées tirent directement les statistiques de test. La simulation mesure donc le comportement des règles de décision, pas la qualité de l'approximation normale du test z.

    09

    L'exemple chiffré complet

    Données synthétiques, graine 20260916 — ce ne sont pas des résultats de marché.

    Un test suivi de bout en bout. Le test le plus net de la série est la variante 5 : 385 conversions sur 8 200 visiteurs pour la page actuelle (4,70 %), 497 sur 8 200 pour la variante (6,06 %). Taux commun aux deux bras : (385 + 497) / 16 400 = 5,38 %. La statistique z vaut (0,0606 − 0,0470) divisé par l'écart type de cette différence, soit 3,88, ce qui donne une p-value bilatérale de 0,000106 — la plus petite des 40. Décision, règle par règle : sans correction, 0,000106 ≤ 0,05, retenue ; Bonferroni, 0,000106 ≤ 0,05/40 = 0,00125, retenue ; Holm, premier rang, même seuil, retenue ; Benjamini-Hochberg, rang 1, seuil 1 × 0,05/40 = 0,00125, retenue.

    Le test qui sépare les règles. La sixième plus petite p-value vaut 0,006. Elle dépasse le seuil de Bonferroni (0,00125) mais reste sous le seuil de Benjamini-Hochberg à son rang (6 × 0,05/40 = 0,0075) : c'est la découverte que seule cette dernière conserve.

    Diagnostic de la série. Huit p-values tombent sous 0,05, alors que le hasard seul en produirait 1,6 : l'accumulation près de zéro signale de vrais effets, et c'est ce qui rend une correction nécessaire plutôt que facultative.

    RègleDécouvertesDont faussesVrais effets trouvés (sur 8)
    Aucune correction817
    Bonferroni202
    Holm202
    Benjamini-Hochberg615

    Sur 10 000 séries simulées, comparées aux valeurs exactes quand elles existent (erreur de simulation entre parenthèses) :

    RègleFDRFWERPuissance
    Aucune correction0,184 (0,001)0,804 (0,004) — exact 0,8060,801 (0,001) — exact 0,802
    Bonferroni0,012 (0,001)0,036 (0,002) — exact 0,0390,336 (0,002) — exact 0,338
    Holm0,013 (0,001)0,039 (0,002)0,343 (0,002)
    Benjamini-Hochberg0,039 (0,001) — exact 0,0400,186 (0,004)0,519 (0,002)

    Lecture : dans le jeu de référence, Benjamini-Hochberg fait une fausse découverte sur six. Ce n'est pas une anomalie : la procédure garantit une proportion moyenne, pas zéro erreur à chaque série. Et cette moyenne n'est pas « sous les 5 % » par confort : sous indépendance, elle vaut exactement m₀ q / m = 32 × 0,05 / 40 = 0,040. La valeur simulée, 0,039, est à une erreur de simulation de la valeur exacte : c'est la simulation qui est vérifiée, pas la théorie.

    10

    Les hypothèses de validité

    • Tests indépendants : dans notre simulation, chaque variante a son propre groupe témoin. C'est la condition sous laquelle la source établit ses résultats de FDR [C11], et sous laquelle la valeur exacte de 0,040 est garantie. Vos variantes partagent-elles le même témoin, ou les mêmes visiteurs ? Si oui, les tests sont dépendants, et les trois règles ne sont pas logées à la même enseigne : les bornes de Bonferroni et de Holm restent valides quelle que soit la dépendance, parce qu'elles ne reposent que sur l'addition des probabilités, tandis que la garantie de Benjamini-Hochberg demande une condition supplémentaire sur la structure de dépendance.
    • Règle fixée avant de voir les données : le niveau q et la liste des tests sont écrits avant le lancement. L'avez-vous fait ? C'est une discipline que nous nous imposons ; Storey relève d'ailleurs que cette obligation est contraignante [C05], ce qui a motivé ses q-values.
    • Famille complète : les 40 tests sont tous corrigés ensemble. N'avez-vous pas retiré des tests après coup ? Hypothèse non testable a posteriori : seule la pré-déclaration la garantit.
    • Hypothèse prudente : la procédure part du principe que toutes les variantes pourraient être sans effet, ce qui la rend plus stricte que nécessaire [C04]. Avez-vous une idée, fondée sur vos tests passés, de la part de variantes qui marchent réellement ? Si cette part est élevée, les q-values récupèrent de la puissance. Ici, le FDR exact (0,040) est la part de variantes sans effet (32/40) multipliée par q.

    11

    Diagnostics et incertitude

    • La p-value ajustée (Bonferroni, Holm) est la p-value corrigée du nombre de tests : la comparer à 5 % revient à contrôler la probabilité de faire au moins une fausse alerte dans toute la famille. La q-value répond à une autre question : elle donne la proportion attendue de fausses découvertes si l'on déclare ce test gagnant, avec tous ceux dont la p-value est plus petite [C03]. Deux garanties différentes, à ne pas lire de la même façon.
    • L'erreur de simulation de Monte Carlo est publiée pour chaque chiffre (colonne entre parenthèses), et les valeurs exactes sont données quand elles existent.
    • Diagnostic à faire sur ses propres données : la distribution des p-values. Une accumulation près de 0 signale de vrais effets ; une distribution plate, surtout du bruit. Sur notre jeu de référence, 8 p-values tombent sous 0,05 quand 1,6 étaient attendues par hasard.

    12

    Interprétation

    Dans ce scénario précis — 40 tests, 8 vraies gagnantes, 80 % de puissance par test —, les règles se départagent ainsi. Sans correction, on retrouve 80 % des vraies gagnantes, mais en moyenne près d'une victoire annoncée sur cinq est fausse. Bonferroni ramène à 3,9 % la probabilité de se tromper au moins une fois dans la série, et ne retrouve plus qu'un tiers des vraies gagnantes. Holm offre exactement la même garantie tout en en retrouvant un peu plus (0,343 contre 0,336) : dès lors qu'on veut contrôler le risque de se tromper au moins une fois, il n'y a aucune raison de préférer Bonferroni. Benjamini-Hochberg retrouve la moitié des vraies gagnantes en maintenant à 4,0 % la proportion moyenne de fausses victoires parmi les variantes retenues. Changez le nombre de tests ou la part de vraies gagnantes, et ces valeurs changent : c'est l'arbitrage qui se transpose, pas les chiffres.

    13

    Conclusions permises et interdites

    • Permis : « Avec Benjamini-Hochberg à q = 5 %, la proportion de fausses victoires parmi les variantes retenues ne dépasse pas 5 % en moyenne. Sur une série donnée, elle peut être plus élevée, ou nulle. »
    • Interdit : « Chaque variante retenue est gagnante à 95 %. » La garantie porte sur l'ensemble des découvertes, pas sur chacune.
    • Interdit : transposer ces pourcentages à une autre campagne sans refaire le calcul ; ils dépendent du nombre de tests et de la part de vraies gagnantes.
    • Interdit : présenter les chiffres de cette page comme des résultats de marché. Ils viennent de données synthétiques.

    14

    Décision marketing possible

    • Si une fausse victoire coûte cher (refonte lourde, engagement contractuel) : contrôler le risque de se tromper au moins une fois, avec la procédure séquentielle de Holm.
    • Si l'on explore et que chaque découverte sera revalidée : contrôler la proportion de fausses découvertes avec Benjamini-Hochberg, puis confirmer les variantes retenues par un test de suivi.
    • La procédure trie les candidats ; la décision de déployer reste humaine et doit tenir compte du coût et de l'effet estimé, pas seulement du « significatif ».

    15

    Quand l'utiliser, quand ne pas l'utiliser

    • Utiliser : plusieurs variantes, segments, métriques ou pays testés en même temps et interprétés ensemble.
    • Ne pas utiliser seul : un test unique pré-déclaré, qui n'appelle aucune correction ; des tests que l'on consulte en cours de route, avant la date de fin prévue, qui demandent une méthode conçue pour les regards répétés ; des métriques secondaires qui ne servent pas à décider.
    • Alternatives : les q-values de Storey et Tibshirani, qui estiment la part de variantes sans effet et gagnent en puissance [C03, C04] ; des tests hiérarchiques ou pré-sélectionnés quand la famille est structurée.

    16

    Implémentations reproductibles

    • Python 3.14.5, bibliothèque standard seule : python msc-p040-reference.py
    • R 4.6.1, base seule : Rscript msc-p040-reference.R
    • Les deux programmes impriment exactement les mêmes lignes. Empreinte sha256 de la sortie, après normalisation des fins de ligne : f7fbde05e16c665db1da621cb9638d90c970a68897e805ba428117536607a9c5. Graine déclarée 20260916 ; récurrence congruentielle 1103515245 · x + 12345 mod 2³¹. Aucune bibliothèque tierce : le logiciel ne valide pas la méthode, il la reproduit — et les valeurs exactes imprimées à côté des valeurs simulées permettent de le vérifier.

    17

    Livrable

    Un tableau par test : p-value, p-value ajustée selon la règle pré-déclarée, décision, et la liste des variantes à confirmer par un test de suivi.

    18

    Références et niveau de preuve

    Connexions méthodologiques

    Territoire parentMéthodes statistiques de décision : choisir, quantifier, validerPrérequisComment concevoir un A/B test qui estime réellement un effet ?PrérequisDe combien d’observations une expérience a-t-elle besoin ?LimiteSignificativité ou taille d’effet : quel résultat faut-il interpréter ?Comparer avecQuel test statistique choisir ?Comparer avecPeut-on arrêter un test A/B dès qu’il devient significatif ?

    À lire ensuite

    MSC-H-006Méthodes statistiques de décision : choisir, quantifier, valider→MSC-P-011Comment concevoir un A/B test qui estime réellement un effet ?→MSC-P-012De combien d’observations une expérience a-t-elle besoin ?→MSC-P-004Significativité ou taille d’effet : quel résultat faut-il interpréter ?→MSC-P-039Quel test statistique choisir ?→