Synthetic Control Methods
Synthetic control methods estimate the causal effect of an intervention on a single treated unit by constructing a weighted combination of untreated donor units that matches the treated unit's pre-intervention trajectory. The treatment effect is the gap between observed outcomes and the synthetic counterfactual.
Part of the methodology guide
Part of the Event Study Methodology Guide.
Synthetic control methods provide a rigorous framework for causal inference when only a single unit receives treatment. The method has been applied in over 1,000 published studies since 2010, spanning economics, political science, and public health. In practice, most applications use 20 to 50 pre-treatment periods and a donor pool of 30 to 100 untreated comparison units to construct the synthetic counterfactual.
When Should I Use Synthetic Control?
The synthetic control method is a data-driven approach to causal inference that constructs an optimal counterfactual for a single treated unit by computing a weighted combination of untreated donor units. Introduced by Abadie and Gardeazabal in 2003 and formalized by Abadie, Diamond, and Hainmueller in 2010, the method has been applied in over 1,000 published studies spanning economics, political science, and public health. It is particularly suited to comparative case studies where traditional regression-based approaches lack sufficient treated observations for reliable inference.
| Feature | Cross-Sectional Event Study | Panel DiD | Synthetic Control |
|---|---|---|---|
| Number of treated units | Multiple firms | Multiple units | One unit |
| Control group | Market index | Untreated units | Weighted donors |
| Best for | Market reactions | Policy effects (many units) | Single policy case studies |
| Examples | M&A, earnings | Staggered regulations | Country-level reforms, single-state laws |
When to use
Synthetic control is ideal when you have a single treated unit (one country, one state, one firm) and a pool of similar untreated units. Classic applications: the economic cost of conflict (Abadie & Gardeazabal 2003), California's Proposition 99 (Abadie et al. 2010).
How Does Synthetic Control Work?
Step 1: Construct the Synthetic Control
Find donor weights (non-negative, summing to 1) that minimize the pre-treatment distance between the treated unit and the weighted donors. In practice, most applications use 20–50 pre-treatment periods and 30–100 potential donors:
where is the treated unit's outcome, are donor outcomes, and is the last pre-treatment period.
Step 2: Estimate the Treatment Effect
The treatment effect at time is the gap:
Step 3: Inference via Placebo Tests
According to Abadie (2021), placebo tests are the primary inference tool for synthetic control studies, serving a role analogous to permutation tests in randomized experiments. They apply the synthetic control method to each of the J donor units in turn, pretending each was treated. The treated unit's gap is compared to the distribution of placebo gaps, yielding a p-value with a minimum resolution of 1/(J+1).
where RMSPE is the root mean squared prediction error in the post-treatment period.
How Do I Run Synthetic Control in R?
# Create synthetic control task
sc_task <- SyntheticControlTask$new(
treated_data = treated,
donor_data = donors,
treatment_time = treatment_time
)
# Estimate synthetic control
result <- estimate_synthetic_control(sc_task)
# Donor weights
result$weights# Trajectory plot: treated vs. synthetic
plot_synthetic_control(result, type = "trajectory")
# Gap plot: treatment effect over time
plot_synthetic_control(result, type = "gap")How Do Placebo Tests Provide Inference?
# Run placebo tests (each donor as pseudo-treated)
placebo <- sc_placebo_test(sc_task)
plot_synthetic_control(placebo, type = "placebo")A treated unit whose post-treatment gap is large relative to the placebo gaps provides evidence of a real treatment effect.
- Donor Pool
- The set of untreated units available to construct the synthetic control; typically 20–100 units that were not exposed to the intervention and share similar structural characteristics with the treated unit.
- RMSPE (Root Mean Squared Prediction Error)
- A measure of pre-treatment fit quality, calculated as the square root of the average squared difference between the treated unit and its synthetic control in the pre-intervention period.
- Placebo Test
- An inference procedure that iteratively applies the synthetic control method to each donor unit, generating a distribution of placebo effects against which the treated unit’s effect is compared.
What Diagnostic Checks Should I Run?
| Check | What to Verify | If Failed |
|---|---|---|
| Pre-treatment fit | Synthetic control closely tracks treated unit before treatment | Add covariates or remove poor donors |
| Donor weights | Weights are not concentrated on a single unit | Expand donor pool |
| RMSPE ratio | Treated RMSPE >> placebo RMSPEs | Effect may not be significant |
| Leave-one-out | Results stable when removing individual donors | Check for outlier influence |
Literature
- Abadie, A. & Gardeazabal, J. (2003). The economic costs of conflict: A case study of the Basque Country. American Economic Review, 93(1), 113–132.
- Abadie, A., Diamond, A. & Hainmueller, J. (2010). Synthetic control methods for comparative case studies. Journal of the American Statistical Association, 105(490), 493–505.
- Abadie, A. (2021). Using synthetic controls: Feasibility, data requirements, and methodological aspects. Journal of Economic Literature, 59(2), 391–425.
Implement this with the R package
Access advanced features and full customization through the EventStudy R package.
What Should I Read Next?
- Panel Event Studies — DiD estimators for multiple treated units
- Expected Return Models — cross-sectional event study models
- Inference & Robustness — wild bootstrap and multiple testing corrections