Skip to content

Implement Cyclic IDC#361

Draft
cthoyt wants to merge 4 commits intomainfrom
cyclic-idc
Draft

Implement Cyclic IDC#361
cthoyt wants to merge 4 commits intomainfrom
cyclic-idc

Conversation

@cthoyt
Copy link
Member

@cthoyt cthoyt commented Jan 1, 2026

This PR proposes a cyclic variant of IDC building off the Cyclic ID algorithm implemented in #355

  1. Generalize rule 2 of do-calculus to use sigma separation (works in cyclic graphs) instead of d-separation
  2. Implement Cyclic IDC using the same application of rule 2 of do-calculus, but use the cyclic ID on the base case instead of regular ID

Question for @djinnome: is there already a paper proposing a cyclic IDC algorithm? If not, is this theoretically sound? Can we propose a toy example where this makes sense?

cc @emilydogbatsePNNL2025

@emilydogbatsePNNL2025
Copy link
Collaborator

this is an interesting thought. would love to hear what @djinnome thinks!

@djinnome
Copy link
Contributor

djinnome commented Jan 6, 2026

The sigma calculus is a generalization of the do calculus for cyclic graphs, so it stands to reason that if we transform the consolidated districts of a cyclic graph to an equivalent ADMG, then in theory, IDC should work just fine. Appendix A of the cyclic ID paper strongly suggests that the transformation should also work for ID* and IDC*, too. Perhaps we should reach out to Forre and Mooij to see what they think?

@cthoyt
Copy link
Member Author

cthoyt commented Jan 6, 2026

hi @patrickforre @jorismooij, just reaching out because we've been working on implementing some of your ideas for identification on DMGs containing cycles in this repository ($Y_0$ Causal Inference Engine)

have you considered extension on the cyclic ID algorithm towards causal queries containing conditionals, similarly to how IDC extends ID?

@jorismooij
Copy link

jorismooij commented Jan 27, 2026 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants