Этот проект представляет собой аналитический сервис для автоматизации A/B-тестирования, разработанный в рамках выпускной квалификационной работы.
Сервис позволяет:
- рассчитывать необходимые параметры для проведения A/B-теста (дизайн эксперимента),
- валидировать метрики с помощью A/A-тестирования,
- проводить анализ результатов с использованием z-теста пропорций и t-теста, в том числе с применением линеаризации,
- визуализировать результаты и сохранять их в базу данных PostgreSQL.
Система локально развёртывается в Docker и использует Streamlit для создания веб-интерфейса.
- 🐍 Python 3.10
- 📊 Streamlit
- 🐘 PostgreSQL 15
- 🐳 Docker + Docker Compose
- 📦 pandas, scipy, statsmodels, psycopg2
ab-testing-service/
├── app/ # основной код приложения
│ ├── main.py # маршрутизация экранов
│ ├── design_screen.py # расчёт объема выборки
│ ├── validation_screen.py # проверка данных
│ ├── results_screen.py # анализ результатов
│ ├── faq_screen.py # справка
│ ├── home_screen.py # главная страница
│ ├── aa_tests.py # A/A тестирование
│ └── data_loader.py # взаимодействие с БД
│
├── db/
│ └── init.sql # SQL-скрипт создания таблиц
│
├── Dockerfile # инструкция сборки образа
├── docker-compose.yml # конфигурация сервисов
├── requirements.txt # зависимости Python
├── .gitignore
└── README.md # этот файл- Docker Desktop (Mac/Windows)
- Для Ubuntu:
sudo apt install docker docker-compose
git clone https://github.com/smrgn/ab-testing-service.git
cd ab-testing-servicedocker-compose up --buildПосле запуска приложение будет доступно по адресу: http://localhost:8501
При первом запуске автоматически создаются таблицы:
experiments_history— информация об экспериментахmetrics— метрики пользователей и группusers- информация о пользователях
Все данные, загружаемые через интерфейс, сохраняются в PostgreSQL в контейнере db.
- Загрузка и проверка CSV/XLSX файлов
- Расчёт объема выборки (дизайн A/B)
- Анализ результатов (t/z-тесты)
- A/A тестирование на симулированных выборках
- Интуитивный Streamlit-интерфейс
- Локальное и безопасное хранение данных
Разработано в рамках ВКР Смурыгиной Викторией студенткой 4 курса РТУ МИРЭА. Профиль: Прикладная информатика — Управление данными.
Для связи: https://t.me/smrgn