Synthetic Control

Python · from-scratch optimisation  ·  R · Synth, tidysynth  ·  Abadie, 39 states × 31 years

Building the Control You Do Not Have

Every design so far has needed a control group supplied by the world — another state, a set of never-treated units, districts just below a threshold. Sometimes there is only one treated unit and no obvious comparison. California passed Proposition 99 in 1988; no other state did anything similar, and no single state resembles California closely enough to stand in for it.

Synthetic control (Abadie and co-authors) builds the missing control instead of finding it: a weighted average of donor units, with non-negative weights summing to one, chosen so the composite reproduces the treated unit's pre-treatment path. Those two constraints are what make it interpretable — no extrapolation beyond the donors' range, and weights that read as a recipe rather than a regression.

The panel is 39 states over 31 years, 1970–2000, with per-capita cigarette sales. California's pre-1988 path is distinctive — already low and already falling — so a plain average of other states does not resemble it.

donorweight
Utah0.394
Montana0.232
Nevada0.205
Connecticut0.109
New Hampshire0.045
Colorado0.015
pre-treatment RMSPE1.66 packs over 18 years

The optimiser finds a sparse blend, and the pre-treatment fit is the credibility check: an RMSPE of 1.66 packs across eighteen years. If synthetic California tracks real California that closely before the law, its post-1988 path is a defensible counterfactual.

After 1988 the two diverge, and the gap widens as the programme matures: −8.4 packs in 1989, reaching −26.6 by 2000 — roughly a quarter of baseline consumption.

Inference Without a Standard Error

With a single treated unit there is no standard error to compute, so Abadie's inference is a placebo permutation test: pretend in turn that each donor state was treated, build its synthetic control, and record how badly the fit deteriorates afterwards. The test statistic is the post/pre RMSPE ratio, and the question is where California falls among the 39.

Third. California's ratio of 12.4 is high, but two placebo states blow up more after their pretend treatment date, giving a permutation pp of 0.077 — which does not clear the conventional 5%. Suggestive rather than decisive, and worth reporting that way.

quantityvaluereading
effect by 2000−26.6 packsabout a quarter of baseline
post/pre RMSPE ratio12.4large error inflation after 1988
rank among 39 states3rdtwo placebos inflate more
permutation p0.077does not clear 5%
smallest attainable p1/39 = 0.026the ceiling set by 38 placebos

The reason is instructive rather than damning. This from-scratch implementation matches on the pre-treatment outcome path only. Abadie's published analysis also matches on economic predictors — price, income, age structure, beer consumption — with an optimally weighted distance, which tightens California's pre-period fit relative to the placebos and lifts it to the top of the ranking. The R companion runs that version. The effect size is robust across both at roughly 26 packs; it is the inference that depends on how the donors were matched.

There is also a structural ceiling worth noticing. With 38 placebos the smallest attainable pp-value is 1/39=0.0261/39 = 0.026. A comparative case study has one treated unit, so the permutation distribution is as coarse as the donor pool — this test has little room to be decisive even in principle, whatever the effect.

Against Difference-in-Differences

Why not simply run difference-in-differences against the average of all donor states? Because that imposes equal weights and assumes the donors collectively trend in parallel with California. They do not: the equal-weighted average sits well above California and on a different slope before 1988.

counterfactualestimated effectpre-treatment fit
equal-weighted donor average naive DiD−27.3sits above California, different slope
synthetic control optimised weights−19.5tracks California to 1.66 packs

The two answers differ accordingly — naive DiD gives −27.3 packs against synthetic control's −19.5. So synthetic control is difference-in-differences with data-driven weights, which enforce pre-treatment parallelism instead of assuming it. Where Honest DiD prices a parallel-trends violation you cannot rule out, synthetic control tries to engineer the violation away in the first place.

Where this sits

The placebo test is the same permutation reasoning as Fisher's exact test in the first group, transported to a comparative case study — hand the treatment label to each unit in turn and ask where the real one falls. The weighting connects to matching: both construct a comparison from weighted controls, one across time-series trajectories rather than covariate profiles. And the constrained, sparse weights are what the next page generalises, adding time weights alongside the unit weights.

Notebooks

Downloads

References