# Variables Instrumentales {#sec-iv}
## Objetivos de aprendizaje
Al finalizar este capítulo, serás capaz de:
- Definir una variable instrumental
- Verificar las condiciones de validez de un instrumento
- Aplicar estimación por mínimos cuadrados en dos etapas (2SLS)
- Interpretar efectos locales (LATE)
## ¿Qué es una variable instrumental?
Una **variable instrumental** (IV) es una variable que afecta la exposición pero no tiene efecto directo sobre el resultado, excepto a través de la exposición.
```{r}
#| label: fig-iv-dag
#| fig-cap: "DAG de variable instrumental"
#| code-fold: true
library(ggdag)
library(ggplot2)
iv_dag <- dagify(
Y ~ X + U,
X ~ Z + U,
coords = list(
x = c(Z = 0, X = 1, Y = 2, U = 1.5),
y = c(Z = 0, X = 0, Y = 0, U = 1)
),
labels = c(
Z = "Instrumento",
X = "Exposición",
Y = "Resultado",
U = "Confusor\n(no observado)"
)
)
ggdag(iv_dag, text = FALSE, use_labels = "label") +
theme_dag() +
labs(title = "Variable Instrumental")
```
## Condiciones de validez
::: {.callout-important}
## Las tres condiciones
1. **Relevancia**: Z está asociada con X
2. **Independencia**: Z es independiente de confusores no observados (U)
3. **Exclusión**: Z no afecta Y excepto a través de X
:::
### Verificación de relevancia
La condición de relevancia es la única **verificable** empíricamente.
```{r}
#| label: iv-relevance
#| code-fold: false
# Simulación
set.seed(42)
n <- 5000
# Confusor no observado
U <- rnorm(n)
# Instrumento (ej: distancia a hospital)
Z <- rnorm(n)
# Exposición influenciada por Z y U
X <- 0.5 * Z + 0.8 * U + rnorm(n, 0, 0.5)
# Resultado influenciado por X y U
Y <- 2 * X + 1.5 * U + rnorm(n, 0, 1)
datos_iv <- data.frame(Z, X, Y, U)
# Primera etapa: Z -> X
primera_etapa <- lm(X ~ Z, data = datos_iv)
summary(primera_etapa)
# Regla de oro: F > 10
cat("\nF-statistic:",
round(summary(primera_etapa)$fstatistic[1], 1), "\n")
```
## Estimación por 2SLS
El método de **Mínimos Cuadrados en Dos Etapas** (2SLS):
1. **Primera etapa**: Predecir X usando Z
2. **Segunda etapa**: Usar X predicho para estimar el efecto sobre Y
```{r}
#| label: twosls-manual
#| code-fold: false
# Método manual (para entender)
# Etapa 1: Predecir X
etapa1 <- lm(X ~ Z, data = datos_iv)
datos_iv$X_pred <- predict(etapa1)
# Etapa 2: Usar X predicho
etapa2 <- lm(Y ~ X_pred, data = datos_iv)
cat("Efecto estimado por 2SLS:",
round(coef(etapa2)["X_pred"], 3), "\n")
cat("Efecto verdadero: 2\n")
```
### Usando el paquete ivreg
```{r}
#| label: ivreg
#| code-fold: false
library(ivreg)
# Estimación correcta con errores estándar apropiados
modelo_iv <- ivreg(Y ~ X | Z, data = datos_iv)
summary(modelo_iv)
```
## Comparación con OLS
```{r}
#| label: ols-vs-iv
#| code-fold: false
# OLS (sesgado por confusión)
modelo_ols <- lm(Y ~ X, data = datos_iv)
cat("Efecto OLS (sesgado):", round(coef(modelo_ols)["X"], 3), "\n")
cat("Efecto IV:", round(coef(modelo_iv)["X"], 3), "\n")
cat("Efecto verdadero: 2\n")
```
## Efecto Local (LATE)
El estimador IV identifica el **Efecto Promedio del Tratamiento Local** (LATE): el efecto entre los "compliers" (quienes cumplen con la asignación del instrumento).
```{r}
#| label: fig-late
#| fig-cap: "Tipos de individuos según respuesta al instrumento"
#| code-fold: true
tipos <- data.frame(
Tipo = c("Compliers", "Always-takers", "Never-takers", "Defiers"),
Z0_X = c("X=0", "X=1", "X=0", "X=1"),
Z1_X = c("X=1", "X=1", "X=0", "X=0"),
Descripcion = c(
"Tratados solo si Z=1",
"Siempre tratados",
"Nunca tratados",
"Tratados solo si Z=0"
)
)
knitr::kable(tipos,
col.names = c("Tipo", "Si Z=0", "Si Z=1", "Descripción"),
caption = "Tipos de individuos según respuesta al instrumento")
```
::: {.callout-note}
## Supuesto de monotonía
Generalmente asumimos que no hay "defiers" (monotonía). Esto significa que el instrumento solo puede aumentar (o no cambiar) la probabilidad de tratamiento, nunca disminuirla.
:::
## Ejemplos clásicos de instrumentos
| Contexto | Exposición | Instrumento |
|----------|------------|-------------|
| Retornos a educación | Años de educación | Trimestre de nacimiento |
| Efecto de cesárea | Tipo de parto | Preferencia del médico |
| Efecto de transfusión | Volumen transfundido | Distancia al banco de sangre |
| Randomización con incumplimiento | Tratamiento recibido | Asignación aleatoria |
## Instrumentos débiles
Un instrumento **débil** tiene baja correlación con la exposición.
```{r}
#| label: weak-iv
#| code-fold: false
# Instrumento débil
set.seed(123)
Z_debil <- rnorm(n)
X_debil <- 0.05 * Z_debil + 0.8 * U + rnorm(n, 0, 0.5) # Coeficiente pequeño
Y_debil <- 2 * X_debil + 1.5 * U + rnorm(n, 0, 1)
# Primera etapa
etapa1_debil <- lm(X_debil ~ Z_debil)
cat("F-statistic (instrumento débil):",
round(summary(etapa1_debil)$fstatistic[1], 1), "\n")
# IV con instrumento débil
datos_debil <- data.frame(Z = Z_debil, X = X_debil, Y = Y_debil)
modelo_iv_debil <- ivreg(Y ~ X | Z, data = datos_debil)
cat("Efecto IV (instrumento débil):",
round(coef(modelo_iv_debil)["X"], 3), "\n")
cat("Error estándar:",
round(summary(modelo_iv_debil)$coefficients["X", "Std. Error"], 3), "\n")
```
## Diagnósticos para IV
### Test de instrumentos débiles
```{r}
#| label: weak-iv-test
#| code-fold: false
# Test de Cragg-Donald / Kleibergen-Paap
summary(modelo_iv, diagnostics = TRUE)
```
### Test de sobreidentificación
Cuando tienes más de un instrumento, puedes probar la validez del conjunto.
```{r}
#| label: overid-test
#| code-fold: false
# Múltiples instrumentos
Z2 <- Z + rnorm(n, 0, 0.5) # Segundo instrumento
datos_iv$Z2 <- Z2
modelo_iv_multi <- ivreg(Y ~ X | Z + Z2, data = datos_iv)
summary(modelo_iv_multi, diagnostics = TRUE)
```
## Ejercicios
::: {.callout-tip}
## Ejercicio 1
Un economista quiere estimar el efecto de los años de educación sobre el salario. Propone usar la distancia al colegio más cercano como instrumento.
1. Dibuja el DAG
2. Discute la plausibilidad de las tres condiciones
3. ¿Qué población representaría el LATE?
:::
::: {.callout-tip}
## Ejercicio 2
Simula un escenario donde el instrumento viola la restricción de exclusión (Z afecta Y directamente). ¿Qué sucede con la estimación IV?
:::
## Resumen
- Las variables instrumentales permiten identificar efectos causales con confusores no observados
- Requieren tres condiciones: relevancia, independencia y exclusión
- Solo la relevancia es verificable empíricamente
- El método 2SLS es el más común para estimación
- El efecto identificado es el LATE (efecto entre compliers)
- Los instrumentos débiles producen estimaciones sesgadas e imprecisas
## Referencias {.unnumbered}