analyze_dag
Analyzes a causal DAG to determine identifiability, unmeasured confounding, and minimal sufficient adjustment sets for estimating causal effects from exposure to outcome.
Instructions
Returns identifiability status and minimal adjustment sets given the DAG provided. Specifically: open backdoor paths from exposure to outcome (Pearl 2009 Theorem 3.3.2), the minimal sufficient adjustment sets that block them, and all directed paths.
Accepts either a canonical DAG object or a dagitty_string. Returns a diagnostics block summarizing identifiability, unmeasured confounding, and any flagged issues, plus a static concordance attestation for the engine release.
DAG Studio verifies analyses given a DAG. It does not verify that the DAG correctly encodes domain knowledge or that the variables are measurable in any specific dataset. Outputs are conditional on the encoded structure.
When the DAG is meant to depict a paper's causal model, the encoded structure should reflect the paper's own structural assumptions, including those implicit in its analytical approach (what is adjusted for, what is treated as exposure or outcome, what is decomposed into mediators, what is acknowledged as unmeasured or latent confounding, and what is conditioned on as a collider), rather than an external theoretical framing imported from other literature. If the paper contains no explicit DAG, surface the construct-vs-reproduce ambiguity to the user before treating downstream analysis as a reproduction of the paper.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| edges | No | ||
| nodes | No | ||
| outcome | No | ||
| exposure | No | ||
| dagitty_string | No | Alternative input: dagitty('dag { ... }') DSL parsed before analysis. |