mercredi 26 décembre 2018

Test A/B & P-hacking

Préambule : Voilà à quoi ressemblerait la pratique des tests statistiques dans le web si c'était une moto  : une moto c'est pour transporter un ou deux adultes, munis de casques... Et voici comment comment cette "moto" est utilisée dans le marketing...

Je trouve ce parallèle intéressant car dans les deux cas la pratique se justifie par la nécessité et l'absence d'autres solutions réellement applicables.
Alors à défaut de faire parfaitement, et selon les règles, on essaye de faire au mieux, en essayant de minimiser les risques. Dans cet article je vais détailler, en restant à un niveau intuitif, la nature et l'importance des erreurs commises, et les précautions que l'ont peut prendre.

mots clés : P-hacking, test A/B, test statistique, statistique fréquentiste , statistique bayésienne.

Introduction : Il y a un vent d'inquiétude dans les sciences appliquées utilisant les tests statistique. Les tests statistiques sont des algorithmes (basés sur de formules statistiques) qui utilisent des données d'expériences et qui vont servir à décider si une expérience est significative ou non. Des  scientifiques ont remarqué que de nombreuses expériences en sciences humaine (et marketing) n'était pas reproductibles, plus exactement la reproduction de beaucoup d'expériences n'arrivent pas au même résultat! Pourtant les tests statistiques qui ont été utilisés pour valider ces résultats initiaux indiquaient qu'ils étaient significatif...

Cette même constatation s'opère dans le domaine du marketing, en particulier là où l'expérimentation est aisée : le web. Cette pratique s'appelle le test A/B et consiste à mesurer l'effet d'une modification d'un site web sur des indices business (nombre d'achats, valeur de panier moyen, etc...).

Le terme p-hacking est devenu le terme qui résume ce problème scientifique. je vais essayer de vous le faire comprendre, mais surtout d'y voir un peu plus clair pour mieux mesurer l'ampleur réelle du problème. Je ne parlerai que de la partie marketing, mais vous aller comprendre que le problème est fondamentalement le même que pour les sciences humaines en général.

Le P-hacking fait référence à un concept central dans tests statistique : la 'p-value' ou 'p-valeur' en français. Elle sert à qualifier l'incertitude d'une mesure quand celle-ci est en partie aléatoire. C'est un concept central de la notion de test.

La pratique du test A/B exige le respect d'un protocole assez strict pour l'obtention d'une P-value valide, or malheureusement ce protocole n'est pas toujours respecté. Je mets de coté le cas de la pratique malhonnête, pour me concentrer sur les cas où l'expérimentateur n'a pas conscience de son erreur. Je préciserai que souvent le praticien sait qu'il n'est pas dans le respect strict du test statistique, mais bien souvent il ne sait pas l'ampleur du risque qu'il prend...

Le 'p-hacking' c'est quoi ?

La vidéo ci-dessous est une illustration intuitive du phénomène. La première impression que donne cette vidéo est que le lanceur est terriblement doué. Puis une question s'impose : combien de tentatives ont été nécessaire pour créer cette vidéo ? On se dit alors qu'on ne voit que la vidéo de la réussite, et que s'il y a eu 1000 tentatives, alors on se dit que, tout cela n'est que de la chance bien présentée.
En résumé le P-hacking peut se traduire par : "plus je fais de tentatives, plus j'ai de chances de réussir".

Les libertés prises avec les règles d'application du test statistique peuvent amener les praticiens (souvent inconsciemment) à l'erreur.


Le principe du test statistique intègre cette intuition en exigeant qu'on ne fasse l'expérience qu'une seule fois. Mais même si les praticiens connaissent cette règle elle est difficilement applicable en pratique pour plusieurs raisons :

  • Dans le test A/B on fixe une durée pour exposer les variations et collecter les données. À l'issue du test on peut voir que la différence entre A & B est trop petite pour pouvoir être qualifiée, alors on laisse l'expérience collecter un peu plus de données. En pratique il s'agit là déjà d'une seconde tentative, et par conséquent on n'est plus dans la pratique stricte du test statistique.
    Poussée à l'extrême cette pratique qui consiste à laisser se dérouler une expérience jusqu'au moment où la P-value passe le seuil de significativité est appelé l'"early stopping". C'est la source la plus grave d'erreur, car c'est la plus fréquente, et c'est celle qui va générer le plus grand nombre d'erreurs.
  • Quand on essaye une variation B il y a un coût, celui d'envoyer la moitié de son trafic vers une variation qui marche moins bien que l'original. Par conséquent, la peur de faire des changements risqués se traduit par ne faire que des modifications mineures dans la variation B. Des modifications si mineures qu'elle n'auront vraisemblablement aucun impact, et le fait de répéter de telles expériences revient à faire plusieurs fois le même test, ce qui n'est pas prévu par les tests statistiques.
  • Comme son nom l'indique le test A/B expose un original : A, et une variation : B. Car les tests statistiques classiques ne considèrent que ce cas. Mais comme il faut aussi tester les variations simultanément pour tenir compte des variations saisonnières, il est commun de tester plusieurs variations et donc faire du test A/B/C/D... Cela aussi est une entorse aux règles d'application des tests statistiques. On appelle cela le problème des test multiples.
  • Les bonnes pratiques exigent aussi d'avoir une hypothèse. Cela veux dire qu'on a des raisons, avant même l'expérience, de penser que B est meilleur que A. Or cela peut être bafoué par la pratique du test multivarié où l'on génère un grand nombre de variations combinant toutes les possibilités d'une liste de caractéristiques. De plus dans ce cas beaucoup de variation sont très proches les unes des autres car ne varient que d'un détail. Clairement le test multivarié est la pratique aujourd'hui la plus risquée. Car elle cumule plusieurs sources d'erreur.
Ces erreurs peuvent être faites par simple ignorance, car les formations marketing (ou en sciences humaines) n'insistent pas forcément sur les compétences en statistique. Donc une bonne formation est évidement un facteur de succès, mais l'environnement de la pratique des test A/B a aussi son importance. En sciences humaines, comme ailleurs, il y a l'incitation "publish or perish" qui incite donc a absolument avoir une expérience "significative". Ce qui amène, consciemment ou non, à faire une ou plusieurs des erreurs citées ci-dessus. En marketing le problème peut être du même ordre, les objectifs de l'équipe d'optimisation marketing peuvent pousser les employés à ne pas respecter à la lettre les règles d'usage des tests statistiques, et donc d'en subir les conséquences en terme d'erreur...

Comment éviter le 'P-hacking' ?

Le respect du protocole est bien évidement à la base, ainsi qu'éviter les erreur explicitée ci-dessus, mais j'ajouterai certains points, moins souvent exposés.

Éviter les tests inutiles

Il existe des formules qui permettent d'avoir un ordre d'idée du volume nécessaire de visiteurs à tester pour espérer détecter un gain. Exploitant cette même idée on peut voir le problème dans l'autre sens, ce qui est plus logique pour la pratique du test A/B sur le web : calculer la taille minimale du gain qu'on peut mesurer en fonction du trafic disponible.
Ainsi il n'y a aucun intérêt à tester un changement mineur (par exemple un changement de couleur) si il y a peu de trafic sur la page en question. Car le gain (positif ou négatif) sera certainement trop faible pour pouvoir être qualifié.

Ne pas utiliser la 'P-value' !!

Les tests fréquentistes ne sont pas adapté à la pratique du web...  Ce titre est volontairement accrocheur, mais c'est ce n'est pas trompeur. Les tests statistique fréquentistes ne fournissent qu'une seule information, la fameuse P-value. Fondamentalement c'est insuffisant pour prendre une décision, car toute décision se base sur deux axes :

  • ce qu'on espère gagner en remplaçant A par B 
  • le risque qu'on prend à remplacer  A par B

Et il est impossible de répondre à ces 2 questions par une seule valeur.
Au mieux la P-value permet de se faire une idée du risque, mais ne fournit pas d'information, sur ce qu'on espère gagner. Ce qui force plus ou moins à prendre des risques inutiles, car parfois le gain ne vaut pas le risque pris.

Les statistiques bayésiennes à la rescousse...

Les statistiques bayésiennes sont bien plus adaptées à la pratique du test A/B pour le web.
Déjà parce qu'elles sont moins sensibles au fait de prolonger une expérience, comme cela est expliqué dans cet article.
Mais, selon moi, l'apport principal est de fournir plus d'informations au sujet du gain espéré, ce qui permet de faire un meilleur choix lors de l'analyse d'une expérience.
Prenons un exemple : à la fin d'une expérience, la variation A a un taux de clic mesuré à 3% et B à 3.05%.

  • Le calcul de la P-value amène à un taux de confiance à 95%, c'est le seuil conventionnel d'acceptation, donc on valide B...
  • L'analyse bayésienne vous dit que le gain relatif apporté par la variation B se situe entre 1% et 3% (donc que si le taux de clic de A est à 3%, alors celui de B se situe entre 3.01% et 3.09%).On peut se dire que gagner +0.01% en absolu ne vaut pas le risque de se tromper, et peut être même que le simple coût du changement peut ne pas être amorti par le gain réel qu'apportera B...

On voit alors que si on se base uniquement sur la fameuse P-value, sans regarder l'analyse bayésiennes, cela peut nous mener à faire de mauvais choix.

La plupart des logiciels de test A/B utilisent maintenant un test bayésien, mais il en reste encore qui restent accrochés à l'utilisation de la P-value. Probablement car c'est plus facile à calculer et à expliquer.

Le fond du problème est de vouloir choisir avec uniquement la P-value comme critère de choix.  On ne peut pas résumer le choix de remplacer une page par une autre avec une seule et unique valeur. La P-value ne donne d'informations que sur l'existence, ou l'absence, d'une différence entre deux variations, mais elle ne qualifie pas la taille de cette différence. Or en pratique, pour faire ce genre de choix on veut finalement mesurer deux choses :

  1. l'apport espéré du changement
  2. le risque de se tromper

Dans l'exemple précédent le risque ne vaut pas la chandelle, mais seul l'analyse bayésienne permet de le voir.

Conclusion 

Mes conseils pour limiter le risque de se tromper en pratiquant le test A/B, sont :

  • Utilisez un test Bayésien qui donne un intervalle de confiance autour de la mesure du gain.
  • Ayez une vraie hypothèse, ne pas tester des choses "à peine visibles".
  • Restez raisonnable sur le nombre de variations testées.
Il y a des solutions de 'correction' des p-values comme les procedures de Bonferroni ou Holm-Bonferroni, qui limitent le risque de découverte erroné. Malheureusement elles limitent aussi très fortement la capacité de détecter de vrais gagnants... Et de plus elles ne permettent pas de calculer ni de corriger les intervalles de confiances du gain. Or, comme on l'a vu, l'intervalle de confiance du gain est le seul outil permettant de mesurer le compromis entre l'espoir de gain et le risque, ce qui est le vrai axe de décision.