ML causal para el aspirante a científico de datos

: Limitaciones del aprendizaje automático

Como científico de datos en la era digital actual, debe estar preparado para responder una variedad de preguntas que van mucho más allá del simple reconocimiento de patrones. El aprendizaje automático típico se basa en la asociación; busca encontrar patrones en los datos existentes para predecir observaciones futuras bajo el supuesto de que el sistema subyacente permanece constante. Si entrena un modelo para predecir los precios de la vivienda, le está pidiendo al algoritmo que encuentre el precio más probable dado un conjunto de características.

Sin embargo, el análisis causal introduce un componente de “qué pasaría si”. Va más allá de la observación preguntar cómo reaccionaría el sistema si cambiáramos activamente una variable. Ésta es la diferencia entre darse cuenta de que las personas que compran cafés con leche caros también compran autos deportivos y comprender si bajar el precio de ese café en realidad provocará un aumento en las ventas de autos. En el mundo de la inferencia causal, esencialmente estamos tratando de aprender las leyes subyacentes de un sistema empresarial o social, lo que nos permite predecir los resultados de acciones que aún no hemos tomado.

El análisis causal es fundamental en una variedad de campos cuando necesitamos ir más allá de observar patrones para tomar decisiones, particularmente en áreas como la atención médica, el marketing y las políticas públicas. Considere un investigador médico que evalúa un nuevo medicamento para la presión arterial y su efecto sobre la gravedad del ataque cardíaco. Con datos históricos, es posible ver que los pacientes que toman el medicamento en realidad sufren ataques cardíacos más graves. Un modelo estándar de ML (aprendizaje automático) sugeriría que el medicamento es dañino. Sin embargo, es probable que esto se deba a confusión: los médicos sólo recetan el medicamento a pacientes que ya tienen peor salud. Para encontrar la verdad, debemos aislar el impacto real del medicamento del ruido de las condiciones existentes de los pacientes.

En este artículo, presentaré algunos de los conceptos y herramientas importantes del aprendizaje automático causal de una manera accesible. Solo usaré bibliotecas que administren datos, calculen probabilidades y estimen parámetros de regresión. Este artículo no es un tutorial, sino un punto de partida para aquellos interesados ​​pero intimidados por los métodos de inferencia causal. Me inspiré en la lectura en línea Inferencia causal para los valientes y verdaderos de Matheus Facure Alves. Nota: Para aquellos que no están familiarizados con la probabilidad, E[X] se refiere al valor promedio que toma una variable aleatoria/cantidad x.

El marco de resultados potenciales

Cuando iniciamos un estudio causal, las preguntas que hacemos son mucho más específicas que la minimización de pérdidas o la precisión de la predicción. Normalmente comenzamos con el efecto promedio del tratamiento (ATE), que nos indica el impacto medio de una intervención o acción en toda una población.

En nuestro ejemplo médico, queremos saber la diferencia en la gravedad del ataque cardíaco si toda la población tomó el medicamento versus si toda la población no lo hizo. Para definir esto matemáticamente, utilizamos el Marco de Resultados Potenciales. Primero, definamos algunas variables:

Y: el resultado (p. ej., una puntuación de gravedad de un ataque cardíaco de 0 a 100).
T: El indicador de Tratamiento. Este es un "interruptor" binario:
T = 1 significa que el paciente tomó el medicamento.
T = 0 significa que el paciente no tomó el medicamento (el Control).
Y(1): El resultado que veríamos si el paciente recibiera tratamiento.
Y(0): El resultado que veríamos si el paciente no recibiera tratamiento.
El ATE teórico es la diferencia esperada entre estos dos resultados potenciales en toda la población:
ATE = E[Y(1) – Y(0)]

Para abordar el dilema de los resultados no observados, los investigadores utilizan el Marco de Resultados Potenciales como guía conceptual. En este marco, asumimos que para cada individuo existen dos resultados “potenciales”: Y(1) e Y(0). Sólo observamos uno de estos dos valores, lo que se conoce como el problema fundamental de la inferencia causal.

Si un paciente toma el medicamento (T=1), vemos su resultado fáctico, Y(1). Su resultado sin la medicación es ahora un contrafactual, un estado del mundo que podría haber existido pero no existió.

La limitación de la inferencia causal es que para cualquier persona determinada, sólo observamos uno de estos dos valores. Si un paciente toma la medicación, vemos su resultado fáctico, Y(1), mientras que su resultado sin la medicación Y(0) sigue siendo un contrafactual, un estado que podría haber existido pero no existió.

COMIÓ en un mundo perfecto

Dado que el efecto del tratamiento individual es la diferencia entre estos dos valores, permanece oculto para nosotros. Esto desplaza todo el objetivo de la estimación causal del individuo al grupo. Como no podemos restar un contrafactual de un fáctico para una persona, debemos encontrar formas inteligentes de comparar grupos de personas.
Si el grupo que recibe el tratamiento es estadísticamente comparable al grupo que no lo es, podemos utilizar el resultado promedio observado de un grupo para sustituir el contrafactual faltante del otro. Esto nos permite estimar el efecto promedio del tratamiento calculando la diferencia entre el resultado medio del grupo tratado y el resultado medio del grupo de control:

{ATE} = E[Y|T=1] – E[Y|T=0]
Supongamos que para aquellos que tomaron el medicamento, observamos una gravedad media del ataque cardíaco de 56/100, en comparación con 40/100 para aquellos que no lo tomaron. Si intentamos estimar el efecto causal tomando una simple diferencia de medias, los datos sugieren que tomar el fármaco provocó un aumento de 16 puntos en la gravedad.

E[Y|T=1] = 56, E[Y|T=0] = 40 -> ATE_BIASED = 16

A menos que esta droga esté entre las más peligrosas creadas, es probable que haya otro mecanismo en juego. Esta discrepancia surge porque sólo podemos interpretar una diferencia simple de medias como el efecto promedio del tratamiento si el tratamiento se asignó mediante un ensayo controlado aleatorio (ECA), que garantiza una asignación aleatoria completa de los grupos de tratamiento. Sin aleatorización, los grupos tratados y de control no son intercambiables y difieren de tal manera que dificultan la comparación directa.

Aleatorización

La razón por la que un RCT es el método predeterminado para calcular el ATE es que ayuda a eliminar el sesgo de selección. En nuestro ejemplo médico, el daño de 16 puntos que observamos probablemente se produjo porque los médicos administraron el medicamento a los pacientes de mayor riesgo. En este escenario, el grupo tratado ya estaba predispuesto a puntuaciones de gravedad más altas incluso antes de tomar la píldora. Cuando utilizamos un ECA, eliminamos el elemento humano de elección. Con esta selección aleatoria, aseguramos que los pacientes de alto y bajo riesgo se distribuyan equitativamente entre ambos grupos.
Matemáticamente, la aleatorización garantiza que la asignación del tratamiento sea independiente de los resultados potenciales.

Ahora, podemos suponer que el resultado promedio del grupo tratado es un sustituto perfecto de lo que habría sucedido si toda la población hubiera sido tratada. Debido a que los grupos "Tratados" y "Control" comienzan como clones estadísticos entre sí, cualquier diferencia que veamos al final del estudio debe ser causada por el medicamento en sí.

Datos observacionales y factores de confusión

En el mundo real, a menudo nos vemos obligados a trabajar con datos de observación. En estas situaciones, la simple diferencia de medias falla debido a la presencia de factores de confusión. Un factor de confusión es una variable que influye tanto en el tratamiento como en el resultado, creando un “camino de puerta trasera” que permite que fluya una correlación no causal entre ellos.

Para visualizar estas relaciones ocultas, los investigadores causales utilizan gráficos acíclicos dirigidos (DAG). Un DAG es un gráfico especializado donde las variables se representan como nodos y las relaciones causales como flechas. Dirigió que las flechas tengan una dirección específica, indicando un flujo causal unidireccional de una causa a un efecto. Acíclico significa que el gráfico no contiene ciclos; no puedes seguir una secuencia de flechas y terminar de regreso en la primera variable, principalmente porque la transición de un nodo al siguiente debería representar un lapso de tiempo. Un factor de confusión se revelará en un DAG por su conexión directa tanto con el tratamiento como con el resultado, como se ve a continuación.

Una vez que hayamos identificado los factores de confusión a través de nuestro DAG, el siguiente paso es explicarlos matemáticamente. Si queremos aislar el verdadero efecto del medicamento, debemos comparar pacientes que son similares en todos los aspectos excepto en si tomaron el medicamento. En el análisis causal, la herramienta más importante para ello es la regresión lineal. Al incluir el factor de confusión como variable independiente, el modelo calcula la relación manteniendo constante la salud inicial del paciente. Para nuestro ejemplo, generé un conjunto de datos simulado.
donde la asignación del tratamiento dependía de la salud inicial (IH). Esto se puede ver en el código siguiente, donde tanto la probabilidad de recibir el medicamento como la gravedad dependen de la puntuación de salud inicial.

Desde este punto de vista, los individuos que recibieron el fármaco tuvieron un aumento de gravedad promedio de 3,47 puntos. Para encontrar la verdad, ejecutamos un modelo de regresión lineal múltiple MCO (mínimos cuadrados ordinarios) para controlar
para la calificación de salud inicial de los participantes.

Resultados OLS de Python

El hallazgo más importante aquí es el coeficiente de la variable de tratamiento (fármaco). Si bien los datos brutos sugirieron que la droga era dañina, nuestro coeficiente es aproximadamente -9,89. Esto sugiere que cuando controlamos el factor de confusión de la salud inicial, tomar el medicamento en realidad disminuye la gravedad del ataque cardíaco en casi 10 puntos. Esto está muy cerca de nuestro verdadero efecto, ¡que fue una disminución de exactamente 10 puntos!

Este es un resultado que estuvo más en línea con nuestras expectativas y se debe a que eliminamos una gran fuente de sesgo de selección al controlar los factores de confusión. Lo mejor de la regresión lineal en este contexto es que la configuración es similar a la de un problema de regresión típico. Se pueden aplicar transformaciones, producir gráficos de diagnóstico y las pendientes se pueden interpretar como normales. Sin embargo, debido a que incluimos factores de confusión en nuestro modelo, su efecto sobre el resultado no será absorbido por el coeficiente de tratamiento, algo que se conoce como desesgo o ajuste, como se mencionó anteriormente.

Emparejamiento y puntuación de propensión

Si bien la regresión lineal múltiple es una herramienta poderosa para eliminar el sesgo, depende en gran medida del supuesto de que la relación entre los factores de confusión y el resultado es lineal. En muchas situaciones del mundo real, los grupos tratados y de control pueden ser tan fundamentalmente diferentes que un modelo de regresión se ve obligado a adivinar los resultados en áreas donde no tiene datos reales.

Para resolver esto, los investigadores suelen recurrir al Matching, una técnica que cambia el enfoque del ajuste matemático a la reestructuración de datos. En lugar de utilizar una fórmula para mantener constante la salud, la comparación busca en el grupo de control un "gemelo" para cada individuo tratado. Cuando emparejamos a un paciente que tomó el medicamento (T = 1) con un paciente con una salud inicial casi idéntica que no lo tomó (T = 0), efectivamente podamos nuestro conjunto de datos en un ECA sintético.

En este subconjunto equilibrado, los grupos son finalmente intercambiables, lo que nos permite comparar sus resultados directamente para revelar el verdadero efecto promedio del tratamiento (ATE). Es casi como si cada par nos permitiera observar tanto el estado fáctico como el contrafactual para un solo tipo de observación. Cuando pensamos en cómo hacer coincidir dos entradas en un conjunto de datos, considere que cada entrada está representada por un vector en un espacio n-dimensional, donde n − 1 es el número de características o factores de confusión.

A primera vista, parece que podríamos simplemente calcular la distancia entre estos vectores usando la distancia euclidiana. Sin embargo, el problema con este enfoque es que todas las covariables se ponderan por igual, independientemente de su impacto causal real. En dimensiones altas, un problema conocido como la maldición de la dimensionalidad, incluso la coincidencia más cercana de una entrada podría ser fundamentalmente diferente en las formas que realmente importan para el tratamiento.

En nuestro conjunto de datos simulado, al observar a los participantes con los puntajes de salud más bajos a continuación, vemos que el participante tratado 74 y el participante no tratado 668 tienen puntajes de salud iniciales casi idénticos. Debido a que aquí solo estamos tratando con un factor de confusión, estos dos son candidatos ideales para compararlos. Sin embargo, a medida que aumenta la dimensionalidad, resulta imposible encontrar estas coincidencias con solo mirar los números, y la distancia euclidiana simple no logra priorizar las variables que realmente impulsan el sesgo de selección.

En la práctica, este proceso se ejecuta más comúnmente como emparejamiento uno a uno, donde cada unidad tratada se empareja con su vecino más cercano en el grupo de control. Para garantizar que estas coincidencias sean de alta
calidad, utilizamos el Propensity Score: un número único que representa la probabilidad de que un participante reciba el tratamiento dadas sus características, P (T = 1|X). Esta puntuación colapsa nuestra puntuación más alta.
espacio dimensional en una única dimensión que refleja específicamente la probabilidad de tratamientos dado un conjunto de covariables. Luego utilizamos un algoritmo de k-vecinos más cercanos (k-NN) para realizar una búsqueda "difusa"
en este aspecto.

Para evitar coincidencias deficientes, podemos elegir un umbral que sirva como la distancia máxima permitida para coincidir. Podemos calcular la propensión de varias formas, la más común es la regresión logística, pero otros métodos de ML capaces de generar probabilidades, como XGBoost o Random Forest, también funcionan. En el siguiente código, calculé las propensiones configurando un modelo de regresión logística que predice la participación en las drogas solo desde la salud inicial. En la práctica, tendría más factores de confusión en su modelo.

Como se mencionó, el primer paso del emparejamiento del puntaje de propensión es el cálculo del puntaje de propensión. En nuestro ejemplo, solo tenemos la salud inicial como factor de confusión, por lo que será la única covariable en nuestra regresión logística simple.

Como era de esperar, a los participantes 74 y 668 se les asignó una propensión muy similar y probablemente serían emparejados. También suele resultar útil generar lo que se conoce como gráfico de apoyo común, que muestra la densidad de las puntuaciones de propensión calculadas separadas por tratados y controles. Idealmente, queremos ver la mayor superposición y simetría posible, ya que eso implica que hacer coincidir unidades será menos difícil. Como se ve a continuación, el sesgo de selección está presente en nuestro conjunto de datos. Es un buen ejercicio investigar el código de generación de datos anterior y determinar por qué.

Aunque no es necesario en el caso unidimensional, podemos usar k-NN para hacer coincidir los tratados con los no tratados en función de su puntuación de propensión.

Si recuerda lo anterior, nuestra regresión lineal arrojó un ATE de -9,89 en comparación con nuestro valor ahora calculado de -10,16. A medida que aumentamos la complejidad y el número de covariables en nuestro modelo, nuestro puntaje de propensión que coincide con ATE probablemente se acercará cada vez más al efecto causal subyacente de -10.

Efectos invariantes en el tiempo mediante diferencias en diferencias

Si bien el emparejamiento es excelente para eliminar el sesgo en función de las variables que podemos ver, se queda corto cuando hay factores ocultos, como la predisposición genética de un paciente o el estilo de gestión específico de un hospital, que no hemos registrado en nuestros datos. Si estos factores de confusión no observados no varían en el tiempo (lo que significa que permanecen constantes durante el período de estudio), podemos usar Diferencias en Diferencias (DiD) para cancelarlos.

En lugar de simplemente comparar el grupo tratado con el grupo de control en un solo momento, DiD analiza dos grupos durante dos períodos: antes y después del tratamiento. La lógica es simple pero elegante: calculamos el cambio en el grupo de control y asumimos que el grupo tratado habría cambiado en la misma cantidad si no hubiera recibido el tratamiento. Cualquier cambio adicional observado en el grupo tratado se atribuye al tratamiento mismo. La ecuación para el estimador DiD es la siguiente:

Si bien esta fórmula puede parecer intimidante a primera vista, es mejor leerla como la diferencia en los cambios que ocurren antes y después del tratamiento. Por ejemplo, imaginemos dos heladerías en ciudades diferentes. Antes del fin de semana, la Tienda A (nuestro grupo de tratamiento) vende 200 conos y la Tienda B (nuestro grupo de control) vende 300. El sábado, una ola de calor golpea la ciudad de la Tienda A, pero no la de la Tienda B. Al final del día, las ventas de la Tienda A aumentan a 500, mientras que las ventas de la Tienda B aumentan a 400. Un análisis simple de la Tienda A sugeriría que la ola de calor provocó un aumento de +300. Sin embargo, la tienda de control (Tienda B) creció +100 en el mismo período sin ninguna ola de calor, quizás debido a las vacaciones o al clima general de verano.

El enfoque de diferencias en diferencias resta esta tendencia temporal natural de +100 del crecimiento total de la Tienda A. Anula efectivamente cualquier factor de confusión que no varía en el tiempo: factores como la ubicación de la tienda o su popularidad base que de otro modo habría sesgado nuestros resultados. Esto revela que el verdadero impacto causal de la ola de calor fue de +200 unidades.

Una limitación importante de las diferencias en diferencias (DiD) básicas es que no tiene en cuenta factores que cambian con el tiempo. Si bien la lógica del “cambio en el cambio” cancela con éxito los factores de confusión estáticos que no varían en el tiempo (como el historial genético de una persona o la ubicación geográfica de un hospital), sigue siendo vulnerable a los factores de confusión que varían en el tiempo. Estos son factores que cambian durante el período de estudio y afectan a los grupos de tratamiento y control de manera diferente.

En nuestro estudio sobre ataques cardíacos, por ejemplo, incluso un análisis de DiD podría estar sesgado si los hospitales que administran el medicamento también sufrieran cambios significativos de personal o recibieran equipos mejorados durante el período "Post". Si no tomamos en cuenta estas variables cambiantes, el estimador DiD atribuirá incorrectamente su impacto a la droga misma, lo que conducirá a una estimación causal “contaminada”.

Es importante señalar que la estructura de datos transversal simple que utilizamos para la regresión y el emparejamiento es insuficiente para este método. Para calcular un “cambio en el cambio”, necesitamos una dimensión temporal en nuestro conjunto de datos. Específicamente, necesitamos una variable que indique si se produjo una observación en el período previo o posterior al tratamiento tanto para el grupo tratado como para el de control.

Para resolver esto, vamos más allá de la simple resta e implementamos DiD dentro de un marco de regresión lineal múltiple. Esto nos permite "controlar" explícitamente los factores que varían en el tiempo, aislando efectivamente el efecto del tratamiento mientras se mantienen constantes los cambios externos.

El modelo de regresión se define como:

A continuación, se construye un nuevo conjunto de datos sintéticos para reflejar la estructura requerida. También agregué una variable de Calidad de la atención con fines de demostración. No incluí el código de simulación completo debido a su extensión, pero esencialmente modifica la lógica anterior al duplicar nuestras observaciones en dos períodos de tiempo distintos.

Como tenemos nuestros datos en el formato correcto, podemos ajustar un modelo de regresión lineal utilizando las especificaciones que acabamos de mencionar.

El valor de R cuadrado de 0,324 indica que el modelo explica aproximadamente el 32,4 por ciento de la variación en la gravedad del ataque cardíaco. En el análisis causal, esto es común, ya que muchos factores no medidos como
La genética se trata como ruido. La intersección de 48,71 representa la gravedad inicial para el grupo de control durante el período previo al tratamiento. El coeficiente de droga de 12,75 confirma el sesgo de selección, mostrando
el grupo tratado inicialmente tuvo puntuaciones de gravedad más altas. Además, el coeficiente de calidad de la atención sugiere que cada aumento de unidad en ese índice corresponde a una reducción de 2,10 puntos en la gravedad.

El término de interacción, droga:post, proporciona el estimador de diferencias en diferencias, que revela un efecto estimado de la droga de -6,58. Esto nos dice que el medicamento redujo la gravedad después de ajustar las diferencias de grupo y las tendencias temporales, aunque la estimación es notablemente menor que el efecto real de -10. Esta discrepancia se produce porque la calidad de la atención mejoró específicamente para el grupo tratado durante el período posterior al tratamiento, debido al proceso de generación de datos. Dado que estos dos cambios ocurrieron simultáneamente en el mismo grupo, están perfectamente correlacionados o colineales.

Básicamente, el modelo se enfrenta a un punto muerto matemático en el que no puede determinar si la mejora se debe al medicamento o a la mejor atención, por lo que divide el crédito entre ambos. Como ocurre con cualquier regresión lineal, si dos variables están perfectamente correlacionadas, un modelo podría eliminar una por completo o proporcionar estimaciones muy inestables. Sin embargo, todas las variables mantienen valores de p de 0,000, lo que confirma que a pesar del crédito dividido, los resultados siguen siendo estadísticamente significativos. En el análisis y los datos reales, nos ocuparemos de este tipo de situaciones, y es importante conocer todas las herramientas de su almacén de ciencia de datos antes de abordar un problema.

Conclusión y pensamientos finales

En este artículo, exploramos la transición del aprendizaje automático estándar a la lógica de la inferencia causal. Vimos a través de ejemplos sintéticos que, si bien las diferencias simples en las medias pueden ser engañosas debido al sesgo de selección, métodos como la regresión lineal, el emparejamiento por puntaje de propensión y las diferencias en diferencias nos permiten eliminar los factores de confusión y aislar el impacto real.

Tener estas herramientas en nuestro arsenal no es suficiente. Como se ve en nuestro modelo final, incluso las técnicas sofisticadas pueden generar problemas cuando las intervenciones se superponen. Si bien estos métodos son poderosos para ajustar la confusión, requieren una comprensión profunda de su mecánica subyacente. Depender de los resultados del modelo sin reconocer la realidad de la colinealidad o de los factores que varían en el tiempo puede llevar a conclusiones engañosas.

Al mismo tiempo, saber cuándo y cómo aplicar estas herramientas puede ser una habilidad valiosa para cualquier científico de datos. En mi opinión, una de las mejores partes de la programación estadística para la inferencia causal es el hecho de que la mayoría de los métodos se derivan de unos pocos modelos estadísticos fundamentales, lo que hace que la implementación sea más fácil de lo que cabría esperar.

Es innegable que el mundo real es confuso y está lleno de problemas de datos, y es raro que observemos una señal causal perfectamente clara. El aprendizaje automático causal consiste, en última instancia, en explotar los datos correctos y al mismo tiempo tener la confianza de que nuestras variables permiten un verdadero ajuste. Este artículo es mi primer paso en la documentación de mi viaje de inferencia causal y planeo publicar una segunda parte que profundiza en más temas, incluidas las variables instrumentales (IV), la regresión de paneles, el aprendizaje automático doble (DML) y los metaaprendices.

Lectura sugerida

Facuré, Matheus. Inferencia causal para los valientes y verdaderos. Disponible en: https://matheusfacure.github.io/python-causality-handbook/