Causal vs Non-Causal Paths in DAGs — How to Detect Bias and Adjust Causal Paths in Clinical Research Using DAGs
- Mayta
- May 7
- 2 min read
🎯 Objectives
By the end, you’ll be able to:
✅ Distinguish causal from non-causal paths ✅ Diagnose if a path is open or closed ✅ Know when to adjust to block bias ✅ Simulate path logic using DAGitty
🩺 Fresh Clinical Setup (New Example)
Does giving intravenous fluids within 15 minutes reduce the incidence of hypotension in dengue shock patients in the ED?
Exposure (X): Early IV fluids
Outcome (Y): Hypotension
Confounder (C): Shock severity
Mediator (M): Blood volume recovery
Collider (Z): ED length of stay
Effect Modifier: Initial hematocrit level
🧬 1. Causal Path = What You Want to Measure
🔗 Causal Path Example:
EarlyFluids → BloodVolumeRecovery → Hypotension
This path transmits the real effect of treatment.
Keep it open if estimating the total effect.
Adjust only if interested in direct effect (e.g., Fluids → Hypotension without mediation via volume recovery).
🧠 Total Effect = Direct + Indirect
⚠️ 2. Non-Causal Path = Where Bias Leaks In
These are routes that mimic the association between exposure and outcome but aren’t due to the intervention.
🛑 Non-Causal Path #1: Confounding (Backdoor)
EarlyFluids ← ShockSeverity → Hypotension
This is a classic backdoor path
Open by default — must be blocked by adjusting
If ignored, it creates a false attribution of effect
✅ Action: Adjust for ShockSeverity to close this path
🧨 Non-Causal Path #2: Collider Bias
EarlyFluids → EDLengthOfStay ← Hypotension
This path is naturally closed
Adjusting for the collider (ED stay) opens a spurious path
Creates a collider stratification bias
❌ Never adjust for colliders
🔍 Secret Insight: Colliders are seductive—they feel like good control variables. Don’t fall for it.
📊 3. Open vs Closed: The Real Mechanism
Path Type | Example | Open/Closed? | Adjust? | Why? |
Causal Path | X → M → Y | ✅ Open | ❌ | Transmits treatment effect |
Backdoor Confounder | X ← C → Y | ✅ Open | ✅ | Opens false link unless blocked |
Collider Path | X → Z ← Y | ❌ Closed | ❌ | Adjusting opens bias |
DAG Rule of Thumb:
Open + Non-Causal = BAD (must block)
Open + Causal = GOOD (don’t block)
Closed + Non-Causal = GOOD (leave alone)
🧮 4. Visualized in DAGitty
dagitty
dag {
ShockSeverity -> EarlyFluids
ShockSeverity -> Hypotension
EarlyFluids -> BloodVolumeRecovery
BloodVolumeRecovery -> Hypotension
EarlyFluids -> EDLengthOfStay
Hypotension -> EDLengthOfStay
}
✅ Adjustment Set: ShockSeverity 🚫 Avoid adjusting: EDLengthOfStay, BloodVolumeRecovery (if total effect)
📋 5. DAG Path Review Table
Path | Type | Adjust? | Why? |
EarlyFluids → Hypotension | Direct causal | ❌ | This is your effect of interest |
EarlyFluids → Volume → Hypo | Mediated causal | ❌ | Leave open for total effect |
EarlyFluids ← Severity → Hypo | Confounding | ✅ | Must close this bias path |
EarlyFluids → LOS ← Hypo | Collider | ❌ | Closed by default; adjusting creates false path |
✅ Key Takeaways
Causal paths transmit signal — leave open unless isolating direct effect.
Non-causal paths transmit bias — must be blocked if open.
Confounding = adjust to close; Collider = avoid adjusting.
DAGitty confirms whether your chosen adjustment kills bias or kills effect.
Comments