I developedtea-tasting, a Python package for the statistical analysis of A/B tests featuring:
In this blog post, I explore each of these advantages of usingtea-tastingin the analysis of experiments.
If you are eager to try it, check the documentation.
tea-tastingincludes statistical methods and techniques that cover most of what you might need in the analysis of experiments.
Analyze metric averages and proportions with the Student's t-test and the Z-test. Or use Bootstrap to analyze any other statistic of your choice. And there is a predefined method for the analysis of quantiles using Bootstrap.tea-tastingalso detects mismatches in the sample ratios of different variants of an A/B test.
tea-tastingapplies delta method for the analysis of ratios of averages. For example, average number of orders per average number of sessions, assuming that session is not a randomization unit.
Use pre-experiment data, metric forecasts, or other covariates to reduce variance and increase the sensitivity of an experiment. This approach is also known as CUPED or CUPAC.
The calculation of confidence intervals forpercentagechange in Student's t-test and Z-test can be tricky. Just taking confidence interval forabsolutechange and dividing it by control average will produce a biased result.tea-tastingapplies delta method to calculate the correct interval.
Analyze statistical power for Student's t-test and Z-test. There are three possible options:
Learn more in the detailed user guide.
The roadmap includes:
You can define a custom metric with a statistical test of your choice.
There are many different databases and engines for storing and processing experimental data. And in most cases it's not efficient to pull the detailed experimental data into a Python environment. Many statistical tests, such as the Student's t-test or the Z-test, require only aggregated data for analysis.
For example, if the raw experimental data are stored in ClickHouse, it's faster and more efficient to calculate counts, averages, variances, and covariances directly in ClickHouse rather than fetching granular data and performing aggregations in a Python environment.
Querying all the required statistics manually can be a daunting and error-prone task. For example, analysis of ratio metrics and variance reduction with CUPED require not only number of rows and variance, but also covariances. But don't worry—tea-tastingdoes all this work for you.
tea-tastingaccepts data either as a Pandas DataFrame or an Ibis Table. Ibis is a Python package which serves as a DataFrame API to various data backends. It supports 20+ backends including BigQuery, ClickHouse, PostgreSQL/GreenPlum, Snowflake, and Spark. You can write an SQL query, wrap it as an Ibis Table, and pass it totea-tasting.
Keep in mind thattea-tastingassumes that:
Certaines méthodes statistiques, comme Bootstrap, nécessitent des données granulaires pour l'analyse. Dans ce cas,tea-tastingrécupère également les données détaillées.
Apprenez-en plus dans le guide sur les backends de données.
Vous pouvez effectuer toutes les tâches répertoriées ci-dessus en utilisant uniquement NumPy, SciPy et Ibis. En fait,tea-tastingutilise ces emballages sous le capot. Ce quetea-tastingoffre en plus, c'est une API pratique de niveau supérieur.
C'est plus facile à montrer qu'à décrire. Voici l'exemple de base :
import tea_tasting as tt data = tt.make_users_data(seed=42) experiment = tt.Experiment( sessions_per_user=tt.Mean("sessions"), orders_per_session=tt.RatioOfMeans("orders", "sessions"), orders_per_user=tt.Mean("orders"), revenue_per_user=tt.Mean("revenue"), ) result = experiment.analyze(data) print(result) #> metric control treatment rel_effect_size rel_effect_size_ci pvalue #> sessions_per_user 2.00 1.98 -0.66% [-3.7%, 2.5%] 0.674 #> orders_per_session 0.266 0.289 8.8% [-0.89%, 19%] 0.0762 #> orders_per_user 0.530 0.573 8.0% [-2.0%, 19%] 0.118 #> revenue_per_user 5.24 5.73 9.3% [-2.4%, 22%] 0.123
L'approche en deux étapes, avec paramétrisation et inférence séparées, est courante dans la modélisation statistique. Cette séparation contribue à rendre le code plus modulaire et plus facile à comprendre.
tea-tastingeffectue des calculs qui peuvent être délicats et sujets aux erreurs :
Il fournit également un cadre pour représenter les données expérimentales afin d'éviter les erreurs. Le regroupement des données par unités de randomisation et l'inclusion de toutes les unités dans l'ensemble de données sont importants pour une analyse correcte.
De plus,tea-tastingfournit des méthodes et fonctions pratiques, telles qu'un joli formatage du résultat et un gestionnaire de contexte pour les paramètres métriques.
Dernier point mais non le moindre : la documentation. Je pense qu'une bonne documentation est cruciale pour l'adoption d'un outil. C'est pourquoi j'ai écrit plusieurs guides d'utilisation et une référence API.
Je recommande de commencer par l'exemple d'utilisation de base dans le guide de l'utilisateur. Vous pourrez ensuite explorer des sujets spécifiques, tels que la réduction de la variance ou l'analyse de puissance, dans le même guide.
Consultez le guide sur les backends de données pour apprendre à utiliser un backend de données de votre choix avectea-tasting.
Consultez le guide sur les métriques personnalisées si vous souhaitez effectuer des tests statistiques qui ne sont pas inclus dansdégustation de thé.
Utilisez la référence API pour explorer tous les paramètres et informations détaillées sur les fonctions, classes et méthodes disponibles danstea-tasting.
Il existe une variété de méthodes statistiques qui peuvent être appliquées dans l’analyse d’une expérience. Mais seule une poignée d’entre eux sont réellement utilisés dans la plupart des cas.
D'autre part, il existe des méthodes spécifiques à l'analyse des tests A/B qui ne sont pas incluses dans les packages statistiques à usage général comme SciPy.
La fonctionnalitétea-tastinginclut les tests statistiques les plus importants, ainsi que des méthodes spécifiques à l'analyse des tests A/B.
tea-tastingfournit une API pratique qui permet de réduire le temps consacré à l'analyse et de minimiser la probabilité d'erreur.
De plus,tea-tastingoptimise l'efficacité des calculs en calculant les statistiques dans le backend de données de votre choix, où les données sont stockées.
Grâce à la documentation détaillée, vous pourrez rapidement apprendre à utilisertea-tastingpour l'analyse de vos expériences.
Le nom du package « tea-tasting » est un jeu de mots qui fait référence à deux sujets :
The above is the detailed content of tea-tasting: a Python package for the statistical analysis of A/B tests. For more information, please follow other related articles on the PHP Chinese website!