Skip to main content

A Python package for the statistical analysis of A/B tests.

Project description

tea-tasting: statistical analysis of A/B tests

CI Docs Coverage License Version Package Status PyPI Python Versions

tea-tasting is a Python package for the statistical analysis of A/B tests featuring:

  • Student's t-test, Z-test, bootstrap, and quantile metrics out of the box.
  • Extensible API: define and use statistical tests of your choice.
  • Delta method for ratio metrics.
  • Variance reduction using CUPED/CUPAC (which can also be combined with the delta method for ratio metrics).
  • Confidence intervals for both absolute and percentage changes.
  • Sample ratio mismatch check.
  • Power analysis.
  • Multiple hypothesis testing (family-wise error rate and false discovery rate).

tea-tasting calculates statistics directly within data backends such as BigQuery, ClickHouse, DuckDB, PostgreSQL, Snowflake, Spark, and many other backends supported by Ibis. This approach eliminates the need to import granular data into a Python environment.

tea-tasting also accepts dataframes supported by Narwhals: cuDF, Dask, Modin, pandas, Polars, PyArrow.

Installation

pip install tea-tasting

Basic example

>>> 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

Learn more in the detailed user guide. Additionally, see the guides on data backends, power analysis, multiple hypothesis testing, and custom metrics.

Roadmap

  • A/A tests and simulations.
  • More statistical tests:
    • Asymptotic and exact tests for frequency data.
    • Mann–Whitney U test.
  • Sequential testing.

Package name

The package name "tea-tasting" is a play on words that refers to two subjects:

  • Lady tasting tea is a famous experiment which was devised by Ronald Fisher. In this experiment, Fisher developed the null hypothesis significance testing framework to analyze a lady's claim that she could discern whether the tea or the milk was added first to the cup.
  • "tea-tasting" phonetically resembles "t-testing" or Student's t-test, a statistical test developed by William Gosset.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tea_tasting-0.5.1.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

tea_tasting-0.5.1-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file tea_tasting-0.5.1.tar.gz.

File metadata

  • Download URL: tea_tasting-0.5.1.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.22.3 CPython/3.12.9 Linux/6.8.0-1021-azure

File hashes

Hashes for tea_tasting-0.5.1.tar.gz
Algorithm Hash digest
SHA256 241699fff0f5b6845a4c1281e6e73bb871a32e78a9a40cd8cfef584b9ab3e501
MD5 ab9c4971f6869906b28a21d125a30f47
BLAKE2b-256 43331593d6972272e2bf97602622826f4f536419dff6e731a2e603b5f967752e

See more details on using hashes here.

File details

Details for the file tea_tasting-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: tea_tasting-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 40.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.22.3 CPython/3.12.9 Linux/6.8.0-1021-azure

File hashes

Hashes for tea_tasting-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14803952e2c0e56fc2bec2b2973264bc544bcb31c103a729abfd786c6d5daf2d
MD5 7fce396622cae7596785520e694b2703
BLAKE2b-256 7d00754a47d05728a8daf14aabb9b1286713a375153289193fcbdb06c8912e07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page