{"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/arxiv-2604-05829","title":"Bivariate Causal Discovery Using Rate-Distortion MDL: An Information Dimension Approach","arxiv_id":"2604.05829","date":"2026-04-07","proceeding":null,"authors":["Tiago Brogueira","Mário A. T. Figueiredo"],"abstract":"Approaches to bivariate causal discovery based on the minimum description length (MDL) principle approximate the (uncomputable) Kolmogorov complexity of the models in each causal direction, selecting the one with the lower total complexity. The premise is that nature's mechanisms are simpler in their true causal order. Inherently, the description length (complexity) in each direction includes the description of the cause variable and that of the causal mechanism. In this work, we argue that current state-of-the-art MDL-based methods do not correctly address the problem of estimating the description length of the cause variable, effectively leaving the decision to the description length of the causal mechanism. Based on rate-distortion theory, we propose a new way to measure the description length of the cause, corresponding to the minimum rate required to achieve a distortion level representative of the underlying distribution. This distortion level is deduced using rules from histogram-based density estimation, while the rate is computed using the related concept of information dimension, based on an asymptotic approximation. Combining it with a traditional approach for the causal mechanism, we introduce a new bivariate causal discovery method, termed rate-distortion MDL (RDMDL). We show experimentally that RDMDL achieves competitive performance on the Tübingen dataset. All the code and experiments are publicly available at github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data.","url_abs":"https://arxiv.org/abs/2604.05829","url_pdf":"https://arxiv.org/pdf/2604.05829","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2604.05829","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2604.05829"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","reach":null}],"summary":{"ran_draft_wrong":5,"ran":1,"ran_violates":1,"ran_fixture":1,"ran_honours":2},"by_repo_kind":{"found_in_text":{"samples":10,"ran":10,"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":"49afac41d65a5eda","entry":"H","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"49afac41d65a5eda"}},{"code_sha256_prefix":"387b32adf23cf416","entry":"compute_mdl_fit_v2","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"387b32adf23cf416"}},{"code_sha256_prefix":"8c410a7be2bf49bc","entry":"fit_explog","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8c410a7be2bf49bc"}},{"code_sha256_prefix":"22263901c17bf8da","entry":"fit_polynomial","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"22263901c17bf8da"}},{"code_sha256_prefix":"add24abc5b050b3f","entry":"fit_reciprocal","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"add24abc5b050b3f"}},{"code_sha256_prefix":"6c51d73c91e05f8e","entry":"information_dimension","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6c51d73c91e05f8e"}},{"code_sha256_prefix":"ed1aa7db70059629","entry":"mdl_lengthv2","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ed1aa7db70059629"}},{"code_sha256_prefix":"7070698f044f8eba","entry":"rdmdl","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7070698f044f8eba"}},{"code_sha256_prefix":"c70e32f91df894ec","entry":"resolution","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c70e32f91df894ec"}},{"code_sha256_prefix":"48e3b17a3707639b","entry":"shimazaki_shinomoto","repo":"tiagobrogueira/Causal-Discovery-In-Exchangeable-Data","repo_kind":"found_in_text","path":"bicausal/methods/RDMDL.py","file_url":"https://github.com/tiagobrogueira/Causal-Discovery-In-Exchangeable-Data/blob/HEAD/bicausal/methods/RDMDL.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"48e3b17a3707639b"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}