Получи случайную криптовалюту за регистрацию!

Самая любимая тема, пожалуй, для всех продактов, встречаем, A/ | Заскуль питона (DA/DS/ML) 🐸

Самая любимая тема, пожалуй, для всех продактов, встречаем, A/B тесты! По факту мы тестируем то, как ведет себя метрика при изменении в продукте

В нашей команде есть админ, который их не признает

Какие термины нужно обязательно знать?

Выборка - подмножество из генеральной совокупности.

Нулевая гипотеза H(0) — то от чего, мы отталкиваемся, зачастую говорят, что различий между выборками нет, связи нет (среднее не различается).

Альтернативная гипотеза (H1) — то, что мы хотим принять (различия есть, все классно), связь присутствует.

p-value — вероятность получить такие же или большие различия между выборками.

Ошибка l рода — Отклонение верной нулевой гипотезы (обычно берется 5%, об этом чуть позже).

Ошибка ll рода — Принятие неверной нулевой гипотезы.

и другие... Precison, recall, ЦПТ (для Bootstrap)

Почитать подробнее: link

Вообще, что это такое? Представьте, что у вас есть-какой то продукт, например, канал ЗАСКУЛЬ ПИТОНА, я хочу увеличить глубины просмотра, количество реакций. Скорее всего, я куплю Telegram-премиум, чтобы было больше стикеров с анимациями (из простого).

Давайте простенький пример, чтобы вообще понять, как это рассчитывается (Bootstrap)

Retention-менеджер канала пришел к создателю паблика и узнал, что продуктом удовлетворены 80% пользователей. Вместе со вторым админом создатель пошел, выбрал 100 человек, оказалось, что деятельностью канала удовлетворены 70% пользователей. Можно ли верить менеджеру?

H0 - различий нет, это случайность
H1 - различия присутствует, Retention-менеджер решил всех обмануть и рекламить казино.

Окей, сформулировали, дальше что? Искусственно создаем выборку, пример кода напишу ниже

import numpy as np
pval = np.mean([np.random.binomial(1, 0.8, size = 100).mean() <= 0.70 for _ in range (10000)])

1. Генерируем выборку из библиотеки numpy. Биномиальное распределение (с вероятностью 0.8 выпадет единичка, с вероятностью 0.2 - нолик, size - размер выборки). Мы предположили, что данные пришли из той же выборки.

2. mean - среднее значение, смотрим на реальное выпадение единички из выборки с размером в 100 человек.

3. далее цикл, который прогоняется 10000 раз, чтобы все получилось репрезентативненько

4. Смотрим также на среднее значение в полученном списке (возвращается True - 1, False - 0).

5. Получаем p-value. Оно подвязано к ошибке первого рода, которую мы заранее знаем до проведения эксперимента (обычно берется 0.05, 0.01). Если p-value меньше ошибки первого рода, то мы отклоняем нулевую гипотезу и принимаем альтернативную.

pval < 0.05, значит retention-менеджера можно пинать по жопе.

Вводные есть, понимание появилось. А теперь к реальной практике. Самые главные работяги, маркетологи навалились и начали пушить идею о том, что продукт будет расти, если мы поменяем кнопку или интерфейс (как сделал VK, my best friends, если вы видели, что музыку перенесли на главную страницу пользователя до того, как это стало мейнстримом, поздравляю, вы попали в тестовую группу).

Окей, какие-то отступления были, маркетологи хотят видеть цифры и понять, нужно ли оставлять или нет. Какие требования?

1. САМОЕ ВАЖНОЕ! Проводить A/B тест одновременно для A и B групп, потому что иначе результаты будут криво отображаться. А теперь вопрос на миллион, с которым я столкнулся относительно недавно. А как проводить A/B тест в ритейле? Как создать 2 альтернативные вселенные, в которых я поменяю полку с попкорном и чипсами? Как? Ответ от X5: link
2. Тест в одно и то же время при равных условиях. Если нам нужны метрики по типу продаж дополнительно закладываем время, в которое пользователь может заплатить за наш продукт. То есть, условно 14 дней теста + еще 3 дня для объективной оценки.
3.
Изолируем группы, сплитим на различные группы (если у нас B2B/B2C сегмент, то нужно подумать).

link от SkyPro

Хорошо, поняли, это база. Теперь берем и радуемся, но нам нужно знать о / об:

- ошибке первого рода.
- минимальном размере выборки.
- случайности и объективности эксперимента.
- временном диапазоне.