блинб, такое ощущение, что нужно начать выкладывать какие-то посты про рабочие процессы и отойти от технической составляющей на какое-то время. Если так думаете, ставьте реакции, чего-нибудь придумаем про то, как я вливаюсь, что делаю и т.п. 🙊
Please open Telegram to view this post
VIEW IN TELEGRAM
❤60🔥26🌭6🥱4😁2😢2🐳2👨💻2👾2
Как проходит мой испытательный срок в Яндекс 🍫 Лавке?
Всем привет! Если говорить в общем, я жив. Если чуть глубже, то мне очень нравится то, чем занимаюсь сейчас. Изначально, я приходил из💙 , редко задумываясь над тем, а как вообще ведет себя пользователь, что ему нужно у нас и как мы можем повлиять на бизнесовые, продуктовые метрики. Напомню, что ранее я работал в направлении продавцов и коммерции OZON СНГ. Сейчас я отвечаю за различные интеграции, экосистемные подходы в Лавке. Если говорить про функционал, я немножко прифигел с того, что продукт неразрывно связан с аналитикой, так и должно быть, но, возможно, это специфика продуктовых аналитиков, точно сказать не могу. Можно предложить различные гипотезы, обосновав их как-то на цифрах и уже в дальнешйем связать с продуктом, весьма классно! 😏
Еще доставляет то, что у Яндекса есть свои решения, используемые внутри. Взять тот же YQL, который используется для написания различных запросов + можно сразу в нем написать код на Python, что удобно, ты не будешь думать над тем, что по памяти где-то не пройдешь. Nirvana, используемая для оркестрации задач с понятным UI интерфейсом и различными сценариями. Python по-прежнему остался, можно что-то поделать в том же VS Code, Jupyter тетрадках🥲
А еще тут очень много интересных ивентов, нетворкинг, ну и конечно же бейджик с компенсацией питания, как без него. Представьте, вы сидите на рабочем месте, хотите затестировать какой-то функционал на проде, просто берете, заказываете еду из Лавки, вам ее доставляют. Буквально можно пройти полный путь клиента, отловить различные проблемы и поесть нормально!👍
Посмотрим, что будет со мной еще через какое-то время, но пока так. Помните свой испытательный срок в последней компании? Как это было, какие эмоции испытывали? Пишите в комментариях!😎
Всем привет! Если говорить в общем, я жив. Если чуть глубже, то мне очень нравится то, чем занимаюсь сейчас. Изначально, я приходил из
Еще доставляет то, что у Яндекса есть свои решения, используемые внутри. Взять тот же YQL, который используется для написания различных запросов + можно сразу в нем написать код на Python, что удобно, ты не будешь думать над тем, что по памяти где-то не пройдешь. Nirvana, используемая для оркестрации задач с понятным UI интерфейсом и различными сценариями. Python по-прежнему остался, можно что-то поделать в том же VS Code, Jupyter тетрадках
А еще тут очень много интересных ивентов, нетворкинг, ну и конечно же бейджик с компенсацией питания, как без него. Представьте, вы сидите на рабочем месте, хотите затестировать какой-то функционал на проде, просто берете, заказываете еду из Лавки, вам ее доставляют. Буквально можно пройти полный путь клиента, отловить различные проблемы и поесть нормально!
Посмотрим, что будет со мной еще через какое-то время, но пока так. Помните свой испытательный срок в последней компании? Как это было, какие эмоции испытывали? Пишите в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤7😍5👍1🖕1
This media is not supported in your browser
VIEW IN TELEGRAM
POV: когда пройду испытательный срок 👻
Please open Telegram to view this post
VIEW IN TELEGRAM
😁42🔥5❤4🍌1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥5😁5🤡2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥3👏1🥴1
Всем привет, сегодня я бы хотел написать о том как гипотезы вообще обретают бизнес-ценность на примере цикла HADI.
Изучая более глубоко продукт, мы можем выдвигать различные предложения по улучшению продукта, это может быть как в формате брейншторма, так и отдельно сформулированной идеей продакта или аналитика.
Пример: Если мы внедрим X, то это повлияет на Y с эффектом в Z% в течение T дней.
Возможно, про эффект у нас нет информации, это может быть как экспертная оценка, так и число, полученное на основе исторических данных.
Action - по сути то, что мы будем делать для проверки гипотезы, менять какой-то виджет, кнопку, да что угодно.
Data - метрики / показатели на которые мы хотим появлиять. Например, в контексте A/B тестирования это могут быть целевые метрики (AOV, ARPU, CR, ну вы поняли...)
Советы по HADI:
1. Можно формулировать гипотезы по SMART.
2. Приоретизация результата, можно использовать RICE
3. Чем больше гипотез, тем лучше, можно тестировать много всего.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39❤12🔥7🍓3😐1
А. Карпов, А. Сахнов, А. Байрамкулов, А. Хакимов — A/B-тесты. Источники данных и инструменты анализа
Нужны не всем. Например, чтобы увидеть результат в каком-то стартапе можно увидеть эффект практически сразу (если мы говорим о продуктовых изменениях). Микроизменения хочется смотреть крупным игрокам, такие показатели без A/B тестов поймать сложно. Скажу, что в целом достаточно классно, когда продукт мыслит в рамках экспериментов и такими шажками развивается (гипотез много, все сразу в прод не катнешь, а сезонность учитывать хочется).
Платформа сама по себе достаточно сложная, включает в себя очень много всего. Например, это и связь различных источников и метричница и бэкэнд, короче в общем много всего. Как будто мы должны понять окупится ли платформа (поддержание + внедрение). Можно сказать, что платформа нужна тогда, когда культура A/B тестов начинает прогрессировать и людям важно разделять тесты, например, на различные слои, следить за кучей метрик и т.д.
... (думаю про это даже пост катнуть, если интересно, пишите).
🆎 Если наберется 100
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳99❤8🔥4🏆1
Всем привет! Сюда после моего прихода в Яндекс 💙 Лавку присоединилось большое количество человек. Хочу порекомендовать канал @start_ds Ромы Васильева, ранее он занимался коммерческой аналитикой в Лавке. Помню, как смотрел его видео на ютубчике про различные вопросы с собеседований, интервью с различными клевыми ребятами и мне всегда этот формат очень сильно заходил, а также разборы различных ML вопросов с собеседований и не только. По 🆎 есть также хорошие посты со ссылками на источники. Сейчас он перешел в большой Яндекс, но тем не менее, у человека еще есть время выкладывать годные посты, в общем вэлком 😤
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Start Career in DS
Тут публикуются материалы для прокачки скиллов в DS и подготовки к собеседованиям.
Пишем про технические тулзы, визуализацию данных, бизнесовые задачи, разбираем ML-алгоритмы и обсуждаем смежные темы :)
Автор: @RAVasiliev
№ 5141779667
Пишем про технические тулзы, визуализацию данных, бизнесовые задачи, разбираем ML-алгоритмы и обсуждаем смежные темы :)
Автор: @RAVasiliev
№ 5141779667
❤12🐳9🔥3
Для чего нужен ML в аналитике?
❓ Сразу же вопрос, можно ли решить продуктово задачу как-то без использования машинного обучения? Что решаете данной задачей? Да-да типичные вопросы "аналитика-душнилы", который постоянно хочет задать вопрос: "Зачем?" (и это правильно).
😩 Раз уж на то пошло, давайте опишу здесь сценарии, в которых ML может применяться (понятно, что их куда больше, рассмотрю те, которые вспомнил). Понятно, что аналитики бывают разные, рассмотрю с призмы продуктовой аналитики. Зачастую используются какие-то ML решения для исследований, а продакшн уже не наше)
😐 Задача классификации. Хотим предсказывать какую-то бинарную величину (или оценивать вероятность). Нам нужно оценить, например, отток пользователей, какие-то дополнительные исследования в эту сторону. Пример ноутбука Kaggle
👍 Временные ряды. Если у нас есть желание построить какой-то прогноз, например, внутренний KPI продаж, это можно сделать как на основе различных факторов, так и используя временные ряды. Туториал на Kaggle.
😤 Causal Inference aka причинно-следственные связи. Внедряем какую-то фичу, хотим честно замерить эффект на пользователей.❗️ Про это могу рассказать в следующих постах, если наберется нормальное количество реакций❗️
😎 Матчинг. Поиск из базы наших пользователей тех людей, кто соответствует поставленной задачи. Например, те пользователи, которые имеют определенный паттерн, который нас устраивает и мы хотим найти похожих. Ноутбук Яндекса ❤️
😎 MMM (Marketing Mix Modeling). Это про то, когда нам нужно оценить различные маркетинговые каналы (но это больше к маркетинговой аналитике). Статьи на Хабр. Первая часть, вторая часть
🕺 Сегментация пользователей. Кластеризация какая-нибудь, есть пример тут с гайдом, как это можно сделать.
...
feaure importance ... и так далее.
Относительно недавно вышло видео с собесом на аналитика, где спрашивали базовые вопросы про линейную регрессию. Для того чтобы прочувствовать то, как это работает на данных, можно чекнуть.
😤 Все зависит от специфики команды, можно и динамическим ценообразоованием заняться, блин
👍 А в каких кейсах вы использовали ML? Если на этом посте наберется 150+ реакций, запилю какой-нибудь гайд с решением продуктовой задачи с помощью ML
...
feaure importance ... и так далее.
Относительно недавно вышло видео с собесом на аналитика, где спрашивали базовые вопросы про линейную регрессию. Для того чтобы прочувствовать то, как это работает на данных, можно чекнуть.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳79👍25🔥22❤13🎄2
🆎 Демо платформы A/B тестов в Avito. Интересно реализовано, больше всего кайфанул от загруженности слоев при проведении экспа по разным разбивкам устройств. 5 минут и можно посмотреть, буквально свежая новость, к просмотру вэлком. https://www.youtube.com/watch?v=OppYNmYxCTg
Мое предложение все еще в силе: https://t.iss.one/zasql_python/240
Мое предложение все еще в силе: https://t.iss.one/zasql_python/240
👍12❤4🔥3
1. Для тех, кто хотел посмотреть на то, как работает Яндекс
2. У Яндексоидов вышла папка с большим количеством каналов (я там есть, кстати), можно посмотреть изнутри, как кто живет, о чем пишут. Для себя подметил некоторые каналы. Первая картинка была взята отсюда
3. Появилась новая фича у Лавки в виде дозаказа
4. Недавно была презентация нового тикера YDEX. Уже доступен на Московской бирже
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34❤16👍10🥱2😈2😍1💘1😘1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤106🔥31👍15🗿8🐳6😁1
Выезд клиентской аналитики Яндекс 🍫 Лавки в Сочи
🤗 Всем привет! Этот пост про то, как мы вместе с командой полетели в Сочи. Были продуктовые, маркетинговые аналитики и ресерчеры. В общем, объединили количественные и качественные исследования. Очень классная движуха, поскольку можно с разных сторон посмотреть на то, что происходит в Лавке.
☀️ Отдохнули, сходили в горы, покупались, ближе познакомились. Это конечно классно, но основным мероприятием являлась брейшнторм-сессия, где определялись дальнейшие исследования, направления развития нашего любимого сервиса.
🕵️♂️ Кстати, по одной из тем меня назначили фасилитатором. Цель - забрифовать людей по теме, дать вкратце понимание того, что происходит в определенном направлении бизнеса.
🙈 Как итог, было нагенерено большое количество гипотез, которые предстоит скорить, оценивать потенциал, заниматься рисерчем. Кайфанул от такой движухи, первый раз в командировке был.
🙊 Кстати, еще у нас открыты вакансии, если хотите к нам, Одна из открытых вакансий в маркетинговую аналитику. А если хотите, чтобы я вас пореферил, кидайте резюме, что-нибудь придумаем
😊 А какая была ваша первая командировка? Делитесь об этом в комментариях, ставьте реакции!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28 9👍7❤1👏1
22 🎉
Дальше - больше. Всем спасибо, что продолжаете и дальше смотреть за постами, я очень рад этому! Нас уже 3000, блин! С последнего поста про др уже х2 подписчиков😊
Больше не смогу отправить в красивое время сообщение. Надо было в 11 лет постить…
Дальше - больше. Всем спасибо, что продолжаете и дальше смотреть за постами, я очень рад этому! Нас уже 3000, блин! С последнего поста про др уже х2 подписчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61❤14😎5❤🔥3🎉2💘1
Заскуль питона (Data Science)
У академии аналитиков Авито есть в открытом доступе свой курс по прикладной статистике. Сам курс проходил, могу сказать, что для A/B тестов самое то, но нужно знать первый курс статистики про распределения, ЦПТ, ЗБЧ и проверку гипотез из статистики. Помимо…
Всем доброй ночи! Увидел, что у Академии Аналитиков Авито вышла вторая часть курса по прикладной статистике. Кто-то уже успел посмотреть? Первая часть мне зашла, можно посмотреть на одном дыхании под lofi music, я считаю (ну почти). Тут поинтересней темы, интересно что скажут про критерий MW, будет ли что-то про модификации и другое, узнаю, отпишу (честно, не помню как они применяют его, нужны ли какие-то условия для выборки, в демо платформы A/B тестов не увидел)
P.S: Я никуда не ушел, через 3 дня заканчивается испытательный срок, все отпишу😋
😡 - когда Максим не выпускал пост месяц, а ты ждал мем...
UPD: Если вы не смотрели первую часть, настоятельно рекомендую глянуть.
UPD2: Ссылочка: https://avito.tech/education/statistics (жаль, что на ютабчике, а не на рутубе офк)
P.S: Я никуда не ушел, через 3 дня заканчивается испытательный срок, все отпишу
UPD: Если вы не смотрели первую часть, настоятельно рекомендую глянуть.
UPD2: Ссылочка: https://avito.tech/education/statistics (жаль, что на ютабчике, а не на рутубе офк)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤42🔥11👍7🙉2🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
Градиентный спуск (ч. 1)
😔 Всем привет! Сегодня я бы хотел вам рассказать про то, что такое градиентный спуск и вообще для чего он применяется, в каких направлениях и для чего. Градиент отражает направление скорейшего возрастания функции
💳 Начнем с линейной ргерессии, для тех кто не помнит / не знает, уравнение прямой задается yi = wi * xi, где yi - значение целевого признака. Это конечно замечательно, но истинные значения (если мы живем в непрерывном пространстве будут всегда различаться от предсказанных (какая-то ошибка возникнет).
🍦 Решение задачи - минимизировать ошибки, возникаемые при изучении модели. Но как мы это можем сделать, если у нас xi, yi заданы? Правильно, повлиять как-то на веса признаков. Для линейной регрессии обычно используется такая функция потерь, как MSE, которую мы хотим минимизировать. Градиентный спуск позволяет найти веса модели, при которых ошибка будет минимальна (осторожно, модель может найти локальный / глобальный минимум). Мы хотим понять, при каких значения wi наше значение ошибки будет минимально. Почему берется MSE, могу рассказать в следующих частях
👌 У градиентного спуска есть 3 параметра:
1) начальная точка, в нашем контексте - это вектор весов признаков (выбираются случайно)
2) количество итераций, мы определяем заранее сколько итеративно нам нужно пройтись, чтобы прийти к точке, близкой к минимуму
3) коэффициент скорости обучения (Learning Rate). Если мы будем выбирать слишком маленький шаг, то можем за ограниченное количество итераций не прийти в точку минимума (функции потерь в нашем случае), а если Learning Rate будет слишком большим, то мы можем перепрыгнуть точку минимума.
4*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.
в общем виде:
Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.
Игрушечный пример с градиентным спуском.
В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).
Эта техника применяется в различных моделях машинного обучения, в нейронных сетях и др., о чем я более подробно хочу написать в следующих постах.
Где можно почитать подробней?
Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова
Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
1) начальная точка, в нашем контексте - это вектор весов признаков (выбираются случайно)
2) количество итераций, мы определяем заранее сколько итеративно нам нужно пройтись, чтобы прийти к точке, близкой к минимуму
3) коэффициент скорости обучения (Learning Rate). Если мы будем выбирать слишком маленький шаг, то можем за ограниченное количество итераций не прийти в точку минимума (функции потерь в нашем случае), а если Learning Rate будет слишком большим, то мы можем перепрыгнуть точку минимума.
4*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.
в общем виде:
start_point = i
iterations = n
learning_rate = t
for _ in range(iterations):
start_point -= t * gradient(x)
start_point, func(start_point)
Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.
Игрушечный пример с градиентным спуском.
import numpy as np
def loss_function(x):
return x ** 2 * np.sin(x)
def gradient(x):
return 2 * x * np.sin(x) + x**2 * np.cos(x)
def gradient_descent(starting_point, learning_rate, num_iterations):
x = starting_point
for _ in range(num_iterations):
x -= learning_rate * gradient(x)
return x
starting_point = 3 # Начальная точка, выбирается случайно
learning_rate = 0.01 # Скорость обучения
num_iterations = 100 # Количество итераций
minimum = gradient_descent(starting_point, learning_rate, num_iterations)
В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).
Эта техника применяется в различных моделях машинного обучения, в нейронных сетях и др., о чем я более подробно хочу написать в следующих постах.
Где можно почитать подробней?
Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова
Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤41👍12🔥8🏆2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36😁22🔥6
Заскуль питона (Data Science)
Я не забыл, в процессе. Будет пост / посты на следующей неделе. До сих пор ждёте? 😮
Ставьте котика на реакцию😱
Ставьте котика на реакцию
Please open Telegram to view this post
VIEW IN TELEGRAM
Этот пост нужен для того, чтобы базово вникнуть для чего используется
Итак, Causal Inference - это процесс поиска причинно-следственных связей. Он позволяет нам понять, насколько X влияет на Y. В статье от X5 объясняются основные техники, позволяющие оценить эффект. Как правило, они могут основываться и на простых методах по типу линейной регрессии. Вообще практически все в нашем мире можно объяснить с помощью линейной регрессии (true fact).
Зачем нам это может нужно, если есть A/B тесты?
1) Хочется оценить эффект от фичи, которая работает длительное время. Например, нужно оценить эффект от раскатки нового варианта онбординга на пользователей с момента запуска.
2) Мы не контролируем формирование групп. Это может быть применимо к оффлайн-экспериментам.
3) Не можем провести эксперимент по различным причинам. Например, по техническим или этическим, когда тест нужно держать очень долго
🆎 Представляем, что мы хотели провести A/B тест, но по какой-то из причин, этого не сделали. Помните, в чем основная задача? Это определить будет ли значимым эффект при рандомном семплировании определенных групп. Проводя эксперимент в классическом понимании, мы имеем тест, контроль (на кого-то раскатили новый функционал, на кого-то нет), мы применяем. Далее, ссылаясь на то, что наблюдения независимые (или зависимые и мы применяем поправки), сравниваем группы, получаем эффект
В задачах Causal Inference может быть несколько вариантов решения задач.
1. Определить то, как ведет себя метрика на препериоде и оценить то, как после запуска воздействия поменялось поведение метрики (по сравнению с прогнозом). Например, Diff-n-diff или Causal Impact (Counterfactuals analysis)
2. В задачах, где у нас нет контроля, сопоставить пользователей по похожести и оценивать эффект так, как будто мы проводим тест. PSM, Instrumental variables и различные вариации (Квази-эксперименты)
Ставьте реакции, пишите комментарии. В следующих постах я опишу то, какие методы бывают более подробно и разберем более подробно то, как они работают.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍9❤4
Propensity Score Matching (Causal Inference ч. 2).
Сегодня обсудим то, что это такое, рассмотрим какие-то кейсы и то, как можно интерпретировать то, что получается с помощью этого метода
Итак, представьте, вы раскатили фичу на всех, оценить эффект может быть очень тяжело, либо невозможно по причинам, указанным выше. Например, запустили какой-то функционал, хотите понять эффект спустя какое-то время на срезе тех пользователей, кто пользуется фичой. Но тут у вас возникает вопрос (скорее всего), а с кем сравнивать вообще, как оценить влияние на бизнес? Должно быть понятно, что если мы раскатили фичу на срез пользователей в >=50%, то матчить будет не из кого.
Наверное, вы или ваш менеджер продукта определяет различные сроки проектов, т.е. с этим у нас проблем нет (treatment date, предположим, у нас есть). Это означает, что мы знаем фактическую дату раскатку фичи, формата и так далее, но нам важно честно замерить эффект. Ранее я прикреплял видео по PSM, где аналитик из Маркета рассказывал то, как оценивать эффект.
Как это реализуется? У нас есть срез пользователей, кто является для нас таргетом. Для них нужно подобрать репрезентативный контроль таким образом, чтобы в предпериоде (так же, как и при рандомной семплировании при A/B тестировании) целевые метрики / ковариаты не расходились. В общем случае в различных сегментах наши пользователи могут различаться (например, нашей фичой пользуется сегмент богатых, а мы сравниваем их со всеми, нечестно, получается). На данном этапе мы хотим подобрать максимально похожих пользователей на основе некого значения Propensity Score (прикрепил статейку от X5, тут очень интересно можно прочитать про это) и тут
Алгоритм:
1. Собираем признаковое пространство на сущность, которую мы хотим тестировать с таргетом - отнесение к определенному срезу пользователей (бинарная случайная величина).
2. Определяем вероятность отнесения к определенной группе, можно воспользоваться predict_proba для любого классификатора, в качестве бейзлайна
3. На выходе нам нужно подобрать наиболее подходящие группы по Propensity Score (можно использовать Nearest Neighbors, предварительно обученной на тритменте, поскольку мы предполагаем, что тритмента меньше, чем контроля + нам нужно замерить именно ATT, Average Treatment Effect of the Treated), таким образом получить наложенные друг на друга плотности вероятности ковариат (признаки) и таргета (целевой метрики, например, количество заказов).
На выходе получаем группу пользователей (не всегда 1:1, в зависимости от того, какое можно задать правило, у этого есть свои приколы). Вопрос того, насколько сильный дисбаланс и насколько маленькая группа (среди тех, кого надо матчить). Статейка со с цитатой ниже
Далее можно построить временные ряды на предпериоде, получить то, что мы могли бы сделать при рандомной семплировании в A/B тестировании (метрики не должны разъезжаться на предпериоде). Далее, мы можем отобразить эффект как ступеньку, которую можно будет увидеть графически, либо применить статистический тест.
У метода могут быть проблемы, если сравнивать с классическим A/B тестом (в т. ч. сложность интерпретации, много условий, определенные искажения и смещения
🍪 🍪 Если вам было интересно, ставьте реакции, пересылайте друзьям / коллегам, пишите комментарии, а я в следующих постах разберу более подробно другие вариации или разберу статейки по Propensity Scores, различные подходы и др.
Сегодня обсудим то, что это такое, рассмотрим какие-то кейсы и то, как можно интерпретировать то, что получается с помощью этого метода
Итак, представьте, вы раскатили фичу на всех, оценить эффект может быть очень тяжело, либо невозможно по причинам, указанным выше. Например, запустили какой-то функционал, хотите понять эффект спустя какое-то время на срезе тех пользователей, кто пользуется фичой. Но тут у вас возникает вопрос (скорее всего), а с кем сравнивать вообще, как оценить влияние на бизнес? Должно быть понятно, что если мы раскатили фичу на срез пользователей в >=50%, то матчить будет не из кого.
Наверное, вы или ваш менеджер продукта определяет различные сроки проектов, т.е. с этим у нас проблем нет (treatment date, предположим, у нас есть). Это означает, что мы знаем фактическую дату раскатку фичи, формата и так далее, но нам важно честно замерить эффект. Ранее я прикреплял видео по PSM, где аналитик из Маркета рассказывал то, как оценивать эффект.
Как это реализуется? У нас есть срез пользователей, кто является для нас таргетом. Для них нужно подобрать репрезентативный контроль таким образом, чтобы в предпериоде (так же, как и при рандомной семплировании при A/B тестировании) целевые метрики / ковариаты не расходились. В общем случае в различных сегментах наши пользователи могут различаться (например, нашей фичой пользуется сегмент богатых, а мы сравниваем их со всеми, нечестно, получается). На данном этапе мы хотим подобрать максимально похожих пользователей на основе некого значения Propensity Score (прикрепил статейку от X5, тут очень интересно можно прочитать про это) и тут
Алгоритм:
1. Собираем признаковое пространство на сущность, которую мы хотим тестировать с таргетом - отнесение к определенному срезу пользователей (бинарная случайная величина).
2. Определяем вероятность отнесения к определенной группе, можно воспользоваться predict_proba для любого классификатора, в качестве бейзлайна
3. На выходе нам нужно подобрать наиболее подходящие группы по Propensity Score (можно использовать Nearest Neighbors, предварительно обученной на тритменте, поскольку мы предполагаем, что тритмента меньше, чем контроля + нам нужно замерить именно ATT, Average Treatment Effect of the Treated), таким образом получить наложенные друг на друга плотности вероятности ковариат (признаки) и таргета (целевой метрики, например, количество заказов).
На выходе получаем группу пользователей (не всегда 1:1, в зависимости от того, какое можно задать правило, у этого есть свои приколы). Вопрос того, насколько сильный дисбаланс и насколько маленькая группа (среди тех, кого надо матчить). Статейка со с цитатой ниже
Classical 1:1 matching without replacement may not be the most suitable approach when the number of individuals enrolled in a study is small, and when an imbalance in terms of treated and untreated subjects is present. Moreover, the initial sample size of the study, which is generally small, can be further reduced, increasing the sampling variability associated with the treatment effect estimate and reducing the accuracy of the findings
Далее можно построить временные ряды на предпериоде, получить то, что мы могли бы сделать при рандомной семплировании в A/B тестировании (метрики не должны разъезжаться на предпериоде). Далее, мы можем отобразить эффект как ступеньку, которую можно будет увидеть графически, либо применить статистический тест.
У метода могут быть проблемы, если сравнивать с классическим A/B тестом (в т. ч. сложность интерпретации, много условий, определенные искажения и смещения
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍5🔥5❤🔥1