Forwarded from Блог о Data Science 💻 (𝘿𝙖𝙣𝙞𝙡 𝙆𝙖𝙧𝙩𝙪𝙨𝙝𝙤𝙫)
А вот и осень, первые холода и депрессия
Сегодня закончилось мероприятие AI TALLENT HUB в рамках которого я совместно с @bogdanisssimo, @ai_minds и @AnTkDm делали AI INFLUENCE.
Идея в том, что бы создать инструмент для автоматизации работы с контентом.
Самые популярные каналы ~ обзорные каналы на какие-то новости, инструменты и тд.
Наш проект к сожалению не оценили ребята из ИТМО, меня честно задела фраза мол нет потенциала, АИ не умеет создавать ничего нового.
Вернёмся к каналам, вы, наверное все знаете канал Игоря Котенкова. Вам всем нравится как он обозревает те или иные вещи в сфере АИ. Почему бы не автоматизировать этот процесс. Да он не будет такой же углублённый или мемный. Если вы рисерчер, то вы очевидно следите за Женей из @j_links.
Так почему бы не автоматизировать процесс обработки папир?
Почему бы не автоматизировать новостные дайджесты?
Почему бы не автоматизировать перевод зарубежных подкастов, статей?
Сейчас бот умеет:
- В автономном или полуавтоном режиме писать в канал
- Делать обзор на посты других каналов
- Daily посты на тему X
Если вам стало интересно, что из этого получится подпишитесь на канал @ImNotAuthentic сделаю туда пост о том почему человек, как и GPT не создаёт ничего нового!
Жду от вас реакты тонну🐳
и помните: новое — хорошо забытое старое @notedatasciencechat
Сегодня закончилось мероприятие AI TALLENT HUB в рамках которого я совместно с @bogdanisssimo, @ai_minds и @AnTkDm делали AI INFLUENCE.
Идея в том, что бы создать инструмент для автоматизации работы с контентом.
Самые популярные каналы ~ обзорные каналы на какие-то новости, инструменты и тд.
Наш проект к сожалению не оценили ребята из ИТМО, меня честно задела фраза мол нет потенциала, АИ не умеет создавать ничего нового.
Сразу вспоминается следующее:
- ИИ никогда не сможет написать симфонию
- А вы сможете?
Вернёмся к каналам, вы, наверное все знаете канал Игоря Котенкова. Вам всем нравится как он обозревает те или иные вещи в сфере АИ. Почему бы не автоматизировать этот процесс. Да он не будет такой же углублённый или мемный. Если вы рисерчер, то вы очевидно следите за Женей из @j_links.
Так почему бы не автоматизировать процесс обработки папир?
Почему бы не автоматизировать новостные дайджесты?
Почему бы не автоматизировать перевод зарубежных подкастов, статей?
Сейчас бот умеет:
- В автономном или полуавтоном режиме писать в канал
- Делать обзор на посты других каналов
- Daily посты на тему X
Если вам стало интересно, что из этого получится подпишитесь на канал @ImNotAuthentic сделаю туда пост о том почему человек, как и GPT не создаёт ничего нового!
Жду от вас реакты тонну
и помните: новое — хорошо забытое старое @notedatasciencechat
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳22👍4❤2🔥1
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.
Друзья, всем привет, в этом посте хотелось бы разобрать что такое Hadoop и зачем он вообще нужен для аналитики / машинного обучения.
Вообще, хотелось бы начать с того, что это вообще такое. Hadoop - экосистема из нескольких утилит и фреймворков, позволяющая работать с Big Data.
Три концепции Big Data:
Из чего состоит Hadoop и что лежит в основе?
Spark может решать различные типы задач по обработке данных. Он поддерживает пакетную обработку, обработку в реальном времени и интерактивную обработку больших наборов данных.
Pandas в основном используется для обработки структурированных данных, включая табличные, временные ряды и столбчатые данные.
Более подробно можно почитать тут
Под капотом Apache Spark лежит несколько концепций, с которыми я предлагаю ознакомиться по ссылочке на Хабре
ML-pipeline и практическое применение Spark с разбором кода на Хабре
Документация по Spark здесь
Классная статья с основными концепциями Hadoop (фото к посту взято оттуда). Хабр линк here
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35🐳12👍6🔥6
https://t.iss.one/zasql_python?boost истории ннада? 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Заскуль питона (Data Science)
Проголосуйте за канал, чтобы он получил больше возможностей.
👎22🤮6👍3🐳3❤2🥱1🌭1🤨1
Всем привет! Сегодня напишу свое мнение об алгоритмах, постараюсь донести, а нужно это или нет.
Ну или базовый вопрос собеседующего: «А можно проще?»
#алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳18🔥7❤4🤣2🤩1
🆎 CUPED как метод сокращения дисперсии для проведения A/B экспериментов.
🤭 Всем привет! В этом посте хочу рассказать о том что такое CUPED, зачем он нужен?
🤩 CUPED (Controlled-experiment Using Pre-Experiment Data) - один из методов сокращения дисперсии при проведении экспериментов, используемый в индустрии на основе данных предэкспериментального периода. Обычно метрику, которая используется до эксперимента, называется ковариатой.
🔨 Предположим, мы дизайним эксперимент, рассчитываем MDE (Minimum Detectable Effect) и Sample Size (необходимый размер выборки для проведения A/B теста). Рассмотрим стандартную формулу для нахождения MDE подробней:
🕺 Обычно в экспериментах мы можем влиять на размер выборки (по сути длительность эксперимента и количество трафика и дисперсию метрики).
🍴 Отсюда два вопроса:
а) Можем ли мы нагенерить столько трафика, чтобы MDE стало допсутимым при выборе определенной метрики?
б) Можем ли мы что-то сделать с целевой метрикой и соответствующей дисперсией, чтобы сократить MDE?
🍿 А к чему вообще сокращать MDE? Для того чтобы детектировать большее количество прокрашиваемых экспериментов и сокращать время для проведения экспериментов.
Итак, к CUPED. Канонический вид:
😐 Давайте рассмотрим матожидание Ycuped
🤸 Вуаля, оценка получается несмещенной, то есть благодаря поправке на среднее значение ковариаты мы получили такое же матожидание.
😨 А что с дисперсией? Нам ведь нужно понять, как это повлияет на MDE при дизайне эксперимента
🫡 Нам нужно минимизировать дисперсию. Решим относительно параметра theta, можно взять производную, или посмотреть на вершину параболы.
Обратная замена:
🚘 Нашли точку, в которой дисперсия достигает минимума (вершина параболы). Вывели соответствующие значение theta.
😏 Чем больше ковариация, тем больше линейная связь между двумя случайными величинами, поэтому обычно и берут метрики до эксперимента, которые сильно коррелируют друг с другом (эта же метрика в предэкспериментальном периоде).
🫴 На практике выбор сильно коррелированной метрики в предэкспериментальном периоде позволяет сократить дисперсию в несколько раз, что приводит к увеличению чувствительности теста.
😱 НО! есть ограничения, которые также я опишу в следующих постах.
⌨️ А какие способы снижения дисперсии знаете вы? Пишите в комментариях, ставьте реакции. Следующая часть не заставит себя долго ждать 😀
#аб
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?
Итак, к CUPED. Канонический вид:
Ycuped = Y - theta * (X - Xmean)
Ycuped - модифицированная метрика CUPED
theta = некий коэффициент, про который я напишу ниже
X - значение ковариаты в предэкспериментальном периоде
Xmean - среднее значение ковариаты в предэкспериментальном периоде
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)
Проведем замену X - Xmean = k
Var(Ycuped) = Var(Y - theta * (X - Xmean))
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 (вершина) = - 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)
#аб
Please open Telegram to view this post
VIEW IN TELEGRAM
или как научиться понимать свой продукт
Представьте, вы как человек, который связан с бизнес-юнитом компании, решаете протестировать фичу, но у вас нет понимания того, как это может затронуть метрики. В крупных компаниях, обычно, есть стенд метрик, который позволяет отслеживать здоровье компании.
Так вот, иерархия помогает определить взаимосвязи между различными метриками и понять, почему изменилась «North Star».
Почему это необходимо? По моему мнению, это нужно для ускоренного принятия решений и понимания взаимосвязей между компонентами
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15 9🐳6❤3🦄3🌭1
(пока название не придумал).
Какие основные навыки нужны в сфере Data Science?
Одно из ключевых для меня это:
А как вы считаете, что является одним из самых важных навыков, что бы вы выделили для себя? Пишите в комментариях свой ТОП-3, ставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
Заезженная задача, которую регулярно дают на собеседованиях.
Проверьте гипотезу H0: Пауль выбирает победителя футбольного матча случайно. Сделайте вывод.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26 8🔥3❤2👍2🌭1
🆎 Что такое p-value и почему оно меньше alpha?
🎧 Работая в компании и проводя эксперименты, мы перестаем задумываться о таких вещах и пользуемся этим утверждением (если изменения статзначимы) как данность. В этом посте я расскажу почему это так.
🐶 Обычно трактуют несколько определений.
🔥 Давайте разберём более подробно. Предположим, у нас есть какая-то статистика (фиксируем H0). Это может быть среднее, какое-то число, полученное эмпирическим методом. В целом общем то, что имеем мы СЕЙЧАС.
🍑 Построили распределение статистики до проведения эксперимента. Например, выборочное среднее. Получили нормальное распределение, H0 в этом случае верна. Обычно в индустрии берут уровень значимости равный 0.01, 0.05.
😑 Что это значит для нас? Мы можем задать числом вероятность получить такие же или более экстремальные значения. В этом случае мы фиксируем alpha и можем взять то значение статистики, получая которое в дальнейшем мы отвергаем H0. Без изменений это будет FPR (False Positive Rate). Тут вопрос бизнесу, в каких случаях мы хотим ошибаться. Понятно, что если мы выберем медиану распределения статистику FPR будет 50%, что является недопустимым.
🤗 Получили числено наше критическое значение, относительно которого мы будем считать критическую область (обычно это является излишком, так как мы фиксируем alpha на уровне 0.05, 0.01)
😎 Если мы проводим эксперимент и получаем значение больше нашей отсечки при верной H0, то H0 отвергается.
🙂 Давайте разберемся с p-value.
🚙 Это значит, что мы должны найти значение функции распределения в точке для исходного распределения статистики.
😐 Почему так? Потому что для статистики при верной H0 мы хотим получим вероятность получения таких же или более экстремальных значений статистики.
🕺 p-value < alpha. Эта запись эквивалентна тому, что ФАКТИЧЕСКОЕ значение статистики оказалось БОЛЬШЕ (в нашем случае) КРИТИЧЕСКОГО значения статистики при верной H0.
🍺 Ставьте 🕺 , если пост оказался полезным, делитесь с коллегами, друзьями, а я пойду дальше.
Поддержать канал
p-value – это вероятность получить значение статистики критерия равное наблюдаемому или более нетипичное по сравнению с наблюдаемым при условии, что нулевая гипотеза верна
p-value – это минимальный уровень значимости, на котором нулевая гипотеза может быть отвергнута.
Давайте пока остановимся на односторонней гипотезе stat > val
Точнее, 1 - distr.cdf(stat)
Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😭15 9😁4👾2❤1👍1🌭1
🆎 MDE и Uplift в A/B тестах
MDE - минимальный детектируемый эффект в A/B тестах. Тот эффект, который мы планируем задетектировать при заданном уровне мощности и ошибке первого рода.
Например, мы рассчитали критическое значение из нулевого распределения статистики (верной H0). Придумали критерий и зафиксировали alpha на уровне 0.05.
1️⃣ Что в данном случае ошибка первого рода?
Это вероятность того, что мы примем альтернативную гипотезу при условии, что нулевая верна. Поэтому заранее всегда и определяют ошибку первого рода.
2️⃣ Что такое ошибка второго рода?
Теперь представьте, что у нас есть альтернативное распределение статистики (H1). Мощность - это вероятность того, что мы отклонили нулевую гипотезу, при условии, что альтернатива верны (TP).
😙 Так вот, MDE говорит следующее. При заданном уровне мощности и ошибки первого рода найди мне МИНИМАЛЬНЫЙ ЭФФЕКТ.
Напоминаю, что формула MDE выглядит так, в предыдущем посте есть:
🐍 Самостоятельно можно запрогать и посмотреть следующим образом:
Как мы видим: минимальное значение статистики при условии, что мощность = 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-тесты не работают
Ставьте🕺 , если пост был интересным, делитесь с друзьями, пишите комментарии
🍔 Если захотите какие-то кастомные реакции, оформление текстов, велком (буст).
Поддержать канал
MDE - минимальный детектируемый эффект в A/B тестах. Тот эффект, который мы планируем задетектировать при заданном уровне мощности и ошибке первого рода.
Например, мы рассчитали критическое значение из нулевого распределения статистики (верной H0). Придумали критерий и зафиксировали alpha на уровне 0.05.
Это вероятность того, что мы примем альтернативную гипотезу при условии, что нулевая верна. Поэтому заранее всегда и определяют ошибку первого рода.
Теперь представьте, что у нас есть альтернативное распределение статистики (H1). Мощность - это вероятность того, что мы отклонили нулевую гипотезу, при условии, что альтернатива верны (TP).
Напоминаю, что формула 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.
Нет, потому что в ситуации получения статзначимых результатов нас волнует только значение 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
Telegram
Заскуль питона (Data Science)
🆎 CUPED как метод сокращения дисперсии для проведения A/B экспериментов.
🤭 Всем привет! В этом посте хочу рассказать о том что такое CUPED, зачем он нужен?
🤩 CUPED (Controlled-experiment Using Pre-Experiment Data) - один из методов сокращения дисперсии…
🤭 Всем привет! В этом посте хочу рассказать о том что такое CUPED, зачем он нужен?
🤩 CUPED (Controlled-experiment Using Pre-Experiment Data) - один из методов сокращения дисперсии…
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17 13🔥6🌭2
Предположим, у нас есть две метрики. Количество людей по дням, кто купил мороженое и количество купленных солнцезащитных очков. Это не означает, что солнцезащитные очки покупают, потому что покупают мороженое
Температура. Из-за повышения температуры люди чаще покупают мороженое. Как правило, повышение температуры свидетельствует о частом появлении солнца. Тем самым, количество продаж солнцезащитных очков увеличивается.
Если вкратце, то задача трактуется следующим образом. Предположим, у нас в комнате сидит 23 человека. Какова вероятность того, что хотя бы у одной пары будет день рождения в один день? Ошибочно, мы считаем, что 23 / 365, на самом деле ~ 50%. В общем случае, это не парадокс, а то, что мы изначально думаем о другом.
А какие вы еще знаете парадоксы, с какими сталкивались? Пишите комментарии, ставьте
Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Наткнулся на митап от EXPF, который я пропустил
🔄 Здесь рассматривается то, как наладить процесс A/B тестов, как вообще выглядит весь жизненный цикл.
☝️ Как проверить валидность A/B тестов? Предположим, что мы наблюдаем Sample Ratio Mismatch. Можем ли мы доверять A/B после проведения?
📊 Как подобрать прокси-метрику? Если вкратце, наша метрика должна обладать двумя свойствами: Сонаправленность с таргетом и повышенная чувствительность
👍 Сбор качественных данных для A/B тестирования. Тут про Data Quality, как команда проверяет данные + даны некоторые рекомендации по сбору и обработке данных.
Ставьте🕺 если пост оказался полезным, пишите комментарии.
Поддержать канал
Ставьте
Поддержать канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23 10🐳2
Всем привет! В этом посте затронем бутстрап, рассмотрим основные аспекты и ограничения.
Стандартный алгоритм выглядит следующим образом:
То, что мы можем оценивать доверительные интервалы для статистик (обычно в индустрии используют разницу между двумя статистиками), использовать более сложные метрики для анализа (например, Ratio-метрики), рассчитать p-value и сделать какие-то выводы.
К ограничениям я бы отнес следующее:
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
🔥22 11❤8👍1
CUPED с несколькими ковариатами
🏆 В оригинальной статье CUPED говорится о том, что возможно использование нескольких ковариат на предэкспериментальном периоде.
Для понимания того, что здесь происходит, советую ознакомиться с предыдущим постом
🔍 Для поиска коэффициента theta в оригинальной интерпретации используется метод наименьших квадратов (МНК) для линейной регрессии со свободным коэффициентом и одним регрессором (нашей ковариатой).
Наткнулся на статью, в которой один phd показывает, что возможно использовать несколько ковариат и указывает на основные моменты. Статья называется CUPED with Multiple Covariates and A Simpler the Delta Method Calculation. Недавно узнал, что с этим работают в Booking, но статьи не нашёл)
❔ Если здесь сидят ребята, которые занимаются продвинутыми методами A/B тестирования, скажите, вы использовали это раньше или нет? Как по мне, рабочий вариант, но ковариаты нужно подбирать таким образом, чтобы не было основной метрики в предэкспериментальном периоде, как мне кажется, поскольку возникнет мультиколлинеарность.
Пока не тестил, как это может снизить метрику, но в статье с CUPED with Multiple Covariates... есть пример с генерацией вектора theta для каждой из метрик, можно покрутить.
Если вы хотите бустануть канал, видеть истории с полезными материалами или просто кастомные реакции, делайте тык.
Для понимания того, что здесь происходит, советую ознакомиться с предыдущим постом
Наткнулся на статью, в которой один phd показывает, что возможно использовать несколько ковариат и указывает на основные моменты. Статья называется CUPED with Multiple Covariates and A Simpler the Delta Method Calculation. Недавно узнал, что с этим работают в Booking, но статьи не нашёл)
Пока не тестил, как это может снизить метрику, но в статье с CUPED with Multiple Covariates... есть пример с генерацией вектора theta для каждой из метрик, можно покрутить.
Если вы хотите бустануть канал, видеть истории с полезными материалами или просто кастомные реакции, делайте тык.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM