{"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/adapting-neural-networks-for-the-estimation","title":"Adapting Neural Networks for the Estimation of Treatment Effects","arxiv_id":"1906.02120","date":"2019-06-05","proceeding":"NeurIPS 2019 12","authors":["Claudia Shi","David M. Blei","Victor Veitch"],"abstract":"This paper addresses the use of neural networks for the estimation of treatment effects from observational data. Generally, estimation proceeds in two stages. First, we fit models for the expected outcome and the probability of treatment (propensity score) for each unit. Second, we plug these fitted models into a downstream estimator of the effect. Neural networks are a natural choice for the models in the first step. The question we address is: how can we adapt the design and training of the neural networks used in the first step in order to improve the quality of the final estimate of the treatment effect? We propose two adaptations based on insights from the statistical literature on the estimation of treatment effects. The first is a new architecture, the Dragonnet, that exploits the sufficiency of the propensity score for estimation adjustment. The second is a regularization procedure, targeted regularization, that induces a bias towards models that have non-parametrically optimal asymptotic properties `out-of-the-box`. Studies on benchmark datasets for causal inference show these adaptations outperform existing methods. Code is available at github.com/claudiashi57/dragonnet.","url_abs":"https://arxiv.org/abs/1906.02120v2","url_pdf":"https://arxiv.org/pdf/1906.02120v2.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":"adapting-neural-networks-for-the-estimation","repo_url":"https://github.com/claudiashi57/dragonnet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"adapting-neural-networks-for-the-estimation","repo_url":"https://github.com/alecmn/dragonnet-reproduced","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"adapting-neural-networks-for-the-estimation","repo_url":"https://github.com/farazmah/dragonnet-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"adapting-neural-networks-for-the-estimation","repo_url":"https://github.com/sakshambassi/hd-causal-effect","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"adapting-neural-networks-for-the-estimation","repo_url":"https://github.com/uber/causalml/blob/master/causalml/inference/tf/dragonnet.py","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":"causal-inference","task_name":"Causal Inference"}],"methods":[{"method_slug":"causal-inference","method_name":"Causal inference"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/causal-inference-on-ihdp","task":"Causal Inference","dataset":"IHDP","model":"Dragonnet","rank_in_archive_order":3,"of":13,"metrics":{"Average Treatment Effect Error":"0.20"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1906.02120","atlas_url":"https://app.syntology.ai/?focus=1906.02120","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.02120"}},"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/sakshambassi/hd-causal-effect","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/uber/causalml/blob/master/causalml/inference/tf/dragonnet.py","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/farazmah/dragonnet-pytorch","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/alecmn/dragonnet-reproduced","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/claudiashi57/dragonnet","reach":null}],"summary":{"ran":2,"unverified":3},"by_repo_kind":{"official":{"samples":3,"ran":0,"repositories":1},"listed":{"samples":2,"ran":2,"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":"f0493e1c7ef19d3e","entry":"dragonnet_loss","repo":"farazmah/dragonnet-pytorch","repo_kind":"listed","path":"dragonnet/model.py","file_url":"https://github.com/farazmah/dragonnet-pytorch/blob/HEAD/dragonnet/model.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f0493e1c7ef19d3e"}},{"code_sha256_prefix":"1af5e3ba1bd7d55b","entry":"tarreg_loss","repo":"farazmah/dragonnet-pytorch","repo_kind":"listed","path":"dragonnet/model.py","file_url":"https://github.com/farazmah/dragonnet-pytorch/blob/HEAD/dragonnet/model.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1af5e3ba1bd7d55b"}},{"code_sha256_prefix":"4c1ead3cf8e7085e","entry":"psi_iptw","repo":"claudiashi57/dragonnet","repo_kind":"official","path":"src/semi_parametric_estimation/ate.py","file_url":"https://github.com/claudiashi57/dragonnet/blob/HEAD/src/semi_parametric_estimation/ate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4c1ead3cf8e7085e"}},{"code_sha256_prefix":"5a93c54bf76c6995","entry":"psi_tmle_bin_outcome","repo":"claudiashi57/dragonnet","repo_kind":"official","path":"src/semi_parametric_estimation/ate.py","file_url":"https://github.com/claudiashi57/dragonnet/blob/HEAD/src/semi_parametric_estimation/ate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5a93c54bf76c6995"}},{"code_sha256_prefix":"a74e29ba350581b7","entry":"psi_tmle_cont_outcome","repo":"claudiashi57/dragonnet","repo_kind":"official","path":"src/semi_parametric_estimation/ate.py","file_url":"https://github.com/claudiashi57/dragonnet/blob/HEAD/src/semi_parametric_estimation/ate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a74e29ba350581b7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}