{"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/causal-discovery-of-linear-non-gaussian","title":"Causal Discovery of Linear Non-Gaussian Causal Models with Unobserved Confounding","arxiv_id":"2408.04907","date":"2024-08-09","proceeding":null,"authors":["Daniela Schkoda","Elina Robeva","Mathias Drton"],"abstract":"We consider linear non-Gaussian structural equation models that involve latent confounding. In this setting, the causal structure is identifiable, but, in general, it is not possible to identify the specific causal effects. Instead, a finite number of different causal effects result in the same observational distribution. Most existing algorithms for identifying these causal effects use overcomplete independent component analysis (ICA), which often suffers from convergence to local optima. Furthermore, the number of latent variables must be known a priori. To address these issues, we propose an algorithm that operates recursively rather than using overcomplete ICA. The algorithm first infers a source, estimates the effect of the source and its latent parents on their descendants, and then eliminates their influence from the data. For both source identification and effect size estimation, we use rank conditions on matrices formed from higher-order cumulants. We prove asymptotic correctness under the mild assumption that locally, the number of latent variables never exceeds the number of observed variables. Simulation studies demonstrate that our method achieves comparable performance to overcomplete ICA even though it does not know the number of latents in advance.","url_abs":"https://arxiv.org/abs/2408.04907v1","url_pdf":"https://arxiv.org/pdf/2408.04907v1.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":"causal-discovery-of-linear-non-gaussian","repo_url":"https://github.com/danielaschkoda/relvlingam","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":"causal-discovery","task_name":"Causal Discovery"}],"methods":[{"method_slug":"ica","method_name":"ICA"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2408.04907","atlas_url":"https://app.syntology.ai/?focus=2408.04907","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.04907"}},"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/danielaschkoda/relvlingam","reach":null}],"summary":{"ran_honours":1,"ran_draft_wrong":1},"by_repo_kind":{"official":{"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":0,"samples":[{"code_sha256_prefix":"4df70f3abb2fd397","entry":"get_all_argminima","repo":"danielaschkoda/relvlingam","repo_kind":"official","path":"relvlingam/ReLVLiNGAM.py","file_url":"https://github.com/danielaschkoda/relvlingam/blob/HEAD/relvlingam/ReLVLiNGAM.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4df70f3abb2fd397"}},{"code_sha256_prefix":"96714f90f2fb4843","entry":"tensor_outer_product","repo":"danielaschkoda/relvlingam","repo_kind":"official","path":"relvlingam/ReLVLiNGAM.py","file_url":"https://github.com/danielaschkoda/relvlingam/blob/HEAD/relvlingam/ReLVLiNGAM.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96714f90f2fb4843"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}