¿A causa B? Un DAG, do(A) y un posterior
Hipótesis: mostrar el anuncio (A) sube las suscripciones (B). Tenemos la temporada de alta demanda (C) para probarla o desmentirla. Son tres variables y caben todos los conceptos de Judea Pearl: DAG, confusor, puerta trasera, do(), ajuste, posterior y refutación.
Mundo simulado
Tú controlas la realidad; tu DAG solo la interpreta. Todo en pp (puntos porcentuales).
Antes de empezar: la historia en un minuto
Imagina que eres parte del equipo de marketing de un servicio de suscripción. Durante el Buen Fin (o el Hot Sale, o el Mundial) subiste la inversión en anuncios y las suscripciones se dispararon. ¿La campaña funcionó? Puede que sí. Pero la temporada de alta demanda también sube las suscripciones por sí sola, y además hace que los anuncios lleguen a más gente. La temporada es un tercero escondido que empuja a las dos cosas, y separar su efecto del efecto del anuncio es el problema central de medir incrementalidad.
Esta página te enseña a demostrarlo con números y no solo con sentido común. Usa cuatro ideas: dibujar el mapa de causas (el DAG), preguntar qué pasaría si tú decidieras quién ve el anuncio (do), comparar usuarios de la misma temporada (el ajuste) y medir cuánta duda queda (el posterior).
Correlación: lo que ves a simple vista al comparar usuarios que vieron el anuncio contra los que no. Causal con tu DAG: lo que queda después de quitar la trampa de la temporada. Verdad del simulador: el efecto real que puse yo al crear los datos; en la vida real nunca lo conoces, aquí sirve para saber quién acierta.
En la simulación, cada renglón es un usuario: ¿su visita fue en temporada alta (C)?, ¿vio el anuncio (A)?, ¿se suscribió (B)? Los porcentajes son de juguete, para ilustrar.
Todo se mide en pp, puntos porcentuales.
Cinco cosas para probar
Cada experimento cambia el mundo simulado. Después de hacerlo, mira los números de arriba y lee qué significan. Los números de este texto salen de tu misma simulación. Aquí hablo de "puntos": 1 punto es 1 pp del marcador.
Si no programas, sáltate los bloques de código: el resto se entiende sin ellos.
Diccionario de bolsillo, por si te pierdes
- Correlación
- Dos cosas que suben y bajan juntas. No implica que una cause la otra.
- Causa
- Si cambias A, B cambia. Se prueba con un experimento, o imitándolo con matemáticas.
- DAG
- Grafo dirigido acíclico: un mapa de flechas donde cada flecha dice "esto empuja a esto" y no hay círculos.
- Confusor
- Un tercer factor que empuja a A y a B y crea una relación falsa entre ellos.
- do(A)
- Obligar a A a tomar un valor, como en un experimento. Se corta lo que normalmente decide A.
- Puerta trasera
- Un atajo por el que se cuela correlación sin que A cause B. Se cierra comparando usuarios parecidos.
- Ajustar por C
- Comparar solo dentro de usuarios con el mismo valor de C y luego promediar.
- Efecto causal
- Cuánto cambia B, en promedio, si cambias A.
- Prior
- Lo que crees antes de ver los datos.
- Verosimilitud
- Qué tan bien encaja cada posibilidad con lo que observaste.
- Posterior
- Lo que crees después de ver los datos: valores posibles y qué tan creíbles son.
- Intervalo de credibilidad
- Un rango donde el efecto real cae con cierta probabilidad, por ejemplo %.
- Beta
- Una curva que representa qué tan creíble es cada probabilidad entre 0 y 1.
- Refutar
- Intentar tumbar tu propio resultado con pruebas.
1Modelar: dibuja tu apuesta
Un DAG es un mapa de flechas: cada flecha dice "esto empuja a esto otro". Nada más. Su valor es que te obliga a decir en voz alta qué crees que causa qué, antes de mirar los datos. Aquí la flecha turquesa es la hipótesis (el anuncio genera suscripciones) y las naranjas son la sospecha (la temporada empuja a las dos cosas).
Un DAG (grafo dirigido sin ciclos) es tu apuesta sobre quién causa a quién. La flecha turquesa, A → B, es la hipótesis que queremos probar, así que no se apaga. Lo que decides tú es qué hace la temporada (C): si empuja a A, a B o a los dos. Toca las flechas o usa los botones.
Tu supuesto, en DoWhy
El DAG entra a CausalModel como texto en formato DOT. Los datos son de este mismo mundo simulado, para que lo repitas en tu máquina. Con otra semilla saldrán otros números: esa variación es justo la incertidumbre del paso 4.
2Identificar: ¿se puede calcular?
Aquí contestamos una pregunta previa: ¿se puede saber si A causa B con los datos que tengo? Piensa en el experimento ideal: muestras el anuncio al azar entre los usuarios, sin importar la temporada, y luego cuentas suscripciones. Ahí cualquier diferencia sería culpa del anuncio. Es lo que hace un test A/B o un experimento de incrementalidad. Eso es do(A): obligar a A a tomar un valor.
Casi nunca puedes aleatorizar así, porque la campaña ya corrió, pero el DAG nos dice cómo imitar ese experimento con datos observados: comparando usuarios de la misma temporada.
Antes de tocar un solo dato le preguntamos al DAG: ¿se puede calcular el efecto causal de A sobre B, y con qué fórmula? A eso se le llama identificación.
Ver no es lo mismo que hacer
Ver es P(B | A): de todos los usuarios que vieron el anuncio, ¿cuántos se suscribieron? Hacer es P(B | do(A)): si yo decidiera quién ve el anuncio, sin importar qué haga la temporada, ¿qué pasaría? Al forzar A se cortan todas las flechas que entran a A. Esa es la cirugía de Pearl.
Ver: el mundo como viene
El mercado decide A.
Hacer: do(A)
Yo decido A. Lo que sobra es efecto puro de A sobre B.
Caminos entre A y B
3Estimar: el número
La idea es comparar peras con peras: usuarios de temporada alta que vieron el anuncio contra usuarios de temporada alta que no lo vieron, y lo mismo en temporada normal. Luego se promedian las dos diferencias. Así la temporada ya no puede hacer trampa.
Cómo leer la tabla: cada renglón es un tipo de usuario, según la temporada. Fíjate en las dos columnas de suscripciones: dentro del mismo renglón, ¿cambian mucho entre quienes vieron el anuncio y quienes no? Si casi no cambian, el anuncio hace poco.
Escalera de Pearl: 1) ver, asociaciones; 2) hacer, intervenciones; 3) imaginar, contrafactuales (¿qué habría hecho este usuario sin haber visto el anuncio?). Aquí usamos los peldaños 1 y 2.
4El posterior: cuánta incertidumbre
Si repitieras el estudio con otros usuarios, el número del paso 3 saldría un poco distinto. El posterior es una forma honesta de decirlo: en vez de un solo valor, te da todos los valores creíbles y qué tan creíble es cada uno.
Piensa en un juez. Empieza sin prejuicios (el prior), escucha las pruebas (los datos) y termina con una conclusión que tiene cierto grado de seguridad (el posterior). Una curva angosta significa mucha seguridad; una ancha, poca.
El número del paso 3 es un solo valor, pero con {n} usuarios hay ruido. El posterior contesta: dados los datos que vi, ¿qué valores del efecto causal son creíbles y qué tan creíbles? Sale de la regla de Bayes.
En palabras: lo que crees después = lo que creías antes × qué tan bien encaja cada posibilidad con los datos.
Cómo se calcula, paso a paso
- Prior. Cada probabilidad θ que necesita la fórmula de ajuste (P(suscripción) en cada celda de A y C) arranca como Beta(s, s). En simple: es tu punto de partida antes de ver un solo dato. θ (theta) es solo la probabilidad de suscripción en un tipo de usuario.
- Verosimilitud. En cada celda contamos k usuarios suscritos de n usuarios: k ~ Binomial(n, θ).En simple: cuentas cuántos usuarios se suscribieron entre los que observaste. Eso le dice a Bayes qué probabilidades encajan con lo que pasó.
- Posterior de cada θ. Beta con Binomial es un par conjugado, así que no hay integrales: θ | k ~ Beta(s + k, s + n − k). Sumas éxitos y fracasos a tu prior.En simple: es una cuenta de aciertos y fallos. Cada suscripción empuja la curva hacia arriba y cada usuario que no se suscribió la empuja hacia abajo.
- Propagar por do(). El efecto causal es . Sacas valores de cada Beta, calculas el efecto con cada juego de valores y obtienes efectos posibles.En simple: cada juego de valores es una versión posible del mundo, y π es la proporción de usuarios en temporada alta. Para cada versión calculas el efecto del anuncio; versiones dan efectos.
- Resumir. El histograma de esos efectos es el posterior. De ahí salen la media, un intervalo de credibilidad al % y probabilidades como P(efecto > 0).
Cómo leer la gráfica: el eje horizontal es el efecto del anuncio sobre la probabilidad de suscribirse, y 0 significa que no hace nada. Donde la curva es más alta, ese valor es más creíble. La curva naranja es lo que dice la correlación; la turquesa, lo que dice el análisis causal.
El intervalo de credibilidad al % es un rango donde, según tus datos y tu prior, cae el efecto real con % de probabilidad. P(efecto > 0) es la probabilidad de que el anuncio sí aumente las suscripciones.
DoWhy te da el estimado puntual. El posterior lo armamos aparte con Beta y Binomial, que es lo mismo que haría PyMC en un modelo más grande.
5Refutar: intenta romperlo
Refutar es hacer de abogado del diablo: intentas tumbar tu propia conclusión con varias pruebas. Si resiste, puedes confiar un poco más. Pero pasar las pruebas nunca demuestra que tienes razón, solo que no encontraste cómo romperla.
Refutar es atacar tu propio resultado. DoWhy corre pruebas que deberían pasar si el modelo es sensato.
Lo que te llevas
- El DAG son tus supuestos
- Los datos no dicen si las flechas están bien puestas. Esa parte la aportas tú.
- Hacer no es ver
- do(A) corta las flechas que entran a A. Ver mezcla causa y confusión.
- Puerta trasera
- Si bloqueas los caminos que entran a A, ver se convierte en hacer. Eso es ajustar por C.
- Posterior
- Prior por verosimilitud en cada celda, propagado por la fórmula de ajuste.
- Refutar no es probar
- Las pruebas te avisan si algo se rompe, pero no detectan un confusor que no mediste.