Добро пожаловать в документацию Python-библиотеки aboba — библиотеки для A/B-тестирования, ориентированной на простоту и понятность.
Установка
Быстрый старт
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, стратификация)
- Анализ мощности и моделирование эффектов
- Управление экспериментами и визуализация результатов
- Расширяемая архитектура для добавления кастомных компонент
Следующие шаги
- Ознакомьтесь с API Reference для подробного описания интерфейсов
- Посмотрите примеры в репозитории
- Изучите различные стратегии сэмплирования
- Разберитесь с возможностями обработки данных

