# inferencia-causal-practica-con-dowhy-y-grafos-dirigidos-dags
Inferencia Causal Práctica con DoWhy y Grafos Dirigidos (DAGs)
Volver a la portada del cursoProyecto 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:
- Un DAG justificado, con el papel de cada variable (confusor, mediador, colisionador).
- El estimando identificado por DoWhy y el conjunto de ajuste.
- La estimación del efecto total con al menos tres estimadores y un intervalo de confianza.
- Las pruebas de validación: independencias del grafo, una prueba negativa, una de estabilidad y un análisis de sensibilidad.
- Una recomendación de una página.
Estructura del reporte
- Pregunta y datos (1 párrafo): población, tratamiento, resultado y la comparación ingenua.
- Supuestos (1 figura + 1 tabla): el DAG y la clasificación de variables, con una frase de justificación por flecha no obvia.
- Identificación (1 párrafo): el estimando de puerta trasera y por qué no se ajusta por
horasni se filtra porresponde. - Estimación (1 tabla): estimadores, valores e intervalo. Añade las dos estimaciones incorrectas (con el mediador y solo con quienes respondieron) como contraste.
- Validación (1 tabla): cada refutador con su nuevo efecto y su valor p, y el resultado de
refute_graph. - 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_graphcon dos valores dek, 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=5y compara la variabilidad entre estimadores. - Estima el efecto por grupos de educación con
effect_modifiersy 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.