{"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/invariant-ancestry-search","title":"Invariant Ancestry Search","arxiv_id":"2202.00913","date":"2022-02-02","proceeding":null,"authors":["Phillip B. Mogensen","Nikolaj Thams","Jonas Peters"],"abstract":"Recently, methods have been proposed that exploit the invariance of prediction models with respect to changing environments to infer subsets of the causal parents of a response variable. If the environments influence only few of the underlying mechanisms, the subset identified by invariant causal prediction (ICP), for example, may be small, or even empty. We introduce the concept of minimal invariance and propose invariant ancestry search (IAS). In its population version, IAS outputs a set which contains only ancestors of the response and is a superset of the output of ICP. When applied to data, corresponding guarantees hold asymptotically if the underlying test for invariance has asymptotic level and power. We develop scalable algorithms and perform experiments on simulated and real data.","url_abs":"https://arxiv.org/abs/2202.00913v2","url_pdf":"https://arxiv.org/pdf/2202.00913v2.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":"invariant-ancestry-search","repo_url":"https://github.com/phillipmogensen/invariantancestrysearch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2202.00913","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2202.00913"}},"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/phillipmogensen/invariantancestrysearch","reach":null}],"summary":{"ran_draft_wrong":4,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"08f047b1fd146ae8","entry":"MarkovBlanket","repo":"phillipmogensen/invariantancestrysearch","repo_kind":"official","path":"InvariantAncestrySearch/IASfunctions.py","file_url":"https://github.com/phillipmogensen/invariantancestrysearch/blob/HEAD/InvariantAncestrySearch/IASfunctions.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"08f047b1fd146ae8"}},{"code_sha256_prefix":"68039e30b462eb02","entry":"getIP_ANcheat","repo":"phillipmogensen/invariantancestrysearch","repo_kind":"official","path":"InvariantAncestrySearch/IASfunctions.py","file_url":"https://github.com/phillipmogensen/invariantancestrysearch/blob/HEAD/InvariantAncestrySearch/IASfunctions.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"68039e30b462eb02"}},{"code_sha256_prefix":"09081dcf6b856d7e","entry":"powerset","repo":"phillipmogensen/invariantancestrysearch","repo_kind":"official","path":"InvariantAncestrySearch/IASfunctions.py","file_url":"https://github.com/phillipmogensen/invariantancestrysearch/blob/HEAD/InvariantAncestrySearch/IASfunctions.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"09081dcf6b856d7e"}},{"code_sha256_prefix":"576781e89dbe2309","entry":"to_dagitty","repo":"phillipmogensen/invariantancestrysearch","repo_kind":"official","path":"InvariantAncestrySearch/IASfunctions.py","file_url":"https://github.com/phillipmogensen/invariantancestrysearch/blob/HEAD/InvariantAncestrySearch/IASfunctions.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"576781e89dbe2309"}},{"code_sha256_prefix":"1e3c70b9851a3f83","entry":"CheckRes","repo":"phillipmogensen/invariantancestrysearch","repo_kind":"official","path":"simulation_scripts/finite_experiment/d_equal_100/d_equal_100.py","file_url":"https://github.com/phillipmogensen/invariantancestrysearch/blob/HEAD/simulation_scripts/finite_experiment/d_equal_100/d_equal_100.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":"1e3c70b9851a3f83"}},{"code_sha256_prefix":"eb8594a4d6c28ef7","entry":"run","repo":"phillipmogensen/invariantancestrysearch","repo_kind":"official","path":"simulation_scripts/finite_experiment/d_equal_100/d_equal_100.py","file_url":"https://github.com/phillipmogensen/invariantancestrysearch/blob/HEAD/simulation_scripts/finite_experiment/d_equal_100/d_equal_100.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":"eb8594a4d6c28ef7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}