Перейти к содержанию

Базовые классы

Абстрактные базовые классы и ключевые структуры данных.

BaseTest

Исходный код

Базовый класс для A/B-тестов, предоставляющий структуру для обучения и тестирования данных.

Этот класс служит основой для всех статистических тестов в библиотеке. Он определяет общий интерфейс для работы с данными и выполнения тестов.

Основные методы

  • fit(data): Обучает тест на предоставленных данных.
  • test(groups, artefacts): Выполняет статистический тест на группах данных и возвращает результат.

TestResult

Исходный код

Представляет результат статистического теста, включая p-value, эффект, тип эффекта и опциональный доверительный интервал.

Это структура данных (dataclass), которая содержит все важные результаты выполнения статистического теста.

Поля

  • pvalue (float): P-значение теста, показывающее статистическую значимость.
  • effect (Optional[float]): Размер эффекта (разница между группами).
  • effect_type (Literal["absolute", "relative_test", "relative_control"]): Тип эффекта:
    • "absolute" - абсолютная разница
    • "relative_test" - относительная разница к тестовой группе
    • "relative_control" - относительная разница к контрольной группе
  • effect_interval (Optional[Tuple[float, float]]): Доверительный интервал для эффекта.
  • extra (dict): Дополнительные данные, специфичные для конкретного теста.

BaseDataProcessor

Исходный код

Базовый класс процессора, который применяется ко всему датафрейму.

Процессоры данных используются для предварительной обработки данных перед выполнением тестов, например, для снижения дисперсии или преобразования признаков.

Основные методы

  • fit(data): Вызывается один раз на всех доступных данных для обучения процессора.

    • data (pd.DataFrame): Полные данные со всеми группами.
  • transform(data): Преобразует данные и возвращает преобразованный датафрейм. Может генерировать артефакты для последующего использования.

    • data (pd.DataFrame): Полный датафрейм для обработки.
    • Возвращает: Tuple[pd.DataFrame, Optional[Dict]] - кортеж с обработанными данными и словарем артефактов.
  • fit_transform(data): Комбинация методов fit и transform.

    • data (pd.DataFrame): Данные для обучения и преобразования.
    • Возвращает: Tuple[pd.DataFrame, Dict] - кортеж с обработанными данными и словарем артефактов.

DataSplitter

Исходный код

Базовый класс для сэмплирования данных в группы A/B/n.

Сэмплеры определяют, каким образом данные разделяются на группы для тестирования.

Основные методы

  • sample(data, artifacts): Разделяет данные на группы A/B/n.

    • data (pd.DataFrame): Датафрейм с данными.
    • artifacts (dict): Артефакты, полученные после этапа предобработки.
    • Возвращает: List[pd.DataFrame] - список датафреймов (возможно, представлений) для каждой группы.
  • fit(data): Полный датасет после обработки передается для вычисления статистик, необходимых для корректного сэмплирования во время фактического тестирования. Если датасет генерируется, ничего не передается на этапе .fit() теста.


EffectModifier

Исходный код

Базовый класс для модификации эффектов.

Модификаторы эффектов используются для добавления синтетических эффектов в данные, что полезно при анализе мощности тестов и симуляциях.

Основные методы

  • add_effect(groups): Получает все группы и должен вернуть то же количество групп с добавленным эффектом.
    • groups (List[pd.DataFrame]): Список датафреймов групп.
    • Возвращает: List[pd.DataFrame] - список групп с добавленным эффектом.

BaseDataSource

Исходный код

Определяет источник данных.

Этот класс используется для абстракции источника данных, позволяя работать с различными типами источников единообразно.

Основные методы

  • get(): Возвращает данные.

    • Возвращает: pd.DataFrame - датафрейм с данными.
  • is_generated(): Сообщает, являются ли данные генерируемыми. Если данные не генерируются, то обработка данных может быть закэширована для повышения производительности.

    • Возвращает: bool - True, если данные генерируются динамически.