jeudi 25 août 2016

A/B testing: différents outils, différents résultats?

Introduction

En tant que Data Scientist dans une entreprise fournissant un logiciel d'A/B testing je suis souvent confronté à la question suivante : "j'ai deux outils d'analyse qui me donnent des indices statistiques différents, est-ce normal ?"
La réponse est OUI, et je vais essayer de vous faire comprendre pourquoi. Et surtout, Je vais essayer de vous aider à répondre à LA vraie question : "Comment décider si une variation est vraiment meilleure qu'une autre ?"

Commençons par un exemple

Voici les données d'un test A/B :

VariationVisiteursClics
A102991439
B105051495

Ce qui donne un taux de clic (Click Thru Rate ou CTR) de 13.97% pour A et 14.23% pour B. Très naïvement on pourrait dire que B à un meilleur taux de clic et donc est la meilleure variation. Mais il faut tenir compte du fait que ces mesures sont incertaines car incomplètes. Il faudrait avoir un nombre infini de visiteurs pour espérer avoir une mesure de CTR avec une précision absolue. Comme cela n'est pas réalisable en pratique, on utilise des indices statistiques pour nous aider a représenter cette imprécision, et faire un pari avisé sur la vrai variation gagnante.

Et c'est là que ça se complique ...

Ces indices statistiques, ou indices de confiance, sont utilisés par des gens de marketing qui n'ont pas forcément les bases pour les appréhender (leur compétences sont plus dans la connaissance de leur marché et de leurs clients). De plus cela se fait dans un contexte commercial : toutes les solutions d'A/B testing essayent de vendre leur solution, c'est bien normal. Il est plus aisé pour un commercial de conforter une vision approximative du client tant que celle-ci est en accord avec la solution qu'il cherche à vendre. Ainsi les fausses idées perdurent...
La vrai bonne manière de faire serait plutôt d'essayer d'éduquer le client pour qu'il comprenne (au moins pour le coté fonctionnel) quelques bases de statistique... Mais bon, éduquer c'est le rôle d'un prof' (chiant) pas d'un commercial (qui est plus dans l'objectif de "séduire/convaincre").

En tant qu'ancien prof' j'aimerai bien éduquer un peu, tout en essayant d'être le plus impartial possible. Donc mon objectif n'est pas de vous convaincre que notre manière de faire est la meilleure, mais de faire comprendre pourquoi des outils peuvent donner des résultats différents sans forcément être faux...

Différents outils => différents résultats ?

Reprenons les données de l'exemple précédent et mettons les dans différents outils disponible en ligne.

Pour http://www.splittestcalculator.com, l'indice de confiance est à ~42%


Mais pour cet autre outil (de la solution KissMetric): http://getdatadriven.com/ab-significance-test, l'indice est à 70%.

 
Pour Visual Website Optimizer (VWO) : https://vwo.com/ab-split-test-significance-calculator/, l'indice est à "0.296"... Il s'agit d'une "pValue" qui estime la probabilité d'avoir ces données même si les deux variations A & B sont les mêmes... Il faut donc le "traduire" pour qu'il corresponde aux indices précédents : confiance = (1-0.296)*100 soit 70.4%.
 

Ainsi les 2 derniers outils semblent s'accorder mais donnent un résultat différent du premier. Qui croire ?
Bien sûr ces différences s'expliquent car il s'agit de méthodes de calcul différentes. Naturellement on est en droit de s'attendre à ce qu'elles s'accordent, au moins globalement, ce qui n'est malheureusement pas le cas...

Quel est le fond du problème ?

En fait tout le monde a raison et tord à la fois. Le fond du problème est de vouloir résumer la prise de risque a un seul chiffre. C'est le contexte commercial qui a amener la plupart des outils à fournir un seul chiffre, pour donner une apparence de simplicité. Ce n'est cependant pas une bonne manière de faire.
Pour comprendre intuitivement ce problème, imaginons le pari suivant :
  • Prendriez vous un pari avec un indice de confiance qui dit que vous allez gagner à 97% de chances ?
Naturellement, votre réponse sera une autre question : "qu'est ce qui est en jeu ?" Si on vous dit que l'enjeu c'est de payer sa tournée au bar en cas de perte et de se faire offrir à boire toute la soirée en cas de victoire, là vous direz "oui, je prend le pari". Si on vous dit que c'est la chance de gagner 1M€ ou de mourir, là non vraisemblablement vous ne prendrez pas le pari.

Pour mesurer finement une notion de confiance on doit gérer deux concepts de nature différente :
  • la probabilité qu'il ait ou non une différence
  • l'importance de cette différence (et son impact)
Typiquement, si le risque est faible mais l'importance de la différence est importante, on ne peut pas combiner ces deux informations sans perdre en précision.

Implicitement, selon les formules choisies pour calculer ces indices de confiance, on aura des résultats numérique différents selon que l'importance est donné à la probabilité de la différence, à sa taille, ou à un mélange des deux.

L'approche bayésienne va mixer les deux concepts et donner un indice "fort". Dans notre exemple d'A/B test l'indice de confiance est à ~70% car il y a un gain potentiel non négligeable (voir + bas), mais avec une probabilité assez faible.

À l'inverse l'approche fréquentiste (le test du Chi² par exemple) ne s'intéresse pas à la taille de la différence mais sur tout à sa probabilité d'existence. Il donne alors un indice bien plus bas ~42% car la probabilité d'existence de la différence est faible.

L'un et l'autre ont raison et tord à la fois.

C'est seulement dans les situations sont très tranchées que la plupart des indices s'accordent :
  • probabilité forte d'existence d'une différence, et gain potentiel important => indice de confiance fort (quelques soit la méthode de calcul)
  • probabilité faible d'existence d'une différence, et gain potentiel faible => indice de confiance faible (quelques soit la méthode de calcul)
Mais dans la réalité les situation sont rarement aussi simples

C'est quoi la solution alors ?

La solution est simplement d'accepter de considérer plusieurs chiffres pour comprendre finement une situation.

Vouloir à tout prix se contenter d'une seule information pour qualifier la différence entre deux variations vous force à avoir une vue partielle.
C'est comme voir cette image pour illustrer "Usain Bolt a gagné la course" :












Cela revient à ne donner qu'une information, un seul chiffe, son classement : premier.

Alors que cette autre image donne une idée plus détaillée :


Là on perçoit mieux la réalité : "Usain Bolt à gagné la course avec une énorme marge". Cette information est très importante surtout si on se pose la question "va-t-il gagner la prochaine course ?".  Pour cela, la première image ne nous informe pas beaucoup. On peut se dire qu'il la gagnera car il a gagné la précédente, mais on est pas certain.
La seconde image, par contre, nous permet de dire qu'il va gagner la course suivante, et on peut même se dire qu'on pourrait parier sur le résultat avec peu de risque (au vu de la marge qu'il met à ses concurrents).

Revenons à notre sujet d'interprétation de résultats d'A/B test. On se pose plus ou moins la même question : "La variation gagnante performera-t-elle aussi bien en production?" ("gagnera-t-elle la prochaine course?".). On comprend alors l'intérêt d'avoir plus d'information que seulement "la variation B gagne"...

Si on reprend les données du test A/B, on peut se faire une idée bien plus précise de la réalité en s'intéressant aux valeurs possibles du gain de CTR qu'on aurait en passant de la variation A à la B. Et laissons de coté la "significance", car elle ne nous apprend pas grand chose.


Ces deux chiffres : [-4.8% ; 8.85%] vont nous permettre de comprendre finement la situation.

Il s'agit de l'intervalle de confiance (à 95%) du gain. Cela s'interprète comme suit : "la vraie mesure du pourcentage d'amélioration a 95% de chance de se situer entre -4.8% et 8.85%" on comprend donc qu'il y a un risque important puisque cet intervalle est encore passablement négatif, mais il y a quand même une (petite) chance que le gain soit conséquent (>8%.)
On comprend alors en un coup d'œil la complexité de la situation.

Typiquement, le conseil que je donnerai pour ce test, est d'attendre d'avoir encore plus de données pour que cet intervalle de confiance se réduise. Dès que la borne de gauche devient positive, le risque devient alors quasi nul, à ce moment là on aura aussi une vision plus précise du gain maximum (borne de droite).

Voici l'analyse complète proposé par l'outil AB Tasty : https://fr.abtasty.com/ d'où a été extrait l'intervalle de confiance du gain ci-dessus.