Saltar al contenido

# inferencia-causal-practica-con-dowhy-y-grafos-dirigidos-dags

Inferencia Causal Práctica con DoWhy y Grafos Dirigidos (DAGs)

Volver a la portada del curso
Proyecto

Proyecto Final de Inferencia Causal

Sección 6 · Proyecto Final de Inferencia Causal

Proyecto final de inferencia causal

Un análisis causal se juzga por la claridad de sus supuestos y por lo bien que resisten las pruebas, no por la sofisticación del estimador. En este proyecto estimas el efecto de un programa de capacitación laboral sobre el ingreso mensual y lo presentas como un reporte técnico breve, dirigido a quien decide si el programa continúa. Este enunciado, con la rúbrica, también se adjunta en PDF.

El encargo

Usa generar_capacitacion(n=4000, semilla=3) (la función está en la lección de implementación). La pregunta es: ¿cuánto aumenta el ingreso mensual de una persona si toma el programa? Debes entregar:

  1. Un DAG justificado, con el papel de cada variable (confusor, mediador, colisionador).
  2. El estimando identificado por DoWhy y el conjunto de ajuste.
  3. La estimación del efecto total con al menos tres estimadores y un intervalo de confianza.
  4. Las pruebas de validación: independencias del grafo, una prueba negativa, una de estabilidad y un análisis de sensibilidad.
  5. Una recomendación de una página.

Estructura del reporte

  1. Pregunta y datos (1 párrafo): población, tratamiento, resultado y la comparación ingenua.
  2. Supuestos (1 figura + 1 tabla): el DAG y la clasificación de variables, con una frase de justificación por flecha no obvia.
  3. Identificación (1 párrafo): el estimando de puerta trasera y por qué no se ajusta por horas ni se filtra por responde.
  4. Estimación (1 tabla): estimadores, valores e intervalo. Añade las dos estimaciones incorrectas (con el mediador y solo con quienes respondieron) como contraste.
  5. Validación (1 tabla): cada refutador con su nuevo efecto y su valor p, y el resultado de refute_graph.
  6. Sensibilidad y conclusión (1 párrafo): qué tan fuerte tendría que ser un confusor oculto para que el efecto dejara de ser positivo, y la recomendación.

Código mínimo para la tabla de estimadores

metodos = ["linear_regression",
           "propensity_score_weighting",
           "propensity_score_matching",
           "propensity_score_stratification"]
filas = []
for metodo in metodos:
    est = modelo.estimate_effect(
        estimando, method_name="backdoor." + metodo)
    filas.append({"metodo": metodo,
                  "efecto": round(est.value, 1)})
print(pd.DataFrame(filas).to_string(index=False))

Rúbrica (100 puntos)

  • DAG y supuestos (25): grafo completo y acíclico, papeles de las variables correctos y justificados.
  • Identificación (15): estimando y conjunto de ajuste correctos; explica mediador y colisionador.
  • Estimación (20): al menos tres estimadores, intervalo de confianza y contraste con los errores tentadores.
  • Validación (25): refute_graph con dos valores de k, prueba placebo, prueba de estabilidad y sensibilidad con fuerzas explícitas.
  • Comunicación y reproducibilidad (15): la recomendación se sigue de los resultados y el notebook corre de principio a fin.

Extensiones opcionales

  • Estima el efecto directo (ajustando por horas) y descompón el efecto total en directo y mediado.
  • Repite con semilla=5 y compara la variabilidad entre estimadores.
  • Estima el efecto por grupos de educación con effect_modifiers y discute si el programa conviene más a algún grupo.

Trampas comunes

  • Presentar el estimador "que más se acerca" sin justificarlo antes de verlo.
  • Decir que los refutadores "prueban" el efecto: solo muestran que no se detectó un problema.
  • Omitir el análisis de sensibilidad porque los refutadores pasaron.

Cierre

Un buen reporte causal cabe en dos páginas: un DAG, dos tablas y una conclusión con sus supuestos explícitos. Si quien lo lee puede señalar qué flecha tendría que estar mal para cambiar tu recomendación, el trabajo está completo.

Recursos