{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/on-the-assumptions-of-synthetic-control","title":"On the Assumptions of Synthetic Control Methods","arxiv_id":"2112.05671","date":"2021-12-10","proceeding":null,"authors":["Claudia Shi","Dhanya Sridhar","Vishal Misra","David M. Blei"],"abstract":"Synthetic control (SC) methods have been widely applied to estimate the causal effect of large-scale interventions, e.g., the state-wide effect of a change in policy. The idea of synthetic controls is to approximate one unit's counterfactual outcomes using a weighted combination of some other units' observed outcomes. The motivating question of this paper is: how does the SC strategy lead to valid causal inferences? We address this question by re-formulating the causal inference problem targeted by SC with a more fine-grained model, where we change the unit of the analysis from \"large units\" (e.g., states) to \"small units\" (e.g., individuals in states). Under this re-formulation, we derive sufficient conditions for the non-parametric causal identification of the causal effect. We highlight two implications of the reformulation: (1) it clarifies where \"linearity\" comes from, and how it falls naturally out of the more fine-grained and flexible model, and (2) it suggests new ways of using available data with SC methods for valid causal inference, in particular, new ways of selecting observations from which to estimate the counterfactual.","url_abs":"https://arxiv.org/abs/2112.05671v2","url_pdf":"https://arxiv.org/pdf/2112.05671v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"on-the-assumptions-of-synthetic-control","repo_url":"https://github.com/claudiashi57/fine-grained-sc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2112.05671","atlas_url":"https://app.syntology.ai/?focus=2112.05671","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.05671"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/claudiashi57/fine-grained-sc","reach":null}],"summary":{"ran_honours":2,"ran":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":3,"samples":[{"code_sha256_prefix":"d845400052262a69","entry":"fn1","repo":"claudiashi57/fine-grained-sc","repo_kind":"official","path":"src/dgp.py","file_url":"https://github.com/claudiashi57/fine-grained-sc/blob/HEAD/src/dgp.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d845400052262a69"}},{"code_sha256_prefix":"4bf61816920415b8","entry":"fn2","repo":"claudiashi57/fine-grained-sc","repo_kind":"official","path":"src/dgp.py","file_url":"https://github.com/claudiashi57/fine-grained-sc/blob/HEAD/src/dgp.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4bf61816920415b8"}},{"code_sha256_prefix":"cbbdf5fca6d10fb3","entry":"functions","repo":"claudiashi57/fine-grained-sc","repo_kind":"official","path":"src/dgp.py","file_url":"https://github.com/claudiashi57/fine-grained-sc/blob/HEAD/src/dgp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cbbdf5fca6d10fb3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}