mardi 4 août 2015

Statistique bayésiennes

Dans les écoles d'ingénieur on apprend naturellement des bases de statistiques, car c'est une science très utile dont on trouve des applications un peu partout...

Bien sur, comme pour tout ce qui est enseigné à l'école, on se concentre sur les techniques et méthodes qui sont éprouvées (et donc parfois un peu anciennes...). Ainsi quand il s'agit d'aborder la thématique des tests statistiques : ce qui permet de savoir si deux groupes de données A & B sont homogènes ou non, on utilise le test du Chi². Ce test n'est pourtant pas toujours le plus adapté à la situation...

C'est ce qu'explique cette courte vidéo (en français) :


The statistical innovation Clever Stats explained in details by Chief Data Scientist Hubert Wassner from AB Tasty on Vimeo.
Most testing solutions rely on statistical methods that take a frequentist approach to significance testing, such as the Student’s t-test and the Z test. While these methods have proved themselves valuable, and are viable in sectors such as pharmaceuticals and agriculture, they are not well-suited to the constantly changing online world.

Using these methods requires a strict methodology known as fixed horizon statistics, in which a sample size must first be defined, and in which no conclusion may be made before this size is reached. These constraints are no longer relevant to a world in which data and information constantly flows, and are accessible in real time.

Typiquement on veux savoir si un nouveau médicament (B)  est meilleur que l'ancien (A), ou si une phrase est plus vendeuse qu'une autre sur une page produit d'un site de e-commerce. On fait alors ce qu'on appelle un test A/B et on utilise un test statistique sur les données produites. Cependant le test du Chi², s'il est simple à mettre en oeuvre et rapide à s'exécuter, n'est pas exempt de défaut... Le plus important étant qu'il faut fixer à l'avance le nombre d'échantillons à tester. Tant que ce nombre n'est pas atteint le calcul du Chi² n'est pas valide ! (mais le calcul est réalisable). Ce qui fait que bon nombre de gens font des erreurs car ils utilisent ces valeurs pour faire des décisions...

Grâce au développement rapide de la puissance des ordinateurs, et à la large diffusion de librairies de statistique, il est possible maintenant d'aborder le problème du test statistique avec la vision de Thomas Bayes (d'où le nom des statistiques bayésiennes). Cela apporte principalement deux fonctionnalités très intéressantes :
  • Le test bayésien produit des informations statistique valide à tout instant.
    Il n'est donc pas nécessaire de prévoir le nombre d'échantillons à tester par avance, c'est au fur et a mesure de l'arrivée des données que l'on peut produire une information statistique pour aider à la décision.
  • Par construction ce test peu intégrer une connaissance a-priori. Par exemple, on peu spécifier que l'on connaît des informations sur le groupe A (ce qui est souvent le cas puisque c'est en général la version originale déjà exploitée.) Cela permet alors d'avoir des informations statistique utilisable bien plus tôt, et donc de pouvoir prendre des décision plus rapidement. Là où le test du Chi² sera plus 'lent', ne pouvant pas intégrer ces informations a-priori.
Par conséquent, le test bayésien est nettement plus adapté au contexte d'expérimentations sur le web, même si il est un peu plus compliquer à coder, et s'il nécessite un peu plus de temps calcul.