15 минут статистики: как делать выводы из АБ-тестов

 Публичный пост
23 февраля 2023  5016
Я понял! ⨯2

Допустим, вы ничего не знаете про статистику (уверена, таких много, я была среди них).

Вам задают вопрос:
у нас магазин, вот мы провели аб-тест, в группах было по 100 000 человек. Мы сделали изменение (добавили новую функцию). В контрольной группе купило 1 000 человек. А в тестовой — 1 100 человек. Катить изменение на прод или не катить?

После этой статьи вы сможете на него ответить. Или нет :) Напишите в комментариях свои впечатления. Так же призываются дата-сатанисты и аналитики, я вполне могла где-то ошибиться, а цель — дать людям простые инструменты и понимание одного из самых задротских разделов математики.

Когда я только начинала свой путь в понимании аб-тестов, я задала вопрос аналитику — а как понять, какого размера должна быть выборка, сколько должен длиться тест, чтобы мы могли принять решение об изменении? Он мне прислал ссылку на калькулятор — вот, посчитать тут, что может быть проще!


(действительно, а что значит каждая из этих крякозябр — видимо, впитывает с молоком матери каждый человек)

А потом я потратила кучу времени и энергии — прошла полностью раздел математики под названием Статистика, прочла несколько книжек и ещё курс от Гугла про АБ-тесты (он, кстати, классный и бесплатный, если что гуглите Юдасити Гугл АБ-тесты на англ). Всё на английском, потому что на русском там не русский, а такой язык, что я одно предложение-то понять не могу (до сих пор). И всё это для того, чтобы просто понять, что такое:

  • стат значимость
  • доверительные интервалы
  • как понимать, можем мы верить аб-тесту или нет, хотя бы верхнеуровнево

И на самом деле мне нафиг не нужны были такие глубокие знания, но никакой вменяемой статьи или видео на Youtube, которые бы на пальцах погружали в статистику, я не нашла. Кажется, их до сих пор не существует. Исправляю такую несправедливость!

Распределения

Смотрите, допустим, вы подбрасываете монетку. Монетку может выпасть орлом или решкой. Если монетка правильная, не утяжеленная с какой-то из сторон, вероятность выпадения орла 50%. Значит ли это, что если вы подбросите монетку 10 раз, у вас 5 раз выпадет орел и 5 раз решка?

Нет! У вас может получиться любой результат — и 4 орла на 6 решек, и 3 на 7, и 2 на 8, да даже 10 орлов может выпасть. Но если одновременно с вами монетку подбрасывает ещё 100 человек, то чаще всего будет результат 5 орлов на 5 решек, и только у вас — 10 орлов.

В каком-то сумасшедшем мире монетку подбросили 1 миллиард раз, и получили вот такое распределение результатов:


Это у нас будет истинная картинка, так распределено в генеральной совокупности. То есть правильные, не утяжеленные с одной из сторон, монетки, выпадают орлами-решками вот так

Так как у нас два исхода, такое распределение называется биномиальным (bis=дважды по-латински).

А вот нормальное распределение. Очень похожее, просто больше конкретных значений. Большинство величин в нашем физическом мире распределены нормально. Например, рост людей, или размер песчинок, или количество полосок у зебр.

Провязываем это с нашим диджитал миром:
большинство штук, которые мы делаем на сайте, в конечном счете влияют на конверсию. То есть мы замеряем в аб-тесте “купил-не купил”, “нажал на кнопку-не нажал”, “открыл письмо-не открыл”. Это всего два исхода. Значит, они распределяются биномиально, как орлы с решками.

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

Но мы здесь не будем про него, потому что большинство гипотез, проверяемых с помощью сплит-тестов — про биномиальное распределение. Товарища Пуассона оставьте дата-сатанистам с аналитиками.

Зубодробительная часть

Когда вы подбрасываете монетку, если только вы не зациклившийся окр-щик, вы её подбрасываете не миллиард раз, а, ну, сто. У вас никогда не получится вот эта картинка:

Вместо неё у вас будет что-то типа:

И вся суть статистики, экспериментов и непонятных формул в том, чтобы ответить на вопрос — так а что эта картинка значит? Как нам её наложить на генеральную совокупность? У нас монетка правильная или кривая, утяжелённая с одной из сторон?

Тут начинается самое интересное :)

Допустим, есть вы и ваш друг. Вы подбрасываете монетку, каждый по 100 раз (ну вот дело было вечером, делать было нечего, бывает же). И у вас 10 раз выпал орел. Если монетки были одинаковые, значит ли это, что у друга тоже орел выпал 10 раз из 100?

Конечно, нет. Ну то есть такая вероятность существует, но она не очень высока. Вы не можете экстраполировать свои результаты на друга со 100%-ной уверенностью.

А что можете? Ну, допустим, с уверенностью 50% вы можете утверждать, что у друга выпал орел от 8 до 12 раз. То есть вы прям выходите к нему и такой:

Или с уверенностью 99,7% вы можете ставить сотку, что у друга выпал орел от 2 до 18 раз. Всего 1%, что вы ошибаетесь и свою сотку проиграете

Сечёте фишку? Чем выше ваша уверенность (и ставки 😁), тем больше погрешность.

В статистике ваша уверенность называется Confidence level. Вероятность ошибки — это Significance level. Если уверенность на 95%, то вероятность ошибиться меньше 5%. Логично ведь?

Вот это вот от 8 до 12 раз — доверительный интервал, диапазон, в котором лежит истинное (полученное другом) значение. Чем выше ваша уверенность, точность вашего предсказания результатов друга — тем шире диапазон.

Для стопроцентной точности (вот чтоб прям к гадалке не ходи!) вам придётся сказать “я точно знаю, что у тебя выпал орел от 0 до 100 раз”. Потому что вероятность получить 100 орлов или 100 решек из ста ничтожно мала, но она есть.

Теперь немного математики и формул. Откуда я получила вообще все эти значения?

Есть формула для расчета доверительного интервала. Формулы будут разными в зависимости от распределения. Просто гуглите “формула доверительного интервала для распределения …” и вуа-ля. Для биномиального распределения используется формула:

где z = z-score, он гуглится в зависимости от того, какой Confidence level вам нужен, насколько сильно вы хотите быть уверены в том, что выпало у друга

p = сколько (в процентах) у вас выпало орлов
1-p = сколько (в процентах) у вас выпало решек
n = размер выборки, сколько раз (в абсолюте) вы подбрасывали монетку

В гуглотаблицах это выглядит так:

Теперь возвращаемся в дивный диджитал мир. Тут у нас никаких решек с орлами, тут только хардкор и конверсии.

Скажите, вам эта предыдущая картинка ничего не напоминает?

По сути это воронка. И нам ничто не мешает считать доверительные интервалы для каждого шага воронки. Ну только ещё один столбик надо добавить, с относительной конверсией. Для p всегда берём процентное значение и для n — выборку относительно этого значения.

Результаты, которым можно верить, лежат за пределами доверительного интервала.

Расшифровывается это следующим образом:
Мы с уверенностью в |...%, confidence level| можем считать, что если конверсия в тестовой группе будет за пределами доверительного интервала значения в контрольной группе – это не погрешность.

раз

два

не знаю, зачем такое считать, но вдруг

Так а нафига мы это считали?

Переходим к тому, как это применять на практике.

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

Когда вы делаете изменение (на сайте, в приложении и тд) — вы выдвигаете гипотезу. Эта гипотеза всегда привязана к метрике, на которую вы хотите повлиять изменением. То есть, допустим, добавляя функцию на сайт, вы такие “Гипотетически, добавив вот эту зашибенную фичу, мы повысим конверсию в лида”

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

Так вот допустим, вы верите, что увеличите конверсию в лида на 0,1%. А доверительный интервал у вас тоже — 0,1%. То есть ваше изменение, даже если вы его “засечёте”, не очень понятно вообще от чего произошло — это вы повлияли фичей, или оно само так вышло.

Классная это гипотеза? Ну, есть надежда, что у вас есть получше. И это точно плохой кандидат на аб-тест.

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

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

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

Если это изобразить графически, то будет выглядеть вот так:

Важно, чтобы доверительные интервалы контрольной и тестовой групп не пересекались. Потому что если они пересекаются — то не понятно, это в рамках погрешности у нас такой результат? Или это наша фича повлияла?

Последнее — не следует из этой статьи, но я всё равно скажу

АБ-тесты создают видимость сильной аргументации. Типа “ну это же цифры, это математика! Давай поспорь со мной, с моими гипотезами и результатами, когда я всё могу доказать количественными показателями”

Но на самом деле это всего лишь инструмент, который не всегда уместен.

Основной аргумент за аб-тесты — не повышение вашей уверенности в выкатываемых изменениях, а в снижении рисков.

На больших выборках, когда у продукта сотни тысяч и миллионы пользователей, изменение в несчастные 0,01% конверсии может измеряться сотнями тысяч рублей. Поэтому тот же Booking ссыт выкатывать что угодно сразу на всю аудиторию — цена ошибки слишком высока, компания может за одно изменение потерять годовую зп продакта, который это изменение решил ввести. Проще проверить на небольших группах, а потом решать.

Я считаю полнейшей дичью применять критерий Стьюдента для работы с малыми выборками в стартапе с 10 000 пользователей в месяц или в b2b с 200 клиентами в месяц.

У стартапа обычно огромный потенциалы роста в улучшениях тупо по обратной связи или с привлечением грамотных специалистов (ux-аудит). А любые изменения обычно проще катить на прод. Потерять вы можете — ну сколько? Ну 50 лидов в худшем случае (хоть я и не представляю, что нужно сделать на плохом сайте такого, чтобы статистически значимо ещё сильнее ухудшить конверсию). А любые, даже минимальные улучшения конверсии, дают вам прирост лидов.

В b2b вместо того, чтобы высчитывать доверительные интервалы на 200 человек проще тупо опросить аккаунт-менеджеров или напрямую клиентов. Это даст намного больше инсайтов и аргументов в вашу защиту перед стейкхолдерами.

Шпаргалка (цифры для примера)

Уровень значимости = Significance level = α, записывается обычно p<0.05 или 5% = насколько вероятно, что мы ошибаемся

Уровень доверия = Confidence level, записывается обычно 95% = насколько мы уверены, что полученное значение лежит в истинном диапазоне

Уровень значимости обычно коррелирует с уровнем доверия, потому что они примерно об одном и том же, но с разных сторон. При уровне значимости p<0.01 – уровень доверия 99%

Доверительный интервал = Confidence interval, записывается обычно 60%+-4% или 56% - 64%

У разных распределений разные формулы для расчёта доверительных интервалов.

У биномиального распределения формула расчета дов. интервала = ZxSquare-root(p(1-p)/n)
Для эксель и гугл таблиц c Confidence level 95% =1.96
SQRT(ячейка с конверсией*(1-ячейка с конверсией)/ячейка с выборкой,из которой посчитана конверсия)

z = z-score = специальный коэффициент, его надо подставлять в формулу расчета дов интервала в зависимости от желаемого уровня доверия

Если статья полезная, пожалуйста, поддержите её плюсиками, чтоб как можно больше нуждающихся людей её увидело

Если вы знаете полезные не зубодробительные ресурсы про статистику и аб-тестам – я слоупок и их упустила, буду благодарна за ссылки

Если вы дата-сатанист и у меня тут ошибки – не стесняйтесь, делитесь жопоболью, я всё исправлю и спасибо, что вам не все равно

Связанные посты
48 комментариев 👇
Миша Безверхий управляющий изделием Команда Клуба 24 февраля 2023

Вчера я откомментировал как-то коротко и поверхностно, но я считаю, что пост очень и полезный. Хочу немножко добавить, пользуясь тем, за последние три года я провёл около 100 A/B-тестов и ещё штук 70 проверил за другим человеком.

Вообще это не про А/Б-тесты, а про философию, но мне очень понравилась вот эта фраза:

Основной аргумент за аб-тесты — не повышение вашей уверенности в выкатываемых изменениях, а в снижении рисков.

Не случайно формулировка нулевой гипотезы такова, что у между изменением и результатом нет связи. Очень хочется увидеть, что какое-то изменение работает, но на самом деле твоя задача и в аб, и во всём остальном -- доказать себе, что ты не прав(а).

Мне очень помогло с этим:
а) смотреть на чужие тесты — чужую идею всегда рубить приятнее, чем свою
б) начать смотреть на свои так же, как на чужие. Я всегда представляю себе вопрос от зрителя: "А если тут будет вот так?"
Не делать изменений ради изменений, принять, что не все идеи работают, — важная штука. В обмен на неё получаешь значительно больше уверенности в том, что знаешь, как работает продукт и какие изменения были стоящими.

Ещё из хороших слов в этом тексте:

Когда вы делаете изменение (на сайте, в приложении и тд) — вы выдвигаете гипотезу. Эта гипотеза всегда привязана к метрике, на которую вы хотите повлиять изменением. То есть, допустим, добавляя функцию на сайт, вы такие “Гипотетически, добавив вот эту зашибенную фичу, мы повысим конверсию в лида”

Вы выбираете гипотезу и не меняете её на ходу. Это может сработать как на вас, так и против вас.

Пример из игровой индустрии. Ваша гипотеза заключается в том, что при добавлении нового баннера вы повысите конверсию в покупку конкретного оффера и тем самым повысите общую конверсию.
Вы выкатываете изменение и смотрите на результаты, конверсия в покупку выросла с 0.1% до 0.2%, общая конверсия выросла с 2.01% до 2.08%, но средняя выручка на пользователя упала. Что делать?
Во-первых, вспоминаем гипотезу. Зачем изменение придумывалось? Чтобы повысить конверсию. Значит, идея работает.
Во-вторых, смотрим - а почему выручка упала? Очень вероятно, в одной группе случайно оказался кит, который перетянул равновесие. В такой ситуации можно сделать несколько вещей:

  • Просто посмотреть, насколько покупки этого кита связаны с вашим тестом. Вы изменили цвет яблока на баннере, а кит внезапно потратил миллион долларов на бананы? Вряд ли это связано. Кит перестал покупать яблоки? Ну тут есть какой-то шанс уже.
  • Ограничить китов какой-то суммой. То есть, например, считать все траты, превышающие 20 долларов, равными 20 долларам. Если вы своим тестом уменьшили переход пользователя в высокоплатящую категорию, вы это всё ещё заметите. Если же это просто случайность - вы её уберете.

В целом вообще залезть в детали - хорошо, но не чтобы натянуть сову на глобус и доказать себе свою правоту, исходя из каких-то странных нюансов, а чтобы в определённый момент, задавая себе вопрос "почему я могу ошибаться?" - вы не смогли на него ответить.

Мы сделали изменение (добавили новую функцию). В контрольной группе купило 1 000 человек. А в тестовой — 1 100 человек. Катить изменение на прод или не катить?

Это вопрос простой. А что если спросить так:

Мы сделали изменение (добавили новую функцию). В контрольной группе купило 1 000 человек. А в тестовой — 1 000 человек. Катить изменение на прод или не катить?

Казалось бы, ответ "нет". Но если я вижу такие результаты, я хочу понять, так ли это. Например, у меня есть стул с флагом Японии на спинке, который я продаю в США и Японии, у меня есть 1000 покупателей в каждой стране. Итого 2000.

Я решаю продавать стул с флагом США, и тоже продаю 2000 стульев.
Изменение ничего не даёт?

Ну нет, на самом деле я просто продал 1500 стульев в США и 500 в Японии. И я теперь знаю, что я могу выкатить изменение на один из сегментов моего рынка.

Сегментировать опять же можно на очень разных основаниях: страна, тип девайса, прошлые покупки и всякое такое. Протестировать можно на всех, и круто, если изменение влияет на всех одинаково, но всегда стоит посмотреть - а можем ли мы назвать пользователей, которые отличаются от других?

И последнее, о чём я хотел написать: есть большие тесты, а есть маленькие.
Иногда я менял картинку, которую мы показываем с товаром. И это влияло сильно. Иногда я менял баннер, и это не влияло на итоговые результаты не так. Оба теста - очень маленькие, и их легко посчитать. Но иногда в попытке угнаться за маленькими trackable изменениями ты играешь на балалайке вприсядку. Вместо маленьких изменений можно забабахать одно большое, но объединённое общей идеей, - и посмотреть, как оно отработает. Это пересекается с мыслью, что если вы стартап, то хрен вы наберёте статистически значимое количество юзеров. На самом деле, вы можете набрать, но тогда, когда готовы делать большие изменения.

  Развернуть 1 комментарий

у нас магазин, вот мы провели аб-тест, в группах было по 100 000 человек. Мы сделали изменение (добавили новую функцию). В контрольной группе купило 1 000 человек. А в тестовой — 1 100 человек. Катить изменение на прод или не катить? После этой статьи вы сможете на него ответить. Или нет :)

Так кактить или не катить? Статью прочитал, ответить не могу. :(

  Развернуть 1 комментарий

@zahhar, ну там из подсказок у двух друзей монетки с подобной конверсией орлом падают.

  Развернуть 1 комментарий

@zahhar, кати, конечно. Если AB тест не даёт четкого ответа, то нужно выкатывать изменение, чтобы таску в Jira нормально закрыть.

  Развернуть 1 комментарий

@shultais, 😁😁

  Развернуть 1 комментарий

@zahhar, а ты пробовал:
— перенести формулы в эксель и посчитать дов интервалы для этого кейса?
— сравнить величину изменения с дов интервалом?
— сравнить дов интервалы контрольной и тестовой групп, пересекаются или нет?

  Развернуть 1 комментарий

@nata_givental, нельзя делать выводы по пересечению доверительных интервалов. Это очень серьёзная ошибка. На строить интервал для разности и смотреть попал ли в него ноль. У алгоритма с пересечением будет очень низкая мощность и вымокая ошибка второго рода.

  Развернуть 1 комментарий

@ppilif, можешь переформулировать? Я жираф, до меня долго доходит просто, но я хочу понять.

В чём именно ошибка?

Видео открыла, но там на 59 минут 😅 Нет возможности посмотреть, к сожалению

  Развернуть 1 комментарий

@nata_givental, когда ты делаешь аб-тест, есть две ошибки: катить говно, не катить конфетку.

Ошибка второго рода — не катить конфетку.

Ты можешь:

а) построить для тестовой и контрольной группы доверительные интервалы и принимать решение не катить, если они пересеклись

б) построить доверительный интервал для разницы средних и не катить если в него попал ноль.

В случае а) ты будешь намного чаще не катить конфетку. В случае б) ты будешь ошибаться так намного реже. Вообще можно даже доказать формально, что процедура б) даёт тебе самое маленькое число ошибок «не катить конфетку»

  Развернуть 1 комментарий

@ppilif, Ооо, вот это инсайт, спасибо огромное! Не задумывалась об этом, а на курсе от Гугла об этом не говорили (вроде).

Обожаю за это клуб, такие клёвые штуки тут нахожу и в постах, и в комментах 🔥

Можешь ещё расшифровать способ б? Что такое построить дов инт для разницы средних?

  Развернуть 1 комментарий

@nata_givental, у тебя есть экспериментальная выборка для групп А и Б, по которым ты оцениваешь распределение случайных величин в этих группах -- считаешь матожидание и дисперсию распределений.

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

  Развернуть 1 комментарий

@zahhar, вводных определённо мало.
мы же на знаем как и что тестили.

Например: Синоптики объявили неделю солнца и все побежали покупать очки у нас в магазине. Мы думаем фича зашла, а на самом деле синоптики.

  Развернуть 1 комментарий

@roma_ds, обобщаемость — всегда сложно, но в примере с синоптиками я как раз проблемы не вижу. Правильно проведенный АВ тест обещает, что все внешние факторы в обеих группах учтены одинаково и разница между группами — это эффект изменения.

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

  Развернуть 1 комментарий

Спасибо, что популяризуешь АВ тесты! АВ — это мое основное занятие, когда я работаю работу, и мне есть что сказать. Смотрел не максимально детально, так что прошу прощения, если что-то не так понял

  1. Основные параметры процедуры принятия решения о раскатке (например, способа из поста) — это два числа, вероятности ошибок первого и второго рода. Хорошо бы их понимать для своей процедуры, а это не получится сделать без симуляций виртуальных АВ тестов на исторических данных. В качестве примера, почему важно это делать, — обычно используется предпосылка о независимости наблюдений, которая часто нарушается и может ломать результаты. На тему симуляций могу кинуть пару статей своих коллег из Х5: https://habr.com/ru/company/X5Tech/blog/466349/, https://habr.com/ru/company/X5Tech/blog/706388/. Когда есть симуляции, дальше уже можно разные процедуры сравнивать и выбирать лучшие, чтобы добиться приемлемо низких вероятностей ошибок. Без симуляций АВ тесты будут создавать видимость data-driven, а по факту, скорее всего, будут выдавать полный рандом
  2. В жизни интервалы для любых распределений, кроме нормального, особо не используются, потому что всех интересуют средние, а их благодаря центральной предельной теореме можно считать нормально распределенными
  3. Вижу вместе интервалы для разных этапов воронки, выглядит как множественное тестирование (проверка нескольких гипотез за раз), которое лучше или избегать, или учитывать в анализе
  4. Про пересечение интервалов vs интервал для разницы уже написали, могу только добавить, что симуляции дадут четкий ответ, что же лучше на твоих данных

Однозначно рекомендую книжку Trustworthy Online Controlled Experiments / Доверительное А/В-тестирование. Она в формате полунезависимых глав, поэтому неактуальные тебе разделы можно пропускать (с советами, как построить платформу АВ тестов в компании, или с формулами)

P.S. АВ тесты я всегда готов обсудить, мне можно писать

  Развернуть 1 комментарий
Стас Якушкин научный сотрудник 23 февраля 2023

Не вполне понятно, что имеется в виду под фразой «Я считаю полнейшей дичью применять критерий Стьюдента для работы с малыми выборками…»
Дальше по тексту вроде как речь идет о том, что в некоторых случаях количественный анализ лучше заменить качественным исследованием, но сам то критерий чем провинился, он для малых выборок так то и придуман.

  Развернуть 1 комментарий

@stasyk, ничем не провинился :) Это всего лишь инструмент (хороший, спору нет). Но применение даже такого хорошего инструмента в стартапе или в б2б с малым кол-вом пользователей и точками роста в другом — я считаю не целесообразным (дичью)

  Развернуть 1 комментарий

@nata_givental, то есть для стартапа и чего там, с малым количеством пользователей, получается:
«как делать выводы из АБ-тестов» - никак.

  Развернуть 1 комментарий

@stasyk, ну почти) Как делать выводы из аб-тестов для стартапов и б2б — можно заморочиться и всё посчитать, но лучше никак

  Развернуть 1 комментарий

@stasyk, да, мы один раз решили провести АБ тест на лендиге и целый год собирали данные, чтобы они имели стат. значимость.

  Развернуть 1 комментарий

@stasyk, у вас пользователей должно быть меньше 50 для критерия стьюдента. Распределение очень быстро сходится к нормальному при росте выборки :)

  Развернуть 1 комментарий

@ppilif, так в том и вопрос, там в примерах 10000 пользователей в месяц. Даже если конверсия 0% распределение Стьюдента можно не применять. Но из построения предложения можно сделать вывод, что автор критерием Стюдента называет вообще любой количественный анализ данных.

  Развернуть 1 комментарий

@nata_givental, Я тут добавлю, что это возможно и правильно. Если стартапу нужно считать стат.критерий, чтобы увидеть эффект от изменений, то как будто бы он копает не там. На мой взгляд, у стартапов обычно есть низковисящие фрукты (с точки зрения яркости результатов), на которых и стоит сосредоточиться.

  Развернуть 1 комментарий
Дмитрий Павлов Продуктовый аналитик 23 февраля 2023

We reject the null hypothesis based on the 'hot damn, check out this chart' test.


p.s. просто решил поделиться

  Развернуть 1 комментарий
Светлана Аюпова Запускаю продукты и руковожу ими 23 февраля 2023

О, спасибо, буду джунам отправлять. :)
По простым материалам — "Статистика и котики", конечно. :)
А скоро выйдет "Статистика и котики для бизнеса", инсайдерская инфа, автор — мой коллега, из Контура. :)

  Развернуть 1 комментарий

@Sveta, вижу что на появление "Статистика и котики для бизнеса" уже можно подписаться в Читай-городе

  Развернуть 1 комментарий
Mikhail Merkurev Продуктовый аналитик 1 марта 2023

Классная статья!

Могу дополнить, что основы статистики хорошо изложены в книжке "Статистика и котики" и в курсе https://stepik.org/course/Основы-статистики-76

По аб тестам рекомендую почитать
https://link.medium.com/GvLpi0V2Nxb
https://habr.com/ru/company/avito/blog/571094/
https://habr.com/ru/company/avito/blog/571096/

  Развернуть 1 комментарий

Привет! Хочу поделиться своим опытом – поворотной точкой в работе с экспериментами для меня стала вот эта концепция – смотреть на эксперименты как на линейную модель.

В простом случае у тебя получается следующее
метрика = константа + эффект * группа(0 или 1)

то есть, если группа тестовая (1), ты получаешь прибавку к метрике в контрольной (0) группе.

Такой подход позволяет за счет свойств линейных моделей расширять подход – делать подобие CUPED и добавлять сетевые эффекты (когда у тебя юзеры между группами взаимодействуют и искажают эффект от фичи).

  Развернуть 1 комментарий
Миша Безверхий управляющий изделием Команда Клуба 23 февраля 2023

не знаю, зачем такое считать, но вдруг

(это была подпись к одной из картинок, про изменение на этапе всего потока, повлиявшее на конверсию в покупателей)

такое можно считать, потому что конечная цель - это совершение покупки, если на этапе лидогенерации написать, что вы дадите миллион долларов за совершение покупки, можно нагнать мусорных пользователей в следующий этап воронки, и они отвалятся)

  Развернуть 1 комментарий

@mixbez, отличный пойнт

  Развернуть 1 комментарий
Константин Разнорабочий в digital 28 февраля 2023

Выдержка:

  • У тебя есть 2 стула, один точно лучше другого, какой купишь? Ответить сможешь после того как почитаешь :)

  • Нормальное распределение выглядит на графике как колокол. Означает кол-во значений в каждом диапазоне.

  • Обычно всё выглядит как колокол, но это не твой случай, у тебя его не будет.

  • Монетку с другом лучше не кидать - ты всё равно ничего не знаешь.

  • Доверительный интервал это...? (напрягаешься, потеешь);

  • Это интервал, в котором значение НЕ должно находиться, чтобы мы могли предположить с некоторой увереностью, что это не случайность.

  • Хорошо, когда погрешность маленькая, а изменение большое;

  • Лучше, когда метрика выросла настолько, что ты получил повышение.

  • Если у тебя мало данных - не делай A/B-тест, лучше поболтай сходи.

А стул я покупать не буду, мой удобнее.

  Развернуть 1 комментарий

есть такая задачка про тестирование. у аделины и беллы аккаунты на онлифанс с конверсией, скажем 20%. они меняют верстку и смотрят, че там с деньгами. при этом белла наняла аналитика и принимает изменения по p-value < 0.05, а аделина просто смотрит на среднее и катит по среднему.
пусть у каждой было 100 правочек, правочки дают N(0, 1) на конверсию и даже пусть правочки вообще одинаковые для обеих девочек, там один и тот же фронтендер фрилансит. кто после ста правочек вырвется вперед по конверсии? сэмпл сайз 1000 на контрол и тритмент у каждой, чтобы картина ровная была.

  Развернуть 1 комментарий

@oneunreadmail, мне для понимания контекста — я верно услышала, что правки одни и те же? Тогда кто на что ориентируется, аделина повторяет за беллой? Или вообще всем рулит фронтендер?

  Развернуть 1 комментарий

@nata_givental, это на самом деле не очень важно для задачи. давай считать, что фронтендер выкатывает им правочки, а они их обкатывают на юзерах и либо принимают, либо не принимают.

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

  Развернуть 1 комментарий

@oneunreadmail, а что значит «принимать решения по среднему»?

  Развернуть 1 комментарий

@efimov91ilya, Если на старом дизайне из тысячи посетителей только 299 оставило копеечку, а на новом — 300, берём новый. Если наоборот — оставляем старый.

  Развернуть 1 комментарий

@oneunreadmail, а Снежана не занимается такой фигнёй и просто берёт в работу резиновый член на два размера больше, симпатичную подругу и учится улыбаться шире, тем самым увеличивает конверсию в разы и хихикает в сторону Аделины и Беллы

  Развернуть 1 комментарий

@AlexeyFyodorov, и теряет нишу, а все потому, что не протестировала изменения и не учла, что ее контингент не ассоциирует себя с большими членами :(

  Развернуть 1 комментарий

@oneunreadmail, Задачка-то с подвохом получается, если мы каждую правку отдельно оцениваем, то тут множественное тестирование, интервалы разъезжаются и чтобы стат. разницу найти нужно чтобы белла заработала миллион.

  Развернуть 1 комментарий

@plyntus, я, разумеется, когда сочинил задачу, взял и намонтекарлил ее, и знаю ответ: одна из девочек обгоняет другую на порядок чаще. ну и ладно, проспойлерю ответ, разумеется, аделина бьет беллу в хлам.

этот ответ я ожидал, он меня не очень удивил, но очень хочется, чтобы кто-то, сведущий в статистике, пришел к тем же результатам аналитически, а потом обосновал — почему условия задачи некорректные, или почему вообще аб-тесты полезны, но для онлифанса не работают, или как надо поступать белле, чтобы поступить по-научному и обогнать аделину, или расплакался бы и ушел из профессии. или пересчитал за мной и выяснил, что я намонтекарлил плохо, и чтобы я расплакался и ушел из профессии, что-нибудь в таком роде.

  Развернуть 1 комментарий

@oneunreadmail, кмк вопрос в том на каком этапе бизнеса ты находишься. Изменения, которая распределены по N(0, 1), это только один из вариантов и кмк не слишком реальный. Если представить, что ты уже долгое время внедряешь изменения (неважно как с помощью экспов или нытья в твиттере), то они скорее всего имеют более консервативный характер. Так что я помоделировал из разных предположений.

  Развернуть 1 комментарий

@dmipgoz, Окей, а какое ты ожидаешь распределение изменения конверсии?

  Развернуть 1 комментарий

@oneunreadmail, А какая дисперсия у изначальной конверсии? Или в монтекарло там всегда 20% гвоздями были прибиты?

  Развернуть 1 комментарий

@stasyk, изначально прибито, мы же хотим одинаковых стартовых условий. Ты думаешь, что от N(20, 5) сильно поменяется ответ?

  Развернуть 1 комментарий

@oneunreadmail, смотри, предсказание по разности средних даёт лучший результат. Почему? Потому что в условиях задачи заложена нулевая дисперсия средних у контрольной группы (и у тестов на самом деле). А весь смысл приседаний с достоверностью как раз в том, что нулевой дисперсии не предполагается нигде. В реальности две выборки с 20% конверсией не дадут обе по 200 покупателей. Будет что-то в области 195 - 205. Я задавал вопрос про то, как ты моделировал этот момент. Предполагаю что дисперсия средних сильно смешает карты подходу «накатывать изменения по одной цифре без анализа»

  Развернуть 1 комментарий

@oneunreadmail, правочки дают N(0, 1) на конверсию, всё, дальше можно не считать. У всех правок неотрицательное влияние на конверсию, значит выиграет Василина, которая выкатывает все правки сразу на всю аудиторию без проверки а/в тестами. На втором месте Аделина, которая тоже будет принимать все правки, но только после тестов. А проиграет Белла, потому что она срежет часть изменений из-за ложноотрицательного результата а/в теста.

  Развернуть 1 комментарий

@treboit, N(0, 1) это нормальное распределение с матожиданием 0 и дисперсией 1, то есть среднее влияние на конверсию — 0.

  Развернуть 1 комментарий

@oneunreadmail, оу, я тогда туплю

  Развернуть 1 комментарий

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

Statquest же есть, там и цикл про p-value и тесты имеется

  Развернуть 1 комментарий

😎

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

Что вообще здесь происходит?


Войти  или  Вступить в Клуб