Написать свою сплит систему для проведения A/B тестов
Ссылка на ноутбук с заданием: https://disk.yandex.ru/d/bpH4WJejBojHNw
Ссылка на данные: https://disk.yandex.ru/d/2mH8fuKCKLeozg
Написать свою сплит систему для проведения A/B тестов
В предоставленных данных есть 50000 юзеров, для каждого есть запись какой-то метрики за 2 года (730 дней).
Ваша задача:
1) Написать алгоритм, которые разбивает данные на 3 группы размера около 5000, которые будут считаться "похожими".
Для этого вам самостоятельно нужно решить, какие критерии схожести тут применимы и построить необходимые тесты для выбора этих групп.
Данные 3 группы должны считаться похожими на основе ваших метрик.
Разбиение затем будет протестировано на следующих 2х годах нами.
2) Визуализировать распределения выбранных вами метрик для найденных групп и сравнить с аналогичными разультатами для случайных групп
Нужно реализовать следующие функции (вы можете добавлять какие-то побочные, если считаете нужным):
**generate_groups** -- функция, которая по данным и числу групп делает случайное разбиение данных на примерно одинаковые части по количеству групп
**conduct_test_on_pair** -- функция проводит статистические тесты между двумя данными группами и возвращает нужные статистики и результаты
**conduct_tests** -- по списку групп и количеству необходимых похожих групп (зафиксировано в условии задачи как 3) перебирает возможные тройки групп пока не найдет похожие, критерий остановки за вами
**find_groups** -- берет данные и число групп, на которое вы их разбиваете и ищет 3 группы удовлетворяющие вашим критериям схожести.
Рекомендуем начинать с того, чтобы искать разбиение на 2 группы, а не 3, чтобы проверить, что сплит система работает адекватно. Задача с двумя группами зачастую сильно проще, чем с тремя.