Код Senior CUPED и снижение дисперсии обновлено
Дельта-метод для CTR на Python
Условие
Напишите delta_ratio(x, y): клики x и показы y каждого пользователя группы (n ≥ 3, у всех y > 0). Верните [R, se]: R = Σx / Σy и стандартную ошибку R по дельта-методу Var(R) ≈ (1/n)·(var_x/μy² - 2·μx·cov/μy³ + μx²·var_y/μy⁴), где μ средние по пользователям, var и cov выборочные (делитель n-1). Оба числа round(..., 4).
Примеры
delta_ratio([1, 0, 3, 2], [10, 5, 20, 15]) // [0.12, 0.0207]
delta_ratio([5, 1, 0, 2, 7], [50, 30, 10, 20, 40]) // [0.1, 0.0279]
delta_ratio([2, 4, 7], [10, 20, 30]) // [0.2167, 0.0127]
Как подойти
Подсказки: 2
- Сначала средние, выборочные дисперсии и ковариация по пользователям.
- Проверка:
var(x - R·y) / (n·μy²)даёт то же значение.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
CUPED на Python: θ и снижение дисперсии
Следующий вопрос
Постстратифицированное среднее