ZASQL_PYTHON Telegram 188
🆎 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



tgoop.com/zasql_python/188
Create:
Last Update:

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

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

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

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

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

#аб

BY Заскуль питона (Data Science)


Share with your friend now:
tgoop.com/zasql_python/188

View MORE
Open in Telegram


Telegram News

Date: |

To view your bio, click the Menu icon and select “View channel info.” How to create a business channel on Telegram? (Tutorial) Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. Activate up to 20 bots
from us


Telegram Заскуль питона (Data Science)
FROM American