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