Заскуль питона (Data Science)
6.15K subscribers
109 photos
15 videos
4 files
142 links
Канал про Python, Data Science, SQL и многое другое

По вопросам сотрудничества и рекламе: @m459n9

Чат: https://t.iss.one/my_it_frogs
Download Telegram
Hadoop - что это за зверь? 😤

Друзья, всем привет, в этом посте хотелось бы разобрать что такое Hadoop и зачем он вообще нужен для аналитики / машинного обучения.

Вообще, хотелось бы начать с того, что это вообще такое. Hadoop - экосистема из нескольких утилит и фреймворков, позволяющая работать с Big Data.

Три концепции Big Data:

💪 Volume - Объем.
🏃‍♀️ Velocity - Скорость поступления данных.
🏖 Variety - Разнородность данных.

Из чего состоит Hadoop и что лежит в основе?

🗂 HDFS - распределенное хранилище для хранения файлов больших размеров с возможностью потокового доступа к информации. Представьте, что вы перекачиваете данные из одной БД в другую, результаты вычислений хранятся в формате parquet, который, благодаря обработке занимает меньше памяти.
👹 MapReduce - Используется для распределенных задач с использованием нод, которые образуют кластер.
📖 Yarn - система планирования заданий и управления кластером (Yet Another Resource Negotiator), которую также называют MapReduce 2.0 (MRv2).
Spark - фреймворк, который обрабатывает данные в оперативной памяти, используя кэширование (в 100 раз быстрее Hadoop, x10 при вычислении на диске).
🧺 Hive - интерфейс доступа к данным. Он позволяет выполнять запросы, используя SQL синтаксис и обращаться с данными, как с таблицами БД).

💻 А теперь представьте, что вы решаете ML-задачу, где ваша модель обучается на огромном количестве данных (взять любую крупную компанию, которая внедряет ML задачи повсеместно). Это и рекомендательные системы, и скоринг пользователей, и внедрение различных A/B тестов с дальнейшей раскаткой на всех пользователей. Кажется, что ресурсов, предоставляемых различными сервисами по типу AIRFLOW может быть недостаточно при выполнении базовых запросов в SQL и дальнейшей обработкой, например, в pandas 🐼

И представьте, можно выполнять простые SQL запросы с помощью spark.sql()

🤨 Возьмем pandas и Spark.

Spark
может решать различные типы задач по обработке данных. Он поддерживает пакетную обработку, обработку в реальном времени и интерактивную обработку больших наборов данных.

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

Более подробно можно почитать тут

🤔 Полезные материалы по Spark можно почитать в следующих статьях
Под капотом Apache Spark лежит несколько концепций, с которыми я предлагаю ознакомиться по ссылочке на Хабре
ML-pipeline
и практическое применение Spark с разбором кода на Хабре
Документация
по Spark здесь
Классная
статья с основными концепциями Hadoop (фото к посту взято оттуда). Хабр линк here

🐘 Ставьте реакции, делитесь тем, приходилось ли вам использовать Hadoop.
Please open Telegram to view this post
VIEW IN TELEGRAM
35🐳12👍6🔥6
Я вернулся 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44😱245🤡5👎2💩2❤‍🔥1🍌1👀1
👾 Нужны ли алгоритмы аналитику?

Всем привет! Сегодня напишу свое мнение об алгоритмах, постараюсь донести, а нужно это или нет.

😐 Ранее, когда я собесился на позиции, связанные с DS / ML / DA, говорили про алгоритмы и структуры данных, но это всегда вызывало лишь неприятные флешбеки, когда говорили об оптимизации кода.
Ну или базовый вопрос собеседующего: «А можно проще?»

💎 Если подумать, у компании есть ограниченное количество времени, чтобы нанять сотрудника, так как конкурс, обычно, в бигтех составляет по несколько сотен на место, которые далее проваливаются по воронке до оффера. На выходе имеем 5-6 кандидатов, которые обладают примерно одинаковыми скиллами.

🕺 Я для себя понял это так. Как будто это один из наиболее коротких путей, который может указать на последовательность рассуждений кандидата, умение писать читаемый и оптимальный код.

🚶‍♀️ А какое ваше мнение об алгоритмах? Нужны ли или это просто лютый хайп? Пишите в комментариях 🚶‍♀️

📝 Также пишите, что вы хотите видеть на канале, возможно, разборы продуктовых кейсов, алгоритмов, что-то по A/B, карьеру и т.д и т.п., буду рад обратной связи

#алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳18🔥74🤣2🤩1
🆎 CUPED как метод сокращения дисперсии для проведения A/B экспериментов.

🤭 Всем привет! В этом посте хочу рассказать о том что такое CUPED, зачем он нужен?

🤩 CUPED (Controlled-experiment Using Pre-Experiment Data) - один из методов сокращения дисперсии при проведении экспериментов, используемый в индустрии на основе данных предэкспериментального периода. Обычно метрику, которая используется до эксперимента, называется ковариатой.

🔨 Предположим, мы дизайним эксперимент, рассчитываем MDE (Minimum Detectable Effect) и Sample Size (необходимый размер выборки для проведения A/B теста). Рассмотрим стандартную формулу для нахождения MDE подробней:

MDE = (F(1-alpha / 2) + F(1 - beta)) * sqrt(Var(X)) / sqrt(sample_size)

F(1-alpha / 2) - квантильная функция для 1 - ошибки первого рода (двусторонняя гипотеза) aka критическое значение для H0
F(1 - beta) - квантильная функция для мощности
Var(X) - дисперсия метрики
sample_size - размер выборки (обычно рассчитывается на основе трафика, целевых действий)

🕺 Обычно в экспериментах мы можем влиять на размер выборки (по сути длительность эксперимента и количество трафика и дисперсию метрики).

🍴 Отсюда два вопроса:

а) Можем ли мы нагенерить столько трафика, чтобы MDE стало допсутимым при выборе определенной метрики?

б) Можем ли мы что-то сделать с целевой метрикой и соответствующей дисперсией, чтобы сократить MDE?

🍿 А к чему вообще сокращать MDE? Для того чтобы детектировать большее количество прокрашиваемых экспериментов и сокращать время для проведения экспериментов.

Итак, к CUPED. Канонический вид:


Ycuped = Y - theta * (X - Xmean)

Ycuped - модифицированная метрика CUPED
theta = некий коэффициент, про который я напишу ниже
X - значение ковариаты в предэкспериментальном периоде
Xmean - среднее значение ковариаты в предэкспериментальном периоде

😐 Давайте рассмотрим матожидание Ycuped


E(Ycuped) = E(Y) - E(theta * X) + E(theta * Xmean) = E(Y) - theta * E(X) + theta * E(Xmean) = E(Y) - theta * E(X) + theta * E(X) = E(Y)

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

😨 А что с дисперсией? Нам ведь нужно понять, как это повлияет на MDE при дизайне эксперимента


Var(Ycuped) = Var(Y - theta * (X - Xmean))

Проведем замену X - Xmean = k


Var(Ycuped) = Var(Y - theta * k) = Var(Y) - 2 * cov(Y, theta * k) + Var(theta * k) = Var(Y) - 2 * theta * cov(Y, k) + theta^2 * Var(k) = theta^2 * Var(k) - 2 * theta * cov(Y,K) + Var(Y)

🫡 Нам нужно минимизировать дисперсию. Решим относительно параметра theta, можно взять производную, или посмотреть на вершину параболы.

theta (вершина) = - b / 2a = 2 * cov(Y,k) / 2 * Var(K) = cov(Y,k) / Var(k).


Обратная замена:

theta (вершина) = cov(Y, (X - Xmean)) / Var(X - Xmean) = cov(Y, X) / Var(X)


🚘 Нашли точку, в которой дисперсия достигает минимума (вершина параболы). Вывели соответствующие значение theta.

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

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

😱 НО! есть ограничения, которые также я опишу в следующих постах.

⌨️ А какие способы снижения дисперсии знаете вы? Пишите в комментариях, ставьте реакции. Следующая часть не заставит себя долго ждать 😀

#аб
Please open Telegram to view this post
VIEW IN TELEGRAM
23🔥9🐳52👻2👍1🌭1
🐧 ИЕРАРХИЯ МЕТРИК
или как научиться понимать свой продукт

☺️ В этом посте хочу рассказать про то, зачем нужна иерархия метрик в продукте, какая мощь кроется за этим и рассмотреть пример с реального собеседования в крупную компанию.

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

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

Так вот, иерархия помогает определить взаимосвязи между различными метриками и понять, почему изменилась «North Star».

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

😢 Например, у нас упала конверсия в покупку, потому что упало количество активных лидов. Упал средний чек, потому что выросло количество заказов или уменьшилась сумма заказов и т.д.

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

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

👮 Например, в одну из компаний был подобный кейс: компания X является агрегатором продуктовых магазинов по типу Пятерочки, Перекрестка, Магнита и др. Мы хотим внедрить механику как в сети «МЕТРО», покупаешь больше товаров одного вида - платишь меньше. Вопрос, как оценить денежно эффект, который мы могли бы получить, если бы внедрили это раньше.

😎 Пишите в комментариях, какие вы еще знаете методы измерения продукта, как правильно оценивать внедрения фич. Будет интересно почитать!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥159🐳63🦄3🌭1
🙊 ОБСУЖДЕНИЕ
(пока название не придумал).

Какие основные навыки нужны в сфере Data Science?

📝 Давайте поговорим о том, что не относится к хардам (Python, SQL, A/B, статистика, ML / DL и др.)

Одно из ключевых для меня это:

1. Умение задавать вопросы. Вас никто за это не съест. Большинство боятся показаться глупыми, хотя не совсем оправданно, т.к. любая корпорация обладает тонкостями, которые можно и не знать, это нормально. Лучше спросить и показаться дураком, чем не спросить и оказаться им.

🧠 2. Обучаемость. Да, тот самый уверенный пользователь ПК на hh. Умение понимать процессы в компании, технологии в кратчайшие сроки, совершенствоваться и т.д.

💺 3. Усидчивость и концентрация внимания. Избитые 10 000 часов, которые скажут тебе о том, что ты являешься классным специалистом. Но вопрос, качественно потрачено это время или нет? Готов ли ты себе сказать о том, что провел это время с пользой?

🍪🍪 4. Умение доносить до людей свои мысли. Здесь бы я выделил умение интерпретировать бизнесу результаты своих трудов. Будь то проведение A/B теста, исследования, обучение модели. Людям важно понимать друг друга.

А как вы считаете, что является одним из самых важных навыков, что бы вы выделили для себя? Пишите в комментариях свой ТОП-3, ставьте 🕺
Please open Telegram to view this post
VIEW IN TELEGRAM
237👍4🔥3🐳2👎1🌭1
🎲 Задача на статистику и теорию вероятностей в компанию X.

Заезженная задача, которую регулярно дают на собеседованиях.

🐙 Осьминог Пауль 16 раз пробовал угадать победителя футбольного матча. 14 раз он угадал правильно, 2 раза ошибся.
Проверьте гипотезу H0: Пауль выбирает победителя футбольного матча случайно. Сделайте вывод.


💡Подсказка 1: Задача на понимание что такое p-value

💡 Подсказка 2: перед тем, как решать, подумайте какие исходы вам нужно учитывать

💡 Подсказка 3: Подумайте, как дополнительно можно интерпретировать полученные результаты. Что можно сказать про Осьминога?

🍪🍪 Пишите то, как бы вы решали эту задачу, что бы дополнительно уточнили у интервьюера. Отпишите, по поводу того, как вам вообще такой формат, ставьте 🕺
Please open Telegram to view this post
VIEW IN TELEGRAM
244❤‍🔥4🐳3🔥1🌭1
Всех с праздниками 🙂

А какой вы тип? Пишите в комментариях ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
😁268🔥32👍2🌭1
🆎 Что такое p-value и почему оно меньше alpha?

🎧 Работая в компании и проводя эксперименты, мы перестаем задумываться о таких вещах и пользуемся этим утверждением (если изменения статзначимы) как данность. В этом посте я расскажу почему это так.

🐶 Обычно трактуют несколько определений.

p-value – это вероятность получить значение статистики критерия равное наблюдаемому или более нетипичное по сравнению с наблюдаемым при условии, что нулевая гипотеза верна


p-value – это минимальный уровень значимости, на котором нулевая гипотеза может быть отвергнута.


🔥 Давайте разберём более подробно. Предположим, у нас есть какая-то статистика (фиксируем H0). Это может быть среднее, какое-то число, полученное эмпирическим методом. В целом общем то, что имеем мы СЕЙЧАС.

🍑 Построили распределение статистики до проведения эксперимента. Например, выборочное среднее. Получили нормальное распределение, H0 в этом случае верна. Обычно в индустрии берут уровень значимости равный 0.01, 0.05.

😑 Что это значит для нас? Мы можем задать числом вероятность получить такие же или более экстремальные значения. В этом случае мы фиксируем alpha и можем взять то значение статистики, получая которое в дальнейшем мы отвергаем H0. Без изменений это будет FPR (False Positive Rate). Тут вопрос бизнесу, в каких случаях мы хотим ошибаться. Понятно, что если мы выберем медиану распределения статистику FPR будет 50%, что является недопустимым.

🤗 Получили числено наше критическое значение, относительно которого мы будем считать критическую область (обычно это является излишком, так как мы фиксируем alpha на уровне 0.05, 0.01)

😎 Если мы проводим эксперимент и получаем значение больше нашей отсечки при верной H0, то H0 отвергается.

🙂 Давайте разберемся с p-value.

Давайте пока остановимся на односторонней гипотезе stat > val


🚙 Это значит, что мы должны найти значение функции распределения в точке для исходного распределения статистики.

Точнее, 1 - distr.cdf(stat)


😐 Почему так? Потому что для статистики при верной H0 мы хотим получим вероятность получения таких же или более экстремальных значений статистики.

🕺 p-value < alpha. Эта запись эквивалентна тому, что ФАКТИЧЕСКОЕ значение статистики оказалось БОЛЬШЕ (в нашем случае) КРИТИЧЕСКОГО значения статистики при верной H0.

🍺 Ставьте 🕺, если пост оказался полезным, делитесь с коллегами, друзьями, а я пойду дальше.

Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
287👎4🔥4👍1🌭1
С 1 мая! Придем на работу, а там такое. Ваши действия? 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
😭159😁4👾21👍1🌭1
🆎 MDE и Uplift в A/B тестах

MDE - минимальный детектируемый эффект в A/B тестах. Тот эффект, который мы планируем задетектировать при заданном уровне мощности и ошибке первого рода.

Например, мы рассчитали критическое значение из нулевого распределения статистики (верной H0). Придумали критерий и зафиксировали alpha на уровне 0.05.

1️⃣ Что в данном случае ошибка первого рода?
Это вероятность того, что мы примем альтернативную гипотезу при условии, что нулевая верна. Поэтому заранее всегда и определяют ошибку первого рода.

2️⃣ Что такое ошибка второго рода?
Теперь представьте, что у нас есть альтернативное распределение статистики (H1). Мощность - это вероятность того, что мы отклонили нулевую гипотезу, при условии, что альтернатива верны (TP).

😙 Так вот, MDE говорит следующее. При заданном уровне мощности и ошибки первого рода найди мне МИНИМАЛЬНЫЙ ЭФФЕКТ.

Напоминаю, что формула MDE выглядит так, в предыдущем посте есть:

import numpy as np
from scipy.stats import norm

alpha = 0.05
power = 0.8
std = 20
sample_size = 10000

(norm.ppf(1 - alpha) + norm.ppf(power)) * std / np.sqrt(sample_size)


🐍 Самостоятельно можно запрогать и посмотреть следующим образом:

from scipy.stats import norm

mu_h0 = 100
std = 20
alpha = 0.05
power = 0.8

crit_value = norm(mu_h0, std).ppf(1 - alpha)
diff = np.linspace(0, 100, 10000)
powers = 1 - norm(mu_h0 + diff, std).cdf(crit_value)
mu_h1 = mu_h0 + diff
mu_actual_power = mu_h1[powers >= power].min()

print(mu_actual_power)

print(mu_h0 + (norm.ppf(1 - alpha) + norm.ppf(power)) * std)


Как мы видим: минимальное значение статистики при условии, что мощность = 0.8.

😱 А когда мы сравниваем наблюдаемый аплифт с MDE, подставляя фактические значения после теста, мы можем получить, например, мощность, которая оказалась меньше, чем при дизайне

✝️ Означает ли это то, что критерий плох?
Нет, потому что в ситуации получения статзначимых результатов нас волнует только значение p-value при верной H0 (при односторонней гипотезе).

🥂 Дополнительные материалы, которые советую почитать по этой теме:
1. Статья на Хабр. Как же мощно я провел A/B-тест, или почему не стоит сравнивать наблюдаемый аплифт с MDE.
2. Статья на Medium. Когда останавливать A/B-тест? Часть 1: MDE
3. Статья на X engineering. Power, minimal detectable effect, and bucket size estimation in A/B tests
4. Хабр. Шесть причин, почему ваши A/B-тесты не работают

Ставьте 🕺, если пост был интересным, делитесь с друзьями, пишите комментарии

🍔 Если захотите какие-то кастомные реакции, оформление текстов, велком (буст).
Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
244🔥3🤔1🕊1🐳1🌭1🤪1👾1
Ну так-то да, выбирай... 🏃‍♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
1713🔥6🌭2
👍 Парадоксы-парадоксы-парадоксы 👍

🚙 Парадокс — противоречие, которое возникает из-за общепринятых мнений.

👾 Предположим, у нас есть 2 категории товаров, в каждой из них средний чек растет, но общий средний чек (без разбивки) падает. С первого раза, может показаться, что такое невозможно. Оказывается, это парадокс Симпсона. Чтобы было понимание контраста, давайте рассмотрим смартфоны и карандаши. Средний чек тех, кто покупает смартфоны, вырос. Аналогично с карандашами.

🤔 Из-за чего упала общая метрика? Например, сейчас август, родители собирают детей в школу, карандаши стали покупать чаще, средний чек упал.

🍭😡 Парадокс Берксона. Два независимых события могут становиться условно зависимыми, если возникает третье событие. Например, в статье на Хабр, приводится пример с двумя переменными и следующим коллайдером: Курение сигарет, заболевание от ковида и госпитализация. Курение сигарет и заболевание от ковида никак не связаны, но из-за появления «коллайдера», мы получаем условную связь: если у пациента легкая форма COVID-19, он имеет больше шансов оказаться курильщиком!

🫣 Скрытые переменные.
Предположим, у нас есть две метрики. Количество людей по дням, кто купил мороженое и количество купленных солнцезащитных очков. Это не означает, что солнцезащитные очки покупают, потому что покупают мороженое 🍦

🔥 Скрытая переменная:
Температура. Из-за повышения температуры люди чаще покупают мороженое. Как правило, повышение температуры свидетельствует о частом появлении солнца. Тем самым, количество продаж солнцезащитных очков увеличивается.

🎂 Парадокс дней рождения.
Если вкратце, то задача трактуется следующим образом. Предположим, у нас в комнате сидит 23 человека. Какова вероятность того, что хотя бы у одной пары будет день рождения в один день? Ошибочно, мы считаем, что 23 / 365, на самом деле ~ 50%. В общем случае, это не парадокс, а то, что мы изначально думаем о другом.

А какие вы еще знаете парадоксы, с какими сталкивались? Пишите комментарии, ставьте 🕺

Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
1810🔥7
Наткнулся на митап от EXPF, который я пропустил

🔄 Здесь рассматривается то, как наладить процесс A/B тестов, как вообще выглядит весь жизненный цикл.

☝️Как проверить валидность A/B тестов? Предположим, что мы наблюдаем Sample Ratio Mismatch. Можем ли мы доверять A/B после проведения?

📊 Как подобрать прокси-метрику? Если вкратце, наша метрика должна обладать двумя свойствами: Сонаправленность с таргетом и повышенная чувствительность

👍 Сбор качественных данных для A/B тестирования. Тут про Data Quality, как команда проверяет данные + даны некоторые рекомендации по сбору и обработке данных.

Ставьте 🕺 если пост оказался полезным, пишите комментарии.

Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
216🔥5
Junior-Lead, based 🤝🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2310🐳2
🐱 Бутстрап или как оценить неопределенность в данных.

Всем привет! В этом посте затронем бутстрап, рассмотрим основные аспекты и ограничения.

😼 Этот метод позволяет построить эмпирическое распределение статистики на основе имеющейся выборки (как правило, мы работаем именно с ней).

Стандартный алгоритм выглядит следующим образом:

1️⃣ Берём выборочное распределение метрик, из которых впоследствии мы будем строить распределение статистики (среднее, n-ый квантиль и др.)
2️⃣ Выбираем количество бутстрап-итераций, т.е. сколько мы раз будем генерировать подвыборку
3️⃣ Семплируем подвыборку с возвращением ровно столько раз, сколько элементов в изначальной выборке
4️⃣ Повторяем это n раз, указанных на 2 шаге
5️⃣ Получаем распределение статистики.

🍦 Что это означает для нас?

То, что мы можем оценивать доверительные интервалы для статистик (обычно в индустрии используют разницу между двумя статистиками), использовать более сложные метрики для анализа (например, Ratio-метрики), рассчитать p-value и сделать какие-то выводы.

К ограничениям я бы отнес следующее:

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

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

📚 Полезные материалы по теме:

https://habr.com/ru/amp/publications/679842/

https://habr.com/ru/amp/publications/762648/

😇 Понравился пост? Ставьте реакции, пишите комментарии, а я напишу в дальнейшем про виды бутстрапа

UPD. Предпосылка бутстрапа:
Разница между статистикой, вычисленной по случайной выборке, и статистикой, вычисленной по генеральной совокупности, должна аппроксимироваться разницей между статистикой, вычисленной по случайной выборке, и статистикой, вычисленной по выборке с возвращением из этой случайной выборки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22118👍1
CUPED с несколькими ковариатами

🏆 В оригинальной статье CUPED говорится о том, что возможно использование нескольких ковариат на предэкспериментальном периоде.

Для понимания того, что здесь происходит, советую ознакомиться с предыдущим постом

🔍 Для поиска коэффициента theta в оригинальной интерпретации используется метод наименьших квадратов (МНК) для линейной регрессии со свободным коэффициентом и одним регрессором (нашей ковариатой).

Наткнулся на статью, в которой один phd показывает, что возможно использовать несколько ковариат и указывает на основные моменты. Статья называется CUPED with Multiple Covariates and A Simpler the Delta Method Calculation. Недавно узнал, что с этим работают в Booking, но статьи не нашёл)

Если здесь сидят ребята, которые занимаются продвинутыми методами A/B тестирования, скажите, вы использовали это раньше или нет? Как по мне, рабочий вариант, но ковариаты нужно подбирать таким образом, чтобы не было основной метрики в предэкспериментальном периоде, как мне кажется, поскольку возникнет мультиколлинеарность.

Пока не тестил, как это может снизить метрику, но в статье с CUPED with Multiple Covariates... есть пример с генерацией вектора theta для каждой из метрик, можно покрутить.

Если вы хотите бустануть канал, видеть истории с полезными материалами или просто кастомные реакции, делайте тык.
Please open Telegram to view this post
VIEW IN TELEGRAM
108🔥3
Brrrrr 😆
Please open Telegram to view this post
VIEW IN TELEGRAM
33😁8😱51
Propensity Score. Как оценить эффект без стандартных A/B тестов.

Доклад от 😀, в котором говорится о том, как правильно измерять эффект при условии того, что мы раскатили фичу на всех (есть ограничения на проведения A/B теста)

Здесь освещаются основные моменты, связанные с Look-a-like, diff-n-diff, IPTW, как бороться со смещениями при оценке эффекта и др.

👍 Советую к просмотру, достаточно годно.

📚 Короткая статья на Хабре от Лида промо Сбермаркета про Propensity Score Matching

🕺 Если на посте наберется N реакций, постараюсь написать более подробно про это
Please open Telegram to view this post
VIEW IN TELEGRAM
3211🔥6👍1
DROP DATABASE CASCADE 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2512😭3🤡1🤝1