# Plantilla DAG — DAGitty / ggdag

> El DAG es **tu hipótesis causal hecha gráfico**. Si no podés dibujarlo, no entendés tu identificación.

---

## Mi DAG (sintaxis DAGitty)

Pegá esto en [dagitty.net](http://www.dagitty.net/dags.html) (modelo en línea):

```
dag {
  D [exposure]
  Y [outcome]

  X1 [adjusted]   // confounder observable y ajustado
  X2 [adjusted]   // otro confounder
  U  [unobserved] // confounder NO observable (importante declararlo)
  M             // mediador (NO ajustar si quiero efecto total)
  Z             // instrumento (si aplica)

  D -> Y
  X1 -> D
  X1 -> Y
  X2 -> D
  X2 -> Y
  U  -> D
  U  -> Y
  D -> M -> Y
  Z -> D
}
```

---

## Sintaxis ggdag (R) — para incluir en repo Quarto

```r
library(ggdag)
library(ggplot2)

dag <- dagify(
  Y ~ D + X1 + X2 + U + M,
  D ~ X1 + X2 + U + Z,
  M ~ D,
  exposure = "D",
  outcome = "Y",
  latent = "U"
)

ggdag(dag, text = TRUE, use_labels = "name") +
  theme_dag()

# Identificar el ajuste mínimo suficiente:
ggdag_adjustment_set(dag)
```

---

## Reglas duras (basadas en Cinelli 2024)

**Ajustá por X si:**
- X es un confounder (afecta D y Y por separado)
- Cierra un backdoor path

**NO ajustés por X si:**
- X es un **mediador** del efecto causal (M en el DAG arriba) — bloqueás el efecto que querés estimar
- X es un **collider** (D y Y apuntan a X) — abrís sesgo
- X está en el **descendiente** del outcome
- X es el outcome de otra variable que querés estudiar

---

## Backdoor paths declarados explícitamente

Para mi efecto causal D → Y, los backdoor paths son:

| # | Path (D ← ... → Y) | ¿Bloqueado por? | ¿Observable? |
|---|---|---|---|
| 1 | D ← X1 → Y | Ajustar X1 | Sí |
| 2 | D ← X2 → Y | Ajustar X2 | Sí |
| 3 | D ← U → Y | **NO bloqueable** | No |
| ... | | | |

**Si tengo un backdoor no-bloqueable** (U no observable) → mi efecto causal **no está identificado**. Necesito un Z (instrumento), DiD, regression discontinuity, o sensitivity analysis (Cinelli 2024).

---

## Auto-chequeo

- [ ] Dibujé el DAG en papel **antes** de abrir DAGitty o LLM (humano-first)
- [ ] Declaré explícitamente las variables **no observables** (U)
- [ ] Listé los backdoor paths con su estatus
- [ ] Identifiqué el conjunto de ajuste mínimo suficiente
- [ ] Mi DAG es **falsable** — puedo decir qué patrón empírico lo refutaría

---

## Conexión con Lab L3

→ Llevá este DAG al **Lab L3 (compañero crítico)**. La IA propondrá: confounders omitidos, paths adicionales, supuestos discutibles. **Aceptá/rechazá cada uno con justificación** en `audit-logs/L3-DAG.md`.
