{"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/unveiling-the-potential-of-robustness-in","title":"Unveiling the Potential of Robustness in Selecting Conditional Average Treatment Effect Estimators","arxiv_id":"2402.18392","date":"2024-02-28","proceeding":null,"authors":["Yiyan Huang","Cheuk Hang Leung","Siyi Wang","Yijun Li","Qi Wu"],"abstract":"The growing demand for personalized decision-making has led to a surge of interest in estimating the Conditional Average Treatment Effect (CATE). Various types of CATE estimators have been developed with advancements in machine learning and causal inference. However, selecting the desirable CATE estimator through a conventional model validation procedure remains impractical due to the absence of counterfactual outcomes in observational data. Existing approaches for CATE estimator selection, such as plug-in and pseudo-outcome metrics, face two challenges. First, they must determine the metric form and the underlying machine learning models for fitting nuisance parameters (e.g., outcome function, propensity function, and plug-in learner). Second, they lack a specific focus on selecting a robust CATE estimator. To address these challenges, this paper introduces a Distributionally Robust Metric (DRM) for CATE estimator selection. The proposed DRM is nuisance-free, eliminating the need to fit models for nuisance parameters, and it effectively prioritizes the selection of a distributionally robust CATE estimator. The experimental results validate the effectiveness of the DRM method in selecting CATE estimators that are robust to the distribution shift incurred by covariate shift and hidden confounders.","url_abs":"https://arxiv.org/abs/2402.18392v2","url_pdf":"https://arxiv.org/pdf/2402.18392v2.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":"unveiling-the-potential-of-robustness-in","repo_url":"https://github.com/yiyhuang3/cate_estimator_selection","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"causal-inference","task_name":"Causal Inference"},{"task_slug":"decision-making","task_name":"Decision Making"},{"task_slug":"model-selection","task_name":"Model Selection"},{"task_slug":null,"task_name":"counterfactual"}],"methods":[{"method_slug":"causal-inference","method_name":"Causal inference"},{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2402.18392","atlas_url":"https://app.syntology.ai/?focus=2402.18392","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.18392"}},"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":"deterministic:regex_extraction","url":"https://github.com/yiyhuang3/CATE_estimator_selection","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yiyhuang3/cate_estimator_selection","reach":{"status":"ok"}}],"summary":{"ran":6,"ran_fixture":1,"unverified":3},"by_repo_kind":{"official":{"samples":10,"ran":7,"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":10,"samples":[{"code_sha256_prefix":"c0b7de9f060ca771","entry":"estimate_V","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"KL_scorer.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/KL_scorer.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":"c0b7de9f060ca771"}},{"code_sha256_prefix":"91ab40c5f23aebeb","entry":"get_one_data_set","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"util.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/util.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":"91ab40c5f23aebeb"}},{"code_sha256_prefix":"14ff1a69483300bd","entry":"kl_nn","repo":"yiyhuang3/cate_estimator_selection","repo_kind":"official","path":"KL_scorer.py","file_url":"https://github.com/yiyhuang3/cate_estimator_selection/blob/HEAD/KL_scorer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"14ff1a69483300bd"}},{"code_sha256_prefix":"a8e7bea8c80668de","entry":"load_data","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"main_experiment.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/main_experiment.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":"a8e7bea8c80668de"}},{"code_sha256_prefix":"9870ae099452182f","entry":"load_data_npz","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"util.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/util.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":"9870ae099452182f"}},{"code_sha256_prefix":"b1e316d75fbfd576","entry":"net_loss","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"method.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/method.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":"b1e316d75fbfd576"}},{"code_sha256_prefix":"f51d3c9f5f14275f","entry":"prepare_ihdp_data","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"util.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/util.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":"f51d3c9f5f14275f"}},{"code_sha256_prefix":"15d09a2a3ca8871f","entry":"generate_inner","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"ACIC_generate.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/ACIC_generate.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":"15d09a2a3ca8871f"}},{"code_sha256_prefix":"2cea308a9e5bdb95","entry":"get_acic_covariates","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"ACIC_generate.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/ACIC_generate.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":"2cea308a9e5bdb95"}},{"code_sha256_prefix":"56d252c766b19ec0","entry":"sigmoid","repo":"yiyhuang3/CATE_estimator_selection","repo_kind":"official","path":"ACIC_generate.py","file_url":"https://github.com/yiyhuang3/CATE_estimator_selection/blob/HEAD/ACIC_generate.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":"56d252c766b19ec0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}