Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mobiletelesystems/ambrosia
Ambrosia is a Python library for A/B tests design, split and result measurement
https://github.com/mobiletelesystems/ambrosia
ab-testing experiment-design split-testing statistical-inference statistics
Last synced: 4 days ago
JSON representation
Ambrosia is a Python library for A/B tests design, split and result measurement
- Host: GitHub
- URL: https://github.com/mobiletelesystems/ambrosia
- Owner: MobileTeleSystems
- License: apache-2.0
- Created: 2022-10-03T10:42:48.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-24T13:29:20.000Z (over 1 year ago)
- Last Synced: 2025-01-19T15:17:01.399Z (11 days ago)
- Topics: ab-testing, experiment-design, split-testing, statistical-inference, statistics
- Language: Python
- Homepage:
- Size: 10.4 MB
- Stars: 227
- Watchers: 10
- Forks: 16
- Open Issues: 18
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
- Security: SECURITY.rst
Awesome Lists containing this project
README
.. shields start
Ambrosia
========|PyPI| |PyPI License| |ReadTheDocs| |Tests| |Coverage| |Black| |Python Versions| |Telegram Channel|
.. |PyPI| image:: https://img.shields.io/pypi/v/ambrosia
:target: https://pypi.org/project/ambrosia
.. |PyPI License| image:: https://img.shields.io/pypi/l/ambrosia.svg
:target: https://github.com/MobileTeleSystems/Ambrosia/blob/main/LICENSE
.. |ReadTheDocs| image:: https://img.shields.io/readthedocs/ambrosia.svg
:target: https://ambrosia.readthedocs.io
.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/MobileTeleSystems/Ambrosia/test.yaml?branch=main
:target: https://github.com/MobileTeleSystems/Ambrosia/actions/workflows/test.yaml?query=branch%3Amain+
.. |Coverage| image:: https://codecov.io/gh/MobileTeleSystems/Ambrosia/branch/main/graph/badge.svg
:target: https://codecov.io/gh/MobileTeleSystems/Ambrosia
.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/ambrosia.svg
:target: https://pypi.org/project/ambrosia
.. |Telegram Channel| image:: https://img.shields.io/badge/telegram-Ambrosia-blueviolet.svg?logo=telegram
:target: https://t.me/+Tkt43TNUUSAxNWNi.. shields end
.. image:: https://raw.githubusercontent.com/MobileTeleSystems/Ambrosia/main/docs/source/_static/ambrosia.png
:height: 320 px
:width: 320 px
:align: center.. title
*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 testing pipeline.The project is intended for use in research and production environments
based on data in pandas and Spark format... functional
Key functionality
-----------------* Pilots design 🛫
* Multi-group split 🎳
* Matching of new control group to the existing pilot 🎏
* Experiments result evaluation as p-value, point estimate of effect and confidence interval 🎞
* Data preprocessing ✂️
* Experiments acceleration 🎢.. documentation
Documentation
-------------For more details, see the `Documentation `_
and `Tutorials `_... install
Installation
------------You can always get the newest *Ambrosia* release using ``pip``.
Stable version is released on every tag to ``main`` branch... code:: bash
pip install ambrosiaStarting from version ``0.4.0``, the ability to process PySpark data is optional and can be enabled
using ``pip`` extras during the installation... code:: bash
pip install ambrosia[spark].. usage
Usage
-----The main functionality of *Ambrosia* is contained in several core classes and methods,
which are autonomic for each stage of an experiment and have very intuitive interface.|
Below is a brief overview example of using a set of three classes to conduct some simple experiment.
**Designer**
.. code:: python
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**
.. code:: python
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**
.. code:: python
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').. develop
Development
-----------To install all requirements run
.. code:: bash
make install
You must have ``python3`` and ``poetry`` installed.
For autoformatting run
.. code:: bash
make autoformat
For linters check run
.. code:: bash
make lint
For tests run
.. code:: bash
make test
For coverage run
.. code:: bash
make coverage
To remove virtual environment run
.. code:: bash
make clean
.. contributors
Authors
-------**Developers and evangelists**:
* `Bayramkulov Aslan `_
* `Khakimov Artem `_
* `Vasin Artem `_