Модуль 4. Synthetic Control

TL;DR

Строим синтетический клон treated юнита из взвешенной комбинации контрольных. Сравниваем реальный post-outcome с синтетическим. Идеален для одного treated юнита с длинным pre-period.

Когда применять

What you estimate

ATT для treated unit: разница между наблюдаемым Y и синтетическим контрфактуалом Ŷ в post-period. Не ATE, не средний эффект — эффект для конкретного treated юнита.

Assumptions

  1. No anticipation: treated unit не реагирует до treatment
  2. No spillover: treatment не влияет на donor units
  3. Convex hull: treated unit можно аппроксимировать выпуклой комбинацией donors
  4. Stable factor model: скрытые факторы, объясняющие Y, стабильны во времени

Diagnostics — стандартные проверки

ПроверкаЧто смотримКрасный флагЧто делать
Pre-period fit (RMSPE)Совпадение Y и Ŷ в pre-periodRMSPE > 5–10% от среднего YПлохой fit → результат ненадёжен
In-space placeboПрименить SCM к каждому donor как "treated"Эффект treated unit не выделяетсяНет статистической значимости
In-time placeboФиктивная дата treatment в pre-periodЗначимый "эффект" до реального treatmentМодель нестабильна
Leave-one-outИсключать donors по одномуРезультат резко меняетсяСлишком зависим от одного donor
Donor pool sanityDonors не затронуты treatment / spilloverDonor получил аналогичный treatmentИсключить "заражённых" donors
Post/pre RMSPE ratioОтношение post-RMSPE к pre-RMSPERatio для treated ≤ ratio placeboЭффект не отличается от шума

Minimal estimator

# Найти веса w_j (j = 1..J donors), w_j ≥ 0, Σw_j = 1:
# min Σ_t (Y_treated_t − Σ_j w_j · Y_j_t)²    для t ∈ pre-period

# Синтетический контрфактуал:
Ŷ_t = Σ_j w_j · Y_j_t

# Оценка эффекта:
τ̂_t = Y_treated_t − Ŷ_t    для t ∈ post-period

Pitfalls

What to do next

Глубже: augmented synthetic control

Augmented SCM (Ben-Michael et al.) добавляет bias correction поверх классических весов, позволяя экстраполировать за пределы convex hull. Также существуют методы с ridge penalty (regularized SCM) для стабилизации весов при многих donor units.

Toy example: SCM идея

Регион A (treated: конкурент ушёл в t=7). Donors: регионы B, C, D. Pre-period: t=1..6.

tA (treated)BCD
11009011095
21029111297
31059311599
41039211398
510795117101
610694116100
712096118102
812597120103
# Step 1: Подобрать веса (здесь вручную, w_B=0.3, w_C=0.5, w_D=0.2)
# Step 2: Синтетический контроль в t=7:
Ŷ_7 = 0.3·96 + 0.5·118 + 0.2·102 = 28.8 + 59.0 + 20.4 = 108.2

# Step 3: Эффект в t=7:
τ̂_7 = 120 − 108.2 = 11.8

# Step 4: Проверить pre-fit (RMSPE по t=1..6 должен быть низким)

Ожидаемый результат: τ̂ ≈ +12 единиц revenue в период после ухода конкурента.

Упражнения

Задача 1: donor pool

Вы оцениваете эффект закрытия конкурента в регионе X. Один из donor-регионов (Y) тоже потерял крупного конкурента за полгода до treatment. Можно ли включать Y в donor pool?

Решение

Нет. Регион Y "заражён" аналогичным шоком. Его включение нарушает assumption "no spillover на donors". Включение может затянуть синтетический контроль вверх (donor contamination), занижая оценку эффекта. Исключить Y из donor pool.

Задача 2: интерпретация

SCM: pre-RMSPE = 8.5, post-gap = +12.0. In-space placebo: 3 из 20 donors имеют post/pre RMSPE ratio выше, чем treated. Каков "p-value"?

Решение

Permutation-based p-value = (3 + 1) / (20 + 1) ≈ 0.19. Результат не значим на уровне 0.10. Эффект для treated unit не является "необычным" по сравнению с placebo. Нужно больше donors или более длинный pre-period.