{"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/decaflow-a-deconfounding-causal-generative","title":"DeCaFlow: A Deconfounding Causal Generative Model","arxiv_id":"2503.15114","date":"2025-03-19","proceeding":null,"authors":["Alejandro Almodóvar","Adrián Javaloy","Juan Parras","Santiago Zazo","Isabel Valera"],"abstract":"We introduce DeCaFlow, a deconfounding causal generative model. Training once per dataset using just observational data and the underlying causal graph, DeCaFlow enables accurate causal inference on continuous variables under the presence of hidden confounders. Specifically, we extend previous results on causal estimation under hidden confounding to show that a single instance of DeCaFlow provides correct estimates for all causal queries identifiable with do-calculus, leveraging proxy variables to adjust for the causal effects when do-calculus alone is insufficient. Moreover, we show that counterfactual queries are identifiable as long as their interventional counterparts are identifiable, and thus are also correctly estimated by DeCaFlow. Our empirical results on diverse settings (including the Ecoli70 dataset, with 3 independent hidden confounders, tens of observed variables and hundreds of causal queries) show that DeCaFlow outperforms existing approaches, while demonstrating its out-of-the-box applicability to any given causal graph. An implementation can be found in https://github.com/aalmodovares/DeCaFlow","url_abs":"https://arxiv.org/abs/2503.15114v2","url_pdf":"https://arxiv.org/pdf/2503.15114v2.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":"abstracts"},"code_links":[{"paper_slug":"decaflow-a-deconfounding-causal-generative","repo_url":"https://github.com/aalmodovares/decaflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}}],"tasks":[{"task_slug":"causal-inference","task_name":"Causal Inference"},{"task_slug":null,"task_name":"counterfactual"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"causal-inference","method_name":"Causal inference"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2503.15114","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.15114"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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":"deterministic:regex_extraction","url":"https://github.com/aalmodovares/DeCaFlow","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/aalmodovares/decaflow","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran_violates":1,"ran_draft_wrong":2},"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":"5bc01cbc37e129cf","entry":"has_direct_link","repo":"aalmodovares/decaflow","repo_kind":"official","path":"decaflow/utils/identifiability.py","file_url":"https://github.com/aalmodovares/decaflow/blob/HEAD/decaflow/utils/identifiability.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":2,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5bc01cbc37e129cf"}},{"code_sha256_prefix":"9422bb64bb880a21","entry":"find_confounded_paths","repo":"aalmodovares/decaflow","repo_kind":"official","path":"decaflow/utils/identifiability.py","file_url":"https://github.com/aalmodovares/decaflow/blob/HEAD/decaflow/utils/identifiability.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"9422bb64bb880a21"}},{"code_sha256_prefix":"e926ed73ca7d97b7","entry":"same_confounder","repo":"aalmodovares/decaflow","repo_kind":"official","path":"decaflow/utils/identifiability.py","file_url":"https://github.com/aalmodovares/decaflow/blob/HEAD/decaflow/utils/identifiability.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e926ed73ca7d97b7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}