aboba Documentationpython-библиотека для A/B-тестирования, разрабатываемая командой Thetahat

Документация aboba

Добро пожаловать в документацию Python-библиотеки aboba — библиотеки для A/B-тестирования, ориентированной на простоту и понятность.

Установка

pip install aboba

Быстрый старт

import numpy as np
import pandas as pd
import scipy.stats as sps

from aboba import (
    tests,
    splitters,
    effect_modifiers,
    experiment,
)
from aboba.pipeline import Pipeline

# Создаём датасет с двумя группами
data = pd.DataFrame({
    'value'  : np.concatenate([
        sps.norm.rvs(size=1000, loc=0, scale=1),
        sps.norm.rvs(size=1000, loc=0, scale=1),
    ]),
    'is_b_group': np.concatenate([
        np.repeat(0, 1000),
        np.repeat(1, 1000),
    ]),
})

# Настраиваем тест
test = tests.AbsoluteIndependentTTest(
    value_column='value',
)

# Создаём пайплайн с сэмплером
splitter = splitters.GroupSplitter(
    column='is_b_group',
    size=100,
)
pipeline = Pipeline([
    ('splitter', splitter),
])

# Запускаем эксперимент
n_iter = 500
exp = experiment.AbobaExperiment()

group_aa = exp.group(
    name="AA, regular",
    test=test,
    data=data,
    data_pipeline=pipeline,
    n_iter=n_iter
)
group_aa.run()

effect = effect_modifiers.GroupModifier(
    effects={1: 0.3},
    value_column='value',
    group_column='is_b_group',
)

group_ab = exp.group(
    name="AB, regular, effect=0.3",
    test=test,
    data=data,
    data_pipeline=pipeline,
    synthetic_effect=effect,
    n_iter=n_iter
)
group_ab.run()

# Рисуем результаты
fig, axes = exp.draw()
fig.savefig('results.png')

Общая архитектура

Библиотека построена на модульной архитектуре и включает следующие ключевые компоненты:

  • Источники данных (Data Sources): предоставляют данные для экспериментов (DataFrame или кастомные генераторы)
  • Сэмплеры данных (Data Splitters): управляют способом выборки данных для тестирования
  • Обработчики данных (Data Processors): преобразуют данные перед тестированием (CUPED, бакетизация и т.д.)
  • Тесты (Tests): статистические тесты для проверки гипотез
  • Модификаторы эффектов (Effect Modifiers): моделируют синтетические эффекты для анализа мощности
  • Эксперименты (Experiments): управляют несколькими запусками тестов и визуализацией результатов

Возможности

  • Простой и интуитивный API
  • Поддержка различных статистических тестов (t-тесты, ANOVA, непараметрические тесты)
  • Встроенные методы снижения дисперсии (CUPED, стратификация)
  • Анализ мощности и моделирование эффектов
  • Управление экспериментами и визуализация результатов
  • Расширяемая архитектура для добавления кастомных компонент

Следующие шаги