Modelos Causales estructurales

1.5.1 Modelado de Supuestos Causales

En el post anterior cubrimos Gráficos Acíclicos Dirigidos. En esta sección, aprendemos cómo podemos usar los DAG para razonar sobre las suposiciones causales en nuestros modelos.

Matemáticamente, un Modelo Causal Estructural (SCM) consiste en un conjunto de variables Endógenas (V) y un conjunto de variables Exógenas (U) conectadas por un conjunto de funciones (F) que determinan los valores de las variables en V en función de los valores de las variables en U.

Intuitivamente, si pensamos que un DAG representa un flujo de información, entonces las variables U son las entradas al sistema, mientras que las variables V son los nodos donde se procesa esa información.

Cada SCM está asociado con un modelo gráfico (DAG) donde cada nodo es una variable en U o V y cada arista es una función f. Cada arista (función) corresponde a una suposición causal:

  • Si la variable Y es hija de una variable X, entonces decimos que Y es causada por X, o que X es la causa directa de Y.
  • Si la variable Y es la descendiente de una variable X, entonces se dice que Y es potencialmente causada por la X, o que X es la causa potencial de Y.

consideremos el ejemplo en la figura 1.9:

Fig 1.9 — modelo Gráfico de SCM 1.5.1

a partir De un simple vistazo a este gráfico, inmediata e intuitivamente, comprender muchos de los detalles de la base de la SCM:

  • X e Y no tienen bordes entrantes, por lo que son variables exógenas (pertenecientes a U).
  • Z tiene dos aristas entrantes, por lo que es una variable endógena (perteneciente a V).
  • Z tiene dos causas directas X e Y, o, en otras palabras, el valor de Z depende explícitamente de los valores de X e Y y fz = f(X, Y).

Sin embargo, necesitamos la especificación completa del SCM para saber exactamente cuál es la función fz que determina el valor de Z. El Modelo Causal Estructural solo se especifica completamente cuando, además del DAG anterior, también especificamos:

SCM 1.5.1

Aquí es importante tener en cuenta que, aunque Dag contienen menos información que la que se especifica completamente SCM, son a menudo más útil. Los gráficos son objetos extremadamente visuales, lo que los hace más fáciles de interpretar y analizar. Además, a menudo es el caso en el que simplemente no tenemos suficiente información para especificar completamente el SCM, pero podemos definir intuitivamente cómo debería ser el gráfico causal.

Modelos de simulación

Una de las ventajas de un SCM completamente especificado es que son bastante fáciles de simular. Por ejemplo, podemos crear algo falso (determinista) los datos de la SCM descrito anteriormente:

lo Que genera una simple pandas DataFrame con los valores de X, Y y Z:

Yo te perdone si no son particularmente impresionado por este ejemplo. Después de todo, lo único que hicimos fue generar algunos datos falsos basados en una ecuación simple. Esto no es particularmente impresionante, hasta que miramos un poco por debajo de la superficie:

Este DataFrame representa una descripción completamente numérica de nuestro modelo in en otras palabras, esta es una versión de juguete de los datos originales que podrían haberse utilizado, junto con DAG anterior, para adaptarse a la función fz.

Si tratamos este DataFrame como nuestros «datos empíricos» y asumimos (basados en cierto conocimiento del dominio) que fz debe ser una regresión lineal de X e Y, entonces podemos simplemente ajustar Z ~ X + Y:

Para recuperar como coeficientes multiplicando X e Y, respectivamente:

Vamos a ver en mucho más detalle sobre cómo evaluar y ajuste de los Modelos Causales más adelante, pero incluso esta simple juguete modelo ya nos ofrece una muestra de lo que está por venir y la simplicidad (y generalidad) de este enfoque.

Un ejemplo estocástico

Veamos ahora un ejemplo más complejo, SCM 1.5.3. En este caso, el SCM viene dado por:

SCM 1.5.3

From this specification, we can easily obtain the corresponding DAG:

Graphical Model for SCM 1.5.3

We are also told that all exogenous variables are independently distributed with an expected value zero. Esto implica que las variables exógenas corresponden a influencias no observadas en nuestro modelo, por lo que pueden tratarse como factores de error.

Conectar valores aleatorios normalmente distribuidos para Ux, Uy y Uz podemos construir rápidamente un DataFrame especificando los valores de X, Y y Z.

Olvidemos por un segundo que tenemos las fórmulas analíticas explícitas que producen los valores de nuestras variables endógenas y usamos solo los valores numéricos en nuestro DataFrame.

Cualquier pregunta que podamos tener sobre el comportamiento de este modelo puede responderse mediante un procedimiento similar al utilizado anteriormente: ajuste de un modelo lineal (ya que asumimos que todas las dependencias son lineales) donde nuestros valores observados son las variables independientes y nuestras incógnitas son las variables dependientes.

Por ejemplo, si queremos saber cuál podría ser el valor de Z para un valor específico de Y, simplemente ajustaríamos Z ~ Y y luego agregaríamos el valor correspondiente de Y. Si Y=3, entonces el valor esperado de Z es 0.189261, como se puede verificar fácilmente conectando Y=3 en la expresión para fZ anterior (donde vemos rápidamente que Z=3/16).

Por otro lado, ¿cuál sería el valor de Z si además de observar Y=3, también observamos que X=1? Para responder a esta pregunta podría encajar Z~X+Y. Cuando se realice este ajuste, se obtiene:

Donde podemos leer los coeficientes de y y X. Si ahora nos conecte los valores de X y de y, obtenemos Z=0.189821 que es similar al valor obtenido anteriormente.

Podríamos haber adivinado que este sería el resultado mirando la tabla de resumen de arriba. Sembramos que el coeficiente para X es 0.0053±0.003, lo que lo hace muy cercano a cero, prácticamente insignificante.

Si bien esto puede parecer sorprendente, es una de las principales razones por las que esta clase de modelos es tan poderosa.

El valor de una variable endógena específica puede depender solo de los valores de sus padres

Esta simple observación significa que podemos simplificar nuestros cálculos significativamente ignorando cualquier variable que no esté entre los padres de la que nos interesa.

Lo que nos lleva a nuestro siguiente tema

1.5.2 Descomposición del producto

Podemos basarnos en nuestra observación anterior para definir una regla simple pero poderosa, la «Regla de descomposición del producto» que se define en el libro como:

Para cualquier modelo de cuyo grafo es acíclico, la distribución conjunta de las variables en el modelo es dada por el producto de las distribuciones condicionales P(niño|padres) sobre todas las «familias» en el gráfico

Así que para una cadena simple gráfico:

podemos escribir inmediatamente:

Esto significa que en lugar de una tabla grande de observaciones para cada combinación posible de X, y y X, necesitamos mucho más pequeñas mesas para X, Y|X y Z|Y que contendrá la misma información, y son mucho más fáciles de obtener.

Lo que es más importante, los modelos gráficos nos permiten escribir esta descomposición sin necesidad de saber explícitamente nada sobre las funciones subyacentes a cada variable.

In general, we write:

Let us now consider the example in Fig 1.10:

DAG from Fig 1.10 with the associated probability tables.

From this figure, we can immediately write:

and:

Which could also be obtained from the definition of the conditional probability P(X|Z). We can further write:

by the theorem of total probability. And if we plugin the values from the conditional probability tables above, we obtain:

And, similarly:

por último, se puede estimar el efecto sobre la mortalidad (Y=1) de tomar el medicamento (X=1) mediante el cálculo de la diferencia P(Y=1|X=1)-P(Y=1|X=0). Para la población con (Z=1) y sin (Z=0) la enfermedad, tenemos:

Aquí se debe tener claro por qué estamos acondicionado en ambos X y Z: nos están imponiendo que cada individuo pertenece a una población específica (Z) y la lleva o no la medicación (X).

Por otro lado, si queremos un efecto promedio en toda la población, entonces necesitamos condicionar solo el tratamiento (X). En este caso, queremos calcular P(Y=1|X=1)-P(Y=1|X=0). Reescribimos esta expresión como:

Where we can easily plugin the expressions defined above.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.