Код Middle CUPED и снижение дисперсии обновлено
Постстратифицированное среднее
Условие
Напишите post_strat(rows, weights): rows список [stratum, value] одной группы теста, weights словарь долей страт во всей выборке (сумма 1, у каждой страты из weights есть хотя бы одно наблюдение). Верните постстратифицированное среднее Σ w_s · mean_s, round(..., 4).
Примеры
post_strat([["ios", 200], ["ios", 300], ["android", 100], ["android", 50], ["android", 150]], {"ios":0.5,"android":0.5}) // 175
post_strat([["a", 1], ["b", 3]], {"a":0.25,"b":0.75}) // 2.5
post_strat([["x", 10], ["x", 20], ["x", 30]], {"x":1}) // 20
Как подойти
Подсказки: 2
- Сначала среднее внутри каждой страты.
- Затем сумма
weights[s] * mean_s.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.