Для каждой задачи выберите подходящий квази-экспериментальный метод, сформулируйте допущения и продумайте проверки, которые защитят вас от ложных выводов.
Сервис доставки запускает услугу «доставка в тот же день» только в Новосибирске. В остальных городах ничего не меняют.
У вас есть 8 недель данных по выручке на пользователя для всех городов до запуска и несколько недель после.
Бизнес хочет оценить, насколько услуга увеличила выручку именно в Новосибирске.
Рекомендуемый метод: Difference-in-Differences (DiD) с treated-группой «Новосибирск» и набором похожих городов в контроле.
Ключевое допущение: без запуска услуги тренды выручки в Новосибирске и контрольных городах шли бы параллельно.
Sanity checks:
Главный риск: специфический шок в Новосибирске (локальная промоакция, конкуренты, погода), который ломает параллельные тренды и «подмешивается» в оценку эффекта.
Продуктовая команда вручную включила премиум-функции пользователям, у которых было > 50 заказов за всё время.
Теперь вы хотите оценить влияние премиума на удержание через 3 месяца. Рандомизации не было, эксперимент задним числом.
Есть полная история заказов, регистраций, устройств и регионов по всем пользователям.
Рекомендуемый метод: matching / reweighting (propensity score matching или IPW) с treated-группой «получили премиум» и контролем «похожий профиль, но без премиума».
Ключевое допущение: selection on observables — все факторы, влияющие на выдачу премиума и удержание, наблюдаемы (например, активность, стаж, тип устройства).
Sanity checks:
Главный риск: немеряемая мотивация или лояльность: пользователи, которым дали премиум, могут отличаться по «внутренним» характеристикам даже при совпадающих наблюдаемых признаках, что приведёт к завышению эффекта.
Новый алгоритм рекомендаций запустили только в Германии. Ещё 12 европейских стран работают по старой схеме.
У вас есть 6 месяцев помесячных данных по выручке и DAU до запуска и несколько месяцев после.
Цель — понять, насколько именно алгоритм изменил метрики в Германии, учитывая общерыночные тренды.
Рекомендуемый метод: synthetic control: построить «синтетическую Германию» из контрольных стран (Франция, Испания, Италия и др.).
Ключевое допущение: существует такая комбинация контрольных стран, которая хорошо воспроизводит тренд Германии до запуска; без алгоритма Германия продолжила бы вести себя как эта комбинация.
Sanity checks:
Главный риск: Германия имела свой уникальный тренд, плохо воспроизводимый донорским пулом, либо в Германии были специфические события (регуляция, кризис), которых нет в донорах — тогда контрфактуал ненадёжен.
Пользователи, которые тратят > 10 000 ₽ в месяц, автоматически получают 5% cashback на следующий месяц.
Нужно оценить, увеличивает ли cashback траты в следующем месяце. Чёткого A/B нет: правило действует для всех.
Доступны точные помесячные траты по пользователям за несколько месяцев.
Рекомендуемый метод: Regression Discontinuity Design (RDD) вокруг порога 10 000 ₽.
Ключевое допущение: пользователи не могут точно манипулировать месячными тратами относительно порога, и пользователи с тратами чуть выше и чуть ниже 10 000 ₽ сравнимы по всем прочим факторам.
Sanity checks:
Главный риск: пользователи специально «добивают» покупки до порога, а также малая плотность наблюдений в окрестности 10 000 ₽, из-за чего оценка становится шумной.
Мобильное приложение полностью обновило дизайн и навигацию для всех пользователей в один день. Holdout-группы нет.
У вас есть 12 недель данных по DAU, конверсии и выручке до редизайна и 8 недель после.
Команда хочет понять, не «убили» ли редизайном основные продуктовые метрики.
Рекомендуемый метод: Interrupted Time Series (ITS) / CausalImpact с моделированием временного ряда по pre-period и оценкой отклонения постпериода от прогноза.
Ключевое допущение: модель временного ряда хорошо описывает метрику без редизайна; других крупных изменений в момент запуска нет.
Sanity checks:
Главный риск: наложение нескольких событий (кампания, новый тариф, PR-кризис), которые модель интерпретирует как эффект редизайна.
Вы построили DiD: Москва — treatment (запуск новой логистики), Санкт-Петербург — контроль.
Эффект получился +7% к выручке. Но при проверке выяснилось, что в pre-period Москва росла на 3 п.п. в неделю быстрее, чем СПб.
Графики явно расходятся ещё до запуска.
Рекомендуемый вывод: ключевое допущение DiD (параллельные тренды) нарушено, оценка эффекта смещена. Интерпретировать +7% как эффект логистики нельзя.
Ключевое допущение: без логистики gap между Москвой и СПб оставался бы примерно постоянным или предсказуемым; наблюдаемый разъезд трендов показывает, что это не так.
Sanity checks и возможные фиксы:
Главный риск: бизнес может принять решение на основе смещённой оценки, переоценив эффект логистики и недооценив другие факторы роста Москвы.
Аналитик оценивал эффект новой программы лояльности. Он матчил пользователей по «числу покупок за период эксперимента» и другим признакам.
После matching среднее число покупок почти совпало между treated и control, и эффект по выручке оказался близок к нулю.
Руководитель радуется: «Программа лояльности ничего не даёт, можно не масштабировать».
Проблема: использован post-treatment признак (число покупок во время эксперимента) в процедуре matching. Эта переменная сама зависит от treatment, и matching на ней «выравнивает» именно эффект.
Ключевое допущение (которое нарушено): matching должен использовать только pre-treatment ковариаты, которые не изменяются под действием treatment.
Sanity checks:
Главный риск: недооценка эффекта программы лояльности и ошибочное решение свернуть её, хотя при корректном анализе эффект может быть существенным.
Вы построили synthetic Germany из других европейских стран. В pre-period среднеквадратичная ошибка (RMSE) между Германией и synthetic Germany составляет ~15% от среднего уровня выручки.
В постпериод визуально есть небольшое отставание synthetic Germany от фактической Германии на уровне ~5%.
Руководитель спрашивает: «Можно ли считать, что эффект алгоритма +5%?».
Проблема: качество fit в pre-period слишком плохое. Ошибка 15% от среднего уровня метрики — это шум гораздо большего масштаба, чем наблюдаемый «эффект» 5%.
Ключевое допущение: synthetic control должен хорошо воспроизводить treated-единицу до вмешательства; тогда отклонения после можно интерпретировать как эффект.
Sanity checks:
Главный риск: неверная каузальная интерпретация артефактов модели: при таком уровне шума 5% могут быть просто случайным отклонением, а не эффектом фичи.
Компания присваивает VIP-статус пользователям с числом покупок >= 100. Вы хотите использовать RDD, чтобы оценить влияние VIP-статуса на выручку.
Гистограмма числа покупок показывает резкий всплеск в интервале 99–101: пользователей с 99 и 100 покупками заметно больше, чем ожидается по тренду.
Также часть менеджеров может вручную «доначислять» покупки важным клиентам.
Проблема: явная манипуляция running variable около порога. Пользователи и/или система подталкивают счетчик покупок к 100, чтобы получить VIP-статус.
Ключевое допущение (которое рушится): пользователи не могут точно контролировать положение относительно порога, а распределение running variable гладкое около cutoff-а.
Sanity checks:
Главный риск: RDD даёт сильно смещённую оценку эффекта, потому что выборка около порога уже не квазислучайная — там собраны «особые» пользователи, которых система или люди подталкивали к VIP.
Компания в течение двух недель запустила сразу три изменения:
1 марта — редизайн приложения, 5 марта — большую маркетинговую кампанию, 10 марта — повышение цен.
У вас есть поминутные и подневные данные по DAU и выручке. Руководство просит «оценить эффект именно редизайна».
Проблема: множественные интервенции, происходящие почти одновременно. ITS/ CausalImpact с одним «переломом» не сможет чисто отделить эффект редизайна от кампании и изменения цен.
Ключевое допущение ITS: в момент интервенции происходит одно основное изменение, а остальные факторы фиксированы или учтены в модели.
Sanity checks и варианты решения:
Главный риск: приписать весь наблюдаемый uplift или падение редизайну, хотя он может быть в основном вызван маркетинговой кампанией или увеличением цен.
Ваш DiD-анализ даёт +8% к выручке после запуска новой программы лояльности в Москве относительно контрольных городов.
Результат выглядит красиво, но вы хотите убедиться, что он не артефакт модели и выбора контрольной группы.
У вас есть данные ещё за полгода до реального запуска программы.
Рекомендуемые проверки (placebo-тесты):
Ключевая идея: если метод систематически выдаёт значимые эффекты в местах, где их заведомо нет, доверять оценке +8% нельзя.
Главный риск: «выученная» модель трендов, которая при любом сдвиге даёт красивый uplift, не отражающий реальный эффект программы лояльности.
Компания выдала персональные скидки пользователям, которые пожаловались в поддержку на качество сервиса.
Вы собрали matching по tenure, прошлой выручке, устройству, региону и посчитали uplift по удержанию: +20% в treated-группе.
Продуктовая команда хочет использовать этот результат, чтобы оправдать масштабирование скидок.
Проблема: сильная селекция по немеряемым факторам. Пользователи, которые жалуются, могут одновременно быть более вовлечёнными (заботятся о сервисе) и более фрустрированными. Matching по наблюдаемым признакам этого не устраняет.
Ключевое допущение matching (selection on observables): все факторы, влияющие на попадание в treatment и на исход, измерены и учтены в модели. Здесь это явным образом нарушено.
Sanity checks:
Главный риск: серьёзное завышение эффекта скидок и дорогостоящее масштабирование неэффективной механики. В таких кейсах лучше стремиться к RCT (A/B среди жалующихся) или использовать инструменты (IV) вместо чистого matching.
Фича rollout-ится по городам волнами: 3 города в январе, ещё 3 в марте, ещё 3 в мае. Ещё 6 городов остаются на старой версии весь год.
У вас есть помесячные данные по метрикам по всем городам за 2 года.
Нужно оценить общий эффект фичи и понять, нет ли сдвига эффекта между волнами.
Рекомендуемый метод: DiD с разными timing-ами treatment (staggered adoption). На практике — двухфакторная регрессия с fixed effects по городам и времени или более аккуратные методы типа Callaway–Sant’Anna / Sun–Abraham.
Ключевые допущения: параллельные тренды для каждой волны относительно её контролей; отсутствие сильных carryover-эффектов между волнами, неучтённых в модели.
Sanity checks:
Главный риск: использование наивной двухфакторной модели при разном timing-е может приводить к смещённым оценкам, особенно если эффект со временем меняется; важно использовать корректные методы для staggered DiD.
Год назад компания полностью мигрировала платформу на новую архитектуру. Миграция заняла несколько месяцев, выкатывалась по кускам.
Сейчас CEO просит «доказать», что миграция улучшила бизнес-метрики. Однако до миграции метрики практически не трекались: есть только очень агрегированные ежеквартальные отчёты.
Вы пытаетесь придумать DiD, ITS или synthetic control, но понимаете, что данных до изменений почти нет.
Честный вывод: при отсутствии нормальных pre-period данных полноценный квази-эксперимент провести нельзя. ITS требует истории ряда до интервенции, DiD — сравнения трендов до и после, synthetic control — качественного pre-period fit.
Ключевое допущение большинства методов: наличие информативного периода до изменения, который позволяет построить контрфактуал. Здесь оно не выполняется.
Sanity checks:
Главный риск: попытаться «натянуть» квази-эксперимент на несуществующие данные и выдать псевдокаузальный вывод. Важно суметь сказать «мы не можем честно оценить эффект миграции» и предложить альтернативные метрики успеха.