Когда релиз раскатан не на всех, классическая схема "до" и "после" начинает рушиться: метрика растет или падает одновременно из-за сезонности, внешнего фона и изменений в каналах, а не только из-за продукта. При этом AB теста может не быть, но данные по группам есть почти всегда: по гео, сегментам, кластерам, витринам. В этой статье разбираю два практических подхода, которые позволяют оценить эффект релиза в таких условиях.
В прошлой статье мы разбирали ситуацию, когда есть одна метрика во времени и понятная дата изменения. На практике чаще бывает иначе: изменение затронуло не всех.
Типовые примеры:
релиз раскатан на часть гео,
изменение включено только для определенного сегмента пользователей,
затронуты только отдельные кластеры, каналы, витрины,
контрольной группы в виде AB теста нет, но есть группы, которые не трогали.
В таких задачах данные устроены как набор временных рядов: одна и та же метрика, но отдельно по каждой группе. Дальше возникает два базовых инструмента, которые можно применять на агрегированных данных:
difference in differences (diff-in-diff, DiD),
синтетический контроль (synthetic control).
В предыдущем сценарии у нас была одна временная линия метрики: одно значение в каждый день или неделю для всего продукта. Здесь метрика та же, но она разбита по группам, и на каждой дате мы видим сразу несколько значений: отдельно по географиям, сегментам или кластерам.
Если смотреть только на затронутую группу, то мы снова упираемся в ту же проблему: после даты изменения метрика меняется по многим причинам.
Отличие здесь в том, что у нас появляются группы, которых изменение не коснулось. Их динамика помогает понять общую картину:
сезонность,
тренды,
внешние события.
Идея у обоих методов одинаковая: построить контрфакт (прогноз того, как метрика выглядела бы без релиза) для затронутой группы на период после изменения, используя информацию из незатронутых групп.
Идея метода в том, чтобы вычесть общий шум, который влияет на всех. Для этого берем контрольную группу, на которую релиз не влиял, и используем ее динамику как поправку на сезонность и внешние события. После этого сравниваем, насколько сильнее изменилась метрика в затронутой группе по сравнению с контрольной.
Когда метод подходитНужны две временные линии метрики:
- затронутая группа
- контрольная группа, которая не подвергалась изменению
Тогда эффект релиза можно оценивать не по абсолютным уровням, а по разнице в изменениях.
Формула оценки эффектаЕсли:
- период до изменения
- период после изменения
Тогда оценка эффекта:

Факт в затронутой группе и ожидаемая траектория без релиза, построенная по контрольной группе через diff-in-diff
В эквивалентной форме удобно смотреть разницу рядов:
Тогда:
Метод требует, чтобы до изменения затронутая и контрольная группы двигались согласованно. Это часто называют параллельностью трендов.
Возможной проверкой является следующий порядок действий:
построить на периоде
,
убедиться, что там нет устойчивого движения вверх или вниз.
Если до изменения заметно растет или падает, diff-in-diff может приписать это смещение эффекту релиза.
контрольная группа все же косвенно затронута изменением,
состав групп меняется во времени, например трафик перетекает из одного гео в другой,
сезонность у групп может отличаться из-за локальных праздников, разной структуры выходных и разных периодов отпусков ,
группы влияют друг на друга, например пользователи мигрируют, а рынок общий.
Diff-in-diff опирается на одну контрольную группу. Часто одной группы недостаточно:
каждый отдельный гео похож на затронутый только частично,
один контроль не повторяет динамику затронутой группы на периоде до изменения,
есть несколько возможных контрольных групп, и вместо выбора одной можно собрать их в комбинацию.
Синтетический контроль делает именно это: строит взвешенную комбинацию незатронутых групп, которая максимально повторяет затронутую группу на периоде до изменения.
Формализация через веса контрольных группДальше будем называть контрольными группами те гео или сегменты, которых релиз не коснулся и из которых мы собираем взвешенный контроль.
Обозначим группы-кандидаты на контроль:
- метрика в контрольной группе
в дату
Мы ищем веса так, чтобы на периоде до изменения сумма контрольных групп была близка к затронутой группе:

Веса показывают, какие контрольные группы сильнее всего влияют на базовую линию. Если почти весь вес сосредоточен в одной группе, результат становится чувствительным к ее динамике
Дальше прогноз для периода после изменения:

Факт в затронутой группе и базовая линия без релиза, построенная как сумма метрик контрольных групп с весами, подобранными по периоду до релиза
И эффект по времени:
Дальше можно считать те же агрегаты, что и в первой статье:
средний эффект,
накопленный эффект,
относительный эффект.
Например накопленный эффект:
Более устойчивый прогноз метрики
Если одна контрольная группа слабо похожа на затронутую по динамике до релиза, можно составить комбинацию нескольких контрольных групп со своими весами. Нередко такая "смесь" повторяет историю затронутой группы заметно точнее.
Интерпретация через веса
Веса показывают, какие контрольные группы сильнее всего влияют на прогноз метрики без релиза. Если почти весь вес оказался на одной группе, результат становится чувствительным именно к ее поведению.
контрольные группы частично затронуты тем же изменением, пусть и не напрямую;
контрольные группы могут иметь собственные события после даты релиза: локальные акции, всплески маркетинга, изменения в каналах, сбои или регуляторные ограничения. Если такие события есть, они искажают прогноз метрики без релиза для затронутой группы;
если на периоде до релиза комбинация контрольных групп заметно расходится с фактической метрикой затронутой группы, значит мы не построили адекватную базовую линию. В этом случае разница после релиза может отражать не эффект изменения, а ошибку построения базовой линии.
есть один хороший контроль, который до изменения ведет себя похоже на затронутую группу, тогда diff-in-diff часто достаточно;
если ни одна отдельная контрольная группа не повторяет динамику затронутой группы до релиза достаточно точно, имеет смысл перейти к синтетическому контролю: он строит комбинацию из нескольких контрольных групп с подобранными весами и обычно дает более точную базовую линию;
если до изменения ни один вариант не воспроизводит затронутую группу, лучше остановиться и сначала понять, что происходит с данными, а не пытаться найти эффект любой ценой.
Для diff-in-diff:
стабильность на
Для синтетического контроля:
2) Чувствительность к выбору доноровЕсли в синтетическом контроле убрать одну контрольную группу и результат резко меняется, значит оценка нестабильная.
3) Плацебо проверкиПолезно делать ложные даты изменения на периоде и смотреть, насколько часто метод дает эффекты сопоставимого масштаба. Мы выбираем несколько дат внутри периода до релиза и делаем вид, что релиз произошел в эти даты. Для каждой такой ложной даты пересчитываем эффект и получаем распределение эффектов, которые метод способен выдавать просто из-за шума и случайных колебаний. Если реальный эффект не выделяется на фоне этого распределения, результат лучше интерпретировать осторожно.
Когда изменение затронуло не всех, полезно использовать контрольные группы: географии, сегменты или кластеры, на которые релиз не влиял;
Diff-in-diff подходит, если есть одна контрольная группа с похожей динамикой до релиза и нет явного смещения разницы на периоде до релиза;
Синтетический контроль подходит, если одной контрольной группы недостаточно и нужно собрать комбинацию нескольких контрольных групп, каждая со своим весом, чтобы точнее повторить историю до релиза;
В обоих подходах наиболее важными являются одни и те же моменты: качество воспроизведения периода до релиза, проверка устойчивости к выбору групп и плацебо даты.
Рассмотренные в этих двух статьях подходы помогают оценить эффект продуктового изменения в ситуации, когда AB теста нет, но решение все равно нужно принимать. Мы разобрали два наиболее частых случая, которые встречаются в данных:
когда есть одна метрика по продукту во времени - строим ожидаемую траекторию метрики без релиза по сопутствующим факторам и сравниваем ее с фактическими значениями;
когда метрика доступна по группам (гео, сегменты, кластеры), используем контрольные группы: либо одну подходящую через diff-in-diff, либо комбинацию нескольких контрольных групп, где каждой группе назначается вес (синтетический контроль).
В обоих случаях надежность результата определяется не названием метода, а тем, насколько аккуратно сделаны проверки:
базовая линия должна хорошо воспроизводить поведение метрики до релиза;
вывод не должен расходиться при изменении границ периода до релиза и после релиза, а также при разумных изменениях набора контрольных групп;
плацебо даты помогают понять, насколько часто похожий эффект может появляться просто из-за шума и случайных колебаний, даже без реального вмешательства.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Как писать юнит-тесты, которые не ломаются | 0 | 9.59 | 21-02-2026 |
| 2 | Не всё деплоем правится: как мы вынесли интерфейс из кода с помощью Server-Driven UI | 0 | 11.11 | 25-04-2026 |
| 3 | Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD | 0 | 14.13 | 29-04-2026 |
| 4 | pytest-tia: Run Only the Tests Your Git Diff Actually Affects | 0 | 20 | 12-07-2026 |
| 5 | Почему автотесты пропускают изменения в API и как это исправить с Pydantic | 0 | 5.93 | 26-04-2026 |
| 6 | Как подбирать аугментации: гипотезы, протокол и метрики | 0 | 8.18 | 30-03-2026 |
| 7 | Выбор статистического метода для A/B-теста: практическое руководство | 0 | 11.3 | 09-01-2026 |
| 8 | Как мы научились честно считать эффект промокодов: Causal Inference в онлайн-доставке | 0 | 8 | 07-03-2026 |
| 9 | 10 900 тестов или почему ваш мониторинг должен быть протестирован | 0 | 10.98 | 06-03-2026 |
| 10 | Argo CD vs Portainer GitOps: An Implementation-Level Comparison | 0 | 7 | 06-01-2026 |