Skip to main content

A Python library for working with A/B tests.

Project description

PyPI PyPI License ReadTheDocs Tests Coverage Black Python Versions Telegram Channel

https://raw.githubusercontent.com/MobileTeleSystems/Ambrosia/main/docs/source/_static/ambrosia.png

Ambrosia is a Python library for A/B tests design, split and effect measurement. It provides rich set of methods for conducting full A/B test pipeline.

An experiment design stage is performed using metrics historical data which could be processed in both forms of pandas and spark dataframes with either theoretical or empirical approach.

Group split methods support different strategies and multi-group split, which allows to quickly create control and test groups of interest.

Final effect measurement stage is conducted via testing tools that are able to return relative and absolute effects and construct corresponding confidence intervalsfor continious and binary variables. Testing tools as well as design ones support significant number of statistical criteria, like t-test, non-parametric, and bootstrap.

For additional A/B tests support library provides features and tools for data preproccesing and experiment acceleration.

Key functionality

  • Pilots design ✈

  • Multi-group split 🎳

  • Matching of new control group to the existing pilot 🎏

  • Getting the experiments result evaluation as p-value, point estimate of effect and confidence interval 🎞

  • Experiments acceleration 🎢

Documentation

For more details, see the Documentation and Tutorials.

Installation

Stable version is released on every tag to main branch.

pip install ambrosia

Ambrosia requires Python 3.7+

Usage

Designer

from ambrosia.designer import Designer
designer = Designer(dataframe=df, effects=1.2, metrics='portfel_clc') # 20% effect, and loaded data frame df
designer.run('size')

Splitter

from ambrosia.splitter import Splitter
splitter = Splitter(dataframe=df, id_column='id') # loaded data frame df with column with id - 'id'
splitter.run(groups_size=500, method='simple')

Tester

from ambrosia.tester import Tester
tester = Tester(dataframe=df, column_groups='group') # loaded data frame df with groups info 'group'
tester.run(metrics='retention', method='theory', criterion='ttest')

Development

To install all requirements run

make install

You must have python3 and poetry installed.

For autoformatting run

make autoformat

For linters check run

make lint

For tests run

make test

For coverage run

make coverage

To remove virtual environment run

make clean

Communication

Developers and evangelists:

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

ambrosia-0.3.0.tar.gz (81.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ambrosia-0.3.0-py3-none-any.whl (113.1 kB view details)

Uploaded Python 3

File details

Details for the file ambrosia-0.3.0.tar.gz.

File metadata

  • Download URL: ambrosia-0.3.0.tar.gz
  • Upload date:
  • Size: 81.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1031-azure

File hashes

Hashes for ambrosia-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4344e761c868f8ce9dcf906ae445ec9d6ed6a8f62d1e6f72a8614f74708729ae
MD5 8f3326302fbdc070a769e108c2ff6a80
BLAKE2b-256 5e1b6904e0d50c25f8be759990979a0d60a5a1a9699f57cff8194c17e466c814

See more details on using hashes here.

File details

Details for the file ambrosia-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: ambrosia-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 113.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1031-azure

File hashes

Hashes for ambrosia-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 848ca549a12ceee19f3191d3c7fdc4f1a6056fe8a6b781d7d9c070cc7f28c3c2
MD5 6b1e1b1863faa6d22e3962fb65651689
BLAKE2b-256 594645db3c3000f61b002cf8ba1bece0377c591c58b2adf42ed136f5b2acff9d

See more details on using hashes here.

Supported by

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