Słownik metodologiczny · Projekt badania

Metoda syntetycznej kontroli – jak ocenić efekt w jednej jednostce?

Metoda syntetycznej kontroli ocenia efekt interwencji w jednym kraju, regionie czy instytucji, porównując je z ważoną kombinacją jednostek bez interwencji. Pokazujemy wagi, badania placebo, przykład w R i opis do pracy.

Strona główna / Słownik / Metoda syntetycznej kontroli
W skrócie: Metoda syntetycznej kontroli szacuje efekt interwencji w jednej jednostce zagregowanej, porównując ją z ważoną kombinacją jednostek bez interwencji, dobraną do przebiegu wyniku przed interwencją. Wagi są nieujemne i sumują się do 1, a istotność ocenia się badaniami placebo.

Co to jest metoda syntetycznej kontroli?

Metoda syntetycznej kontroli (ang. synthetic control method) ocenia efekt interwencji, która objęła jedną jednostkę zagregowaną – kraj, region, miasto czy uczelnię. Zamiast jednej grupy kontrolnej buduje się „syntetyczną” jednostkę: średnią ważoną jednostek nieobjętych interwencją (puli dawców), dobraną tak, by jak najwierniej odtworzyła przebieg wyniku przed interwencją. Różnica między jednostką badaną a jej syntetycznym odpowiednikiem po interwencji to oszacowany efekt. Pomysł pochodzi od Abadiego i Gardeazabala (2003), którzy szacowali ekonomiczne koszty terroryzmu w Kraju Basków.

Wagi i wnioskowanie

Wagi są nieujemne i sumują się do 1, więc syntetyczna kontrola nie wychodzi poza zakres danych dawców i wiadomo, które jednostki ją tworzą. Abadie i in. (2010) zastosowali metodę do programu antytytoniowego w Kalifornii i zaproponowali wnioskowanie przez badania placebo: metodę powtarza się dla każdego dawcy, jakby to on był objęty interwencją, i sprawdza, czy luka dla jednostki badanej jest wyjątkowo duża. To logika testu permutacyjnego.

Na tle innych schematów

Metoda należy do schematów quasi-eksperymentalnych. W różnicy w różnicach (DiD) grupy porównawcze dostają równe wagi i trzeba założyć równoległe trendy; tu wagi dobiera się z danych. W przerwanym szeregu czasowym kontrfaktem jest przedłużony trend samej jednostki, a tu – przebieg jednostek porównawczych.

Przykład

W symulacji w R jedna jednostka i 15 dawców miało po 20 okresów przed programem i 10 po nim; prawdziwy efekt wynosił −3. Syntetyczną kontrolę utworzyły trzy jednostki (wagi .63, .23 i .15). Średni błąd dopasowania przed programem (RMSPE) wyniósł 0.70, a średnia luka po programie −2.46. W badaniu placebo stosunek błędu po i przed był największy dla jednostki badanej (1. miejsce na 16, p = 1/16 ≈ .06).

Jak opisać w pracy

Efekt programu oszacowano metodą syntetycznej kontroli (Abadie i in., 2010). Wagi 15 jednostek dawców dobrano na podstawie 20 okresów przed programem (RMSPE = 0.70). Średnia luka po programie wyniosła −2.46. W badaniach placebo stosunek RMSPE po i przed programem był największy dla jednostki badanej (p = 1/16).

Na co uważać

  • Słabe dopasowanie przed interwencją. Jeśli syntetyczna jednostka nie odtwarza przeszłości, nie ufaj jej przyszłości. Abadie (2021) omawia, kiedy metoda daje wiarygodne oszacowania, a kiedy zawodzi.
  • Skażona pula dawców. Usuń jednostki, które też przeszły podobną interwencję albo odczuły jej skutki.
  • Krótki okres przed interwencją. Przy kilku punktach łatwo o dopasowanie przypadkowe.
Przykład reprodukowalny

Syntetyczna kontrola w bazowym R

Pakiet Synth nie jest potrzebny: kod dobiera wagi nieujemne sumujące się do 1 funkcją optim (parametryzacja softmax), minimalizując błąd przed interwencją, a potem powtarza procedurę dla każdego dawcy jako placebo.

Wagi, luka po interwencji i badanie placebo

Dane wejściowe: 1 jednostka badana i 15 dawców, 20 okresów przed i 10 po programie, prawdziwy efekt −3; set.seed(4481).

Co odczytać: wagi ≥ .05, błąd dopasowania przed programem, średnią lukę po programie i miejsce jednostki badanej wśród 16 ilorazów RMSPE.

R
set.seed(4481)
J <- 15; T0 <- 20; T1 <- 10; czas <- 1:(T0 + T1); pre <- czas <= T0
f1 <- cumsum(rnorm(T0 + T1, 0.3, 0.5)); f2 <- sin(czas / 4)   # wspólne czynniki
lam <- cbind(runif(J + 1, 0.5, 1.5), runif(J + 1, -2, 2))
Y <- sapply(1:(J + 1), function(j) 50 + lam[j, 1] * f1 + lam[j, 2] * f2 + rnorm(T0 + T1, 0, 0.5))
Y[!pre, 1] <- Y[!pre, 1] - 3                   # jednostka 1 objęta programem, efekt −3
synt <- function(j, dawcy) {                   # wagi ≥ 0 sumujące się do 1
  y1 <- Y[, j]; Y0 <- Y[, dawcy]
  strata <- function(a) { w <- exp(a) / sum(exp(a)); sum((y1[pre] - Y0[pre, ] %*% w)^2) }
  a <- optim(rep(0, length(dawcy)), strata, method = "BFGS", control = list(maxit = 1000))$par
  w <- exp(a) / sum(exp(a))
  luka <- as.numeric(y1 - Y0 %*% w)
  list(w = w, luka = luka, iloraz = sqrt(mean(luka[!pre]^2) / mean(luka[pre]^2)))
}
s <- synt(1, 2:(J + 1))
w <- setNames(round(s$w, 2), paste0("d", 1:J)); w[w >= 0.05]
c(rmspe_przed = round(sqrt(mean(s$luka[pre]^2)), 2), efekt_po = round(mean(s$luka[!pre]), 2))
ilorazy <- c(s$iloraz, sapply(2:(J + 1), function(j) synt(j, setdiff(2:(J + 1), j))$iloraz))
c(ranga = rank(-ilorazy)[1], jednostek = J + 1)   # placebo w przestrzeni
Wynik w R
  d2  d10  d12 
0.15 0.63 0.23 
rmspe_przed    efekt_po 
       0.70       -2.46 
    ranga jednostek 
        1        16 

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (bez dodatkowych pakietów). Wersja uproszczona: wagi dopasowano tylko do przebiegu wyniku, bez predyktorów.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/

Najczęstsze pytania

Ilu jednostek porównawczych potrzeba w metodzie syntetycznej kontroli?

Nie ma sztywnej liczby. Pula dawców musi zawierać jednostki podobne do badanej i nieobjęte interwencją, a liczba jednostek wyznacza najmniejsze możliwe p w badaniu placebo (np. 1/16).

Czym syntetyczna kontrola różni się od różnicy w różnicach?

DiD porównuje z równo ważoną grupą kontrolną i zakłada równoległe trendy. Syntetyczna kontrola dobiera wagi dawców z danych tak, by odtworzyć przebieg wyniku przed interwencją.

Czy metodę syntetycznej kontroli można policzyć bez pakietu Synth?

Tak, w prostej wersji wystarczy optymalizacja wag nieujemnych sumujących się do 1 w bazowym R. Pełne implementacje dodają predyktory i ważenie zmiennych.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Abadie, A. (2021). Using synthetic controls: Feasibility, data requirements, and methodological aspects. Journal of Economic Literature, 59(2), 391–425. https://doi.org/10.1257/jel.20191450 ● Otwarty dostęp: pełny tekst
  2. Abadie, A., & Gardeazabal, J. (2003). The economic costs of conflict: A case study of the Basque Country. American Economic Review, 93(1), 113–132. https://doi.org/10.1257/000282803321455188
  3. Abadie, A., Diamond, A., & Hainmueller, J. (2010). Synthetic control methods for comparative case studies: Estimating the effect of California's tobacco control program. Journal of the American Statistical Association, 105(490), 493–505. https://doi.org/10.1198/jasa.2009.ap08746 ● Otwarty dostęp: pełny tekst

Cytowania BibTeX

@article{abadie2021using, author={Abadie, Alberto}, title={{Using synthetic controls: Feasibility, data requirements, and methodological aspects}}, journal={Journal of Economic Literature}, year={2021}, volume={59}, number={2}, pages={391--425}, doi={10.1257/jel.20191450}}
@article{abadie2003economic, author={Abadie, Alberto and Gardeazabal, Javier}, title={{The economic costs of conflict: A case study of the Basque Country}}, journal={American Economic Review}, year={2003}, volume={93}, number={1}, pages={113--132}, doi={10.1257/000282803321455188}}
@article{abadie2010synthetic, author={Abadie, Alberto and Diamond, Alexis and Hainmueller, Jens}, title={{Synthetic control methods for comparative case studies: Estimating the effect of California's tobacco control program}}, journal={Journal of the American Statistical Association}, year={2010}, volume={105}, number={490}, pages={493--505}, doi={10.1198/jasa.2009.ap08746}}
R