TL;DR
Строим синтетический клон treated юнита из взвешенной комбинации контрольных. Сравниваем реальный post-outcome с синтетическим. Идеален для одного treated юнита с длинным pre-period.
ATT для treated unit: разница между наблюдаемым Y и синтетическим контрфактуалом Ŷ в post-period. Не ATE, не средний эффект — эффект для конкретного treated юнита.
| Проверка | Что смотрим | Красный флаг | Что делать |
|---|---|---|---|
| Pre-period fit (RMSPE) | Совпадение Y и Ŷ в pre-period | RMSPE > 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 sanity | Donors не затронуты treatment / spillover | Donor получил аналогичный treatment | Исключить "заражённых" donors |
| Post/pre RMSPE ratio | Отношение post-RMSPE к pre-RMSPE | Ratio для treated ≤ ratio placebo | Эффект не отличается от шума |
# Найти веса 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
Augmented SCM (Ben-Michael et al.) добавляет bias correction поверх классических весов, позволяя экстраполировать за пределы convex hull. Также существуют методы с ridge penalty (regularized SCM) для стабилизации весов при многих donor units.
Регион A (treated: конкурент ушёл в t=7). Donors: регионы B, C, D. Pre-period: t=1..6.
| t | A (treated) | B | C | D |
|---|---|---|---|---|
| 1 | 100 | 90 | 110 | 95 |
| 2 | 102 | 91 | 112 | 97 |
| 3 | 105 | 93 | 115 | 99 |
| 4 | 103 | 92 | 113 | 98 |
| 5 | 107 | 95 | 117 | 101 |
| 6 | 106 | 94 | 116 | 100 |
| 7 | 120 | 96 | 118 | 102 |
| 8 | 125 | 97 | 120 | 103 |
# 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 в период после ухода конкурента.
Вы оцениваете эффект закрытия конкурента в регионе X. Один из donor-регионов (Y) тоже потерял крупного конкурента за полгода до treatment. Можно ли включать Y в donor pool?
Нет. Регион Y "заражён" аналогичным шоком. Его включение нарушает assumption "no spillover на donors". Включение может затянуть синтетический контроль вверх (donor contamination), занижая оценку эффекта. Исключить Y из donor pool.
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.