Partial-Pooling Synthetic Control with Multiple Outcomes

Synthetic control for studies with several outcomes. Each outcome receives its own donor weights, their dispersion around a common centroid is penalized, no single penalty is ever selected (the estimator aggregates over a penalty grid by leave-one-out exponential weighting), and the resulting mass profile reports how much pooling the data support. One call returns the per-outcome effects, the weights, the realized pooling, and whole-pipeline placebo p-values. Implements the estimator of Grier (2026) "Correlated Weights: Partial Pooling for Synthetic Control with Multiple Outcomes" < https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7149398>, the common-weights corner of which is the estimator of Sun, Ben-Michael and Feller (2025) . The compiled engine and a pure-R reference engine are certified against the Python engine behind the 'Stata' command 'ppsynth'.


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("ppsynth")

0.2.1 by Kevin B. Grier, 6 hours ago


https://github.com/angusgrier/PPSYNTH


Report a bug at https://github.com/angusgrier/PPSYNTH/issues


Browse source code at https://github.com/cran/ppsynth


Authors: Kevin B. Grier [aut, cre]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports stats, graphics, parallel, Rcpp

Suggests testthat, jsonlite, knitr, rmarkdown

Linking to Rcpp


See at CRAN