Posts

A/B-тестирование: что такое p-hacking?

Image
Когда-то давно, когда я только начинал разбираться со статистикой, я столкнулся с термином "p-hacking". Так как понимания базовых принципов у меня тогда еще не было, то и сама проблема "подглядывания" мне казалась весьма надуманной.

Сегодня я поделюсь своим опытом того, что профессиональные статистики вкладывают в "p-hacking", почему он реален и как я вижу себе выход из этой ситуации.

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

Откуда берется p-hacking?

Итак, в работе с A/B-тестами у нас возможны 4 исхода:


Как мы видим, в двух исходах мы принимаем верные решения, а в двух других  - нет.

Т.к. при A/B-тестировании мы очень хотим не ошибиться с принимаемым решением по результатам A/B-теста, то нам важно понять, что же может пойти не так:
мы можем "увидеть" разницу (просто случайность), когда на самом деле ее нет
(это Type I Error)

мы можем "не увидеть" разницу, когда н…

A/B-тестирование: p.value < 0.05 или как быть когда сплит не 50/50?

Image
Итак, недавно у меня возникла следующая ситуация. Планировался запуск A/B-теста. Так как тест высокорисковый, то появилась мысль минимизировать риск за счет того, что в группу B направить не 50% трафика, а лишь 5%.

Действую по протоколу проведения A/B-тестов нам следует до запуска теста выполнить два предварительных действия:
оценить лифт целевого показателяоценить размер минимально необходимой выборки С первой задачей справиться несложно.

Моя базовая конверсия (с1) = 2%. Лифт, который я хочу обнаружить (lift) = 5%.
Итого, моя новая конверсия (с2) = c1 * (1 + lift) = 2.1%.

А вот со второй задачей справиться уже несколько сложнее.

Обычно для решения таких задач я использую статистический калькулятор:


Как мы видим, под числом 309,928 четко написано - per variation - что означает, что такой объем должен набраться для каждой группы.

Дело в том, что большинство онлайн-калькуляторов делают расчет минимально необходимой выборки при конфигурации сплита 50%/50%.

Но я-то хочу сделать принципиаль…

A/B-тестирование: стоимости правильных и ошибочных решений

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

Дело в том, что когда мы запускаем A/B-тест, мы обычно попадаем в две крайности:
мы либо вообще не берем в расчет статистическую значимость результаталибо слепо равняемся на статистические догмы:p.value < 0.05confidence level = 95%statistical power = 80% С одной стороны, в использовании статистики нет ничего плохо. Она действительно позволяет нам уйти от субъективной оценки результата, быть уверенным в том, что результат воспроизводим и не является случайностью. 
С другой стороны, бизнес не существует в вакууме. И каждое принятое нами решение имеет два дополнительных параметра: времястоимость Причем, как правило, чем больше стоимость решения, тем больше времени мы готовы ждать. А на количество времени, необходимого для получения надежного результата, напрямую влияет какой confidence level мы выбираем. 
95% confidence level…

Стратегия оптимизации рекламных кампаний

Image
Недавно меня пригласили на одну конференцию, где я выступал с необычной для себя темой: анализ платных рекламных компаний. Я решил поделиться несколькими мыслями о том, как ppc-менеджеру (или его руководителю) атаковать проблему оптимизации рекламных кампаний.

Хотя я сам не крутил рекламу ни в Google Adwords, ни в Яндекс.Директ, но я курировал ребят, которые занимаются этим ежедневно. А потому у меня регулярно возникали одни и те же вопросы:
какие рекламные кампании стоит масштабировать?для каких рекламных кампаний недостаточно данных (и нужно продолжать их "крутить")?какие рекламные кампании стоит останавливать? Итак, для простоты изложения я возьму небольшую выборку (35 рекламных кампаний). 
Обычно, ppc-менеджер начинает свой анализ с рекламных кампаний, которые "съедают" больше всего бюджета. Он сортирует список рекламных кампаний от самых больших по бюджету к самым маленьким. 
Как мы видим, ТОП3 рекламные кампании соответствуют 30.5% рекламного бюджета, а ТОП7 к…

RR поведенческая матрица - как следующий шаг после RF-матрицы

Image
Маркетинг баз данных это мощный подход, который позволяет e-commerce бизнесам быстро понимать, что реально происходит с ростом их клиентской базы. Я часто использую подходы оттуда, чтобы сделать диагностику и выдать первые рекомендации ребятам, которые просят помощи.

Ярким представителем маркетинга баз данных является RFM подход. Вы ранжируете каждого клиента по Recency, Frequency и Monetary и таким образом понимаете, какую ценность клиент принес вам на сейчас, а также, какую ценность он смог бы вам принести в будущем.

Для реализации RF(M) подхода достаточно только данных о транзакциях и это его огромный плюс. Обычно с этой таблицей у бизнеса меньше всего проблем. Для оптимизации LTV (в частности - количества покупок) этого часто достаточно. Пример RF-матрицы показан ниже:


Из чарта выше видно, что 35.8% всех клиентов сделали свою последнюю покупку в диапазоне от 0 до 60 дней. И это отличный результат, когда одна третья базы очень свежая.

Подробнее об этом и о том как работать с RF-мат…

R - построение когорт

Image
Итак, я решил продолжить транслировать решения задач показанные Алексеем Куличевским на языке Python. В этот раз мы будем заниматься трансляцией на R задач по агрегации и построению когорт (ссылка на оригинал поста с кодом Python). Датасет будем использовать тот же, что и в первом посте.


Начнем с простых агрегаций. Давайте ответим на вопрос: сколько продаж и покупок было сделано в магазине?


Итак, первый кусок кода делает простые агрегации. Я решил сразу добавить больше агрегаций (mean, median, max) т.к. в e-commerce крайне важно понимать насколько наша аудитория чувствительна к цене.

Средний чек (AOV) у нас $459. Неплохо! Но в тоже время медиана (MedOV) = $152, а это значит, что 50% всех чеков намного ниже среднего. С другой стороны, это указывает на то, что должно быть также некоторое количество чеков, которые сильно выше медианы. И такие чеки есть - максимальный чек (MaxOV) = $23661

Интересно, а сколько у нас таких огромных чеков? Давайте быстро визуализируем наше распределение чеко…

R - прекрасный язык для Data Science

Image
Обычно, когда я пишу очередной пост в своем блоге, я не вставляю туда код, потому как исхожу из того, что аналитикам и маркетологам важнее новые идеи и возможные инсайты.

И вот недавно крутой маркетолог и аналитик Alexey Kulichevsky сделал большую и интересную шпаргалку (ссылка на пост с оригинальным кодом) для аналитиков про Python. Я зачитывался блогом Леши еще в далеком 2013 году и могу с уверенностью сказать, что он один из немногих, на кого я равнялся.

Леша, проделал отличную работу показывая основные конструкции на Python, которыми аналитик будет оперировать на ежедневной основе. И мне пришла в голову идея показать, как задачи описанные Лешей, можно было решить на R.

Прежде, чем мы начнем я сразу скажу, что фактически существует два мира R:
классическийсовременный, который строится на философии и наборе библиотек tidyverse Я никогда не писал на классическом R, так как мне он НЕ кажется выразительным, компактным и быстрым. 
Также я отмечу, что намного удобнее работать с R не в ком…

Aha-момент или как понять, что клиент готов быть регулярным пользователем вашего продукта

Image
Итак мы продолжаем тему продуктовой аналитики. Сегодня мы будем говорить о другом аспекте построения продукта - об активации клиента или об aha-моменте.

Из прошлого поста мы уже выяснили, что регулярное действие намного более перспективно с точки зрения удержания.

Но все равно остается один открытый вопрос:

сколько регулярных действий нужно совершить клиенту, чтобы мы были уверены, что клиент будет удержан?

Предположим, мы узнали, что это 3 совершенных действия.

Достаточно ли нам этой информации для запуска маркетинговой кампании, корректирующей поведение "отстающих" клиентов? Ответ очевиден - нет.

Ведь эти 3 действия можно совершить за период в 7 дней, можно за 30 дней, а можно и за 180 дней. В тоже время эффективный маркетинг ВСЕГДА строится на временных рамках (thresholds).

Поэтому возникает второй открытый вопрос:

за какой промежуток времени нужно совершить Х регулярных действий клиенту, чтобы мы были уверены, что клиент будет удержан?

Нахождение ответа на 2 выше озвученн…