{"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/on-the-parameter-identifiability-of-partially","title":"On the Parameter Identifiability of Partially Observed Linear Causal Models","arxiv_id":"2407.16975","date":"2024-07-24","proceeding":null,"authors":["Xinshuai Dong","Ignavier Ng","Biwei Huang","Yuewen Sun","Songyao Jin","Roberto Legaspi","Peter Spirtes","Kun Zhang"],"abstract":"Linear causal models are important tools for modeling causal dependencies and yet in practice, only a subset of the variables can be observed. In this paper, we examine the parameter identifiability of these models by investigating whether the edge coefficients can be recovered given the causal structure and partially observed data. Our setting is more general than that of prior research - we allow all variables, including both observed and latent ones, to be flexibly related, and we consider the coefficients of all edges, whereas most existing works focus only on the edges between observed variables. Theoretically, we identify three types of indeterminacy for the parameters in partially observed linear causal models. We then provide graphical conditions that are sufficient for all parameters to be identifiable and show that some of them are provably necessary. Methodologically, we propose a novel likelihood-based parameter estimation method that addresses the variance indeterminacy of latent variables in a specific way and can asymptotically recover the underlying parameters up to trivial indeterminacy. Empirical studies on both synthetic and real-world datasets validate our identifiability theory and the effectiveness of the proposed method in the finite-sample regime. Code: https://github.com/dongxinshuai/scm-identify.","url_abs":"https://arxiv.org/abs/2407.16975v2","url_pdf":"https://arxiv.org/pdf/2407.16975v2.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":"on-the-parameter-identifiability-of-partially","repo_url":"https://github.com/dongxinshuai/scm-identify","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"parameter-estimation","task_name":"parameter estimation"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2407.16975","atlas_url":"https://app.syntology.ai/?focus=2407.16975","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.16975"}},"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/dongxinshuai/scm-identify","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":8,"unverified":1},"by_repo_kind":{"official":{"samples":9,"ran":8,"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":"023237ccf04802f6","entry":"extract_graph_edges","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"pytetrad/utils.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/pytetrad/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"023237ccf04802f6"}},{"code_sha256_prefix":"571d798439a11843","entry":"extract_graph_nodes","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"pytetrad/utils.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/pytetrad/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"571d798439a11843"}},{"code_sha256_prefix":"eb9db603347e0c5e","entry":"generate_adjacency_matrix_ordered","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"pytetrad/utils.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/pytetrad/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"eb9db603347e0c5e"}},{"code_sha256_prefix":"2c0303ade8044f0f","entry":"get_cov_V_by_trek","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"ParameterLearning/linear_parameter_identification.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/ParameterLearning/linear_parameter_identification.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2c0303ade8044f0f"}},{"code_sha256_prefix":"06611de7ad2b51b0","entry":"graphs_to_probs","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"pytetrad/visualize.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/pytetrad/visualize.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"06611de7ad2b51b0"}},{"code_sha256_prefix":"8b9e6f041fd74427","entry":"parameter_by_trek","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"ParameterLearning/linear_parameter_identification.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/ParameterLearning/linear_parameter_identification.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8b9e6f041fd74427"}},{"code_sha256_prefix":"6868e44567fe9ad5","entry":"tetrad_graph_to_pcalg","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"pytetrad/translate.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/pytetrad/translate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6868e44567fe9ad5"}},{"code_sha256_prefix":"94192dfd38028e02","entry":"write_gdot","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"pytetrad/visualize.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/pytetrad/visualize.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"94192dfd38028e02"}},{"code_sha256_prefix":"8dae5f0ad0668279","entry":"parameter_standard","repo":"dongxinshuai/scm-identify","repo_kind":"official","path":"ParameterLearning/linear_parameter_identification.py","file_url":"https://github.com/dongxinshuai/scm-identify/blob/HEAD/ParameterLearning/linear_parameter_identification.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8dae5f0ad0668279"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}