{"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/kernel-conditional-moment-constraints-for","title":"Kernel Conditional Moment Constraints for Confounding Robust Inference","arxiv_id":"2302.13348","date":"2023-02-26","proceeding":null,"authors":["Kei Ishikawa","Niao He"],"abstract":"We study policy evaluation of offline contextual bandits subject to unobserved confounders. Sensitivity analysis methods are commonly used to estimate the policy value under the worst-case confounding over a given uncertainty set. However, existing work often resorts to some coarse relaxation of the uncertainty set for the sake of tractability, leading to overly conservative estimation of the policy value. In this paper, we propose a general estimator that provides a sharp lower bound of the policy value. It can be shown that our estimator contains the recently proposed sharp estimator by Dorn and Guo (2022) as a special case, and our method enables a novel extension of the classical marginal sensitivity model using f-divergence. To construct our estimator, we leverage the kernel method to obtain a tractable approximation to the conditional moment constraints, which traditional non-sharp estimators failed to take into account. In the theoretical analysis, we provide a condition for the choice of the kernel which guarantees no specification error that biases the lower bound estimation. Furthermore, we provide consistency guarantees of policy evaluation and learning. In the experiments with synthetic and real-world data, we demonstrate the effectiveness of the proposed method.","url_abs":"https://arxiv.org/abs/2302.13348v2","url_pdf":"https://arxiv.org/pdf/2302.13348v2.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":"kernel-conditional-moment-constraints-for","repo_url":"https://github.com/kstoneriv3/confounding-robust-inference-old","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"kernel-conditional-moment-constraints-for","repo_url":"https://github.com/kstoneriv3/confounding-robust-inference","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"multi-armed-bandits","task_name":"Multi-Armed Bandits"},{"task_slug":"sensitivity","task_name":"Sensitivity"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2302.13348","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.13348"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kstoneriv3/confounding-robust-inference","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kstoneriv3/confounding-robust-inference-old","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":17},"by_repo_kind":{"official":{"samples":9,"ran":0,"repositories":1},"listed":{"samples":8,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"7796c220a2ef55ef","entry":"apply_black_magic","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/estimators/kcmc.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/estimators/kcmc.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7796c220a2ef55ef"}},{"code_sha256_prefix":"d9d53255711b0de6","entry":"as_tensor","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/utils/types.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/utils/types.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9d53255711b0de6"}},{"code_sha256_prefix":"d668cc89fa16f23f","entry":"estimate_p_t","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/data_binary.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/data_binary.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d668cc89fa16f23f"}},{"code_sha256_prefix":"c2b0de5d429130d0","entry":"estimate_p_t","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/data_continuous.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/data_continuous.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2b0de5d429130d0"}},{"code_sha256_prefix":"212507fb5a1cb43c","entry":"evaluate_policy","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/data_binary.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/data_binary.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"212507fb5a1cb43c"}},{"code_sha256_prefix":"92802e330a871651","entry":"evaluate_policy","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/data_continuous.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/data_continuous.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"92802e330a871651"}},{"code_sha256_prefix":"85c21527f1667191","entry":"find_method_names","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/utils/docs.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/utils/docs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"85c21527f1667191"}},{"code_sha256_prefix":"6bf9c395e73ff0c4","entry":"find_methods","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/utils/docs.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/utils/docs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6bf9c395e73ff0c4"}},{"code_sha256_prefix":"efa0b6a8184124f0","entry":"find_parent_classes_with_method_docstring","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/utils/docs.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/utils/docs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"efa0b6a8184124f0"}},{"code_sha256_prefix":"7183e20cd75cfd98","entry":"generate_data","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/data_binary.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/data_binary.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7183e20cd75cfd98"}},{"code_sha256_prefix":"c7f42d4663c6fe4d","entry":"generate_data","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/data_continuous.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/data_continuous.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c7f42d4663c6fe4d"}},{"code_sha256_prefix":"14d72f0a39adc134","entry":"get_data","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/experiment_policy_evaluation.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/experiment_policy_evaluation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"14d72f0a39adc134"}},{"code_sha256_prefix":"27ab0086abac400d","entry":"get_hajek_constraints","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/estimators/constraints.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/estimators/constraints.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"27ab0086abac400d"}},{"code_sha256_prefix":"acada98a30d3ca55","entry":"get_multipliers","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/estimators/ncmc.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/estimators/ncmc.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"acada98a30d3ca55"}},{"code_sha256_prefix":"1bccadf4ce63ff7b","entry":"get_normal_ci","repo":"kstoneriv3/confounding-robust-inference","repo_kind":"listed","path":"confounding_robust_inference/estimators/misc.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference/blob/HEAD/confounding_robust_inference/estimators/misc.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1bccadf4ce63ff7b"}},{"code_sha256_prefix":"0fb486d9a4b3bf40","entry":"hajek","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/estimators.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/estimators.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0fb486d9a4b3bf40"}},{"code_sha256_prefix":"b1404ab21db97d52","entry":"ipw","repo":"kstoneriv3/confounding-robust-inference-old","repo_kind":"official","path":"kcmc/estimators.py","file_url":"https://github.com/kstoneriv3/confounding-robust-inference-old/blob/HEAD/kcmc/estimators.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b1404ab21db97d52"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}