Код 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
  1. Сначала среднее внутри каждой страты.
  2. Затем сумма weights[s] * mean_s.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.