Causal vs Non-Causal Paths in DAGs — How to Detect Bias and Adjust Causal Paths in Clinical Research Using DAGs
🎯 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.