TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Заскуль питона (Аналитика данных)

20 Apr 2024, 13:49

Open in Telegram Share Report

🆎 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.

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

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

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

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

#аб

3.1k 19 65 14 43
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot