3 votos

Pruebas de independencia condicional que no respetan la d-separación

Ejemplo incorrecto, consulte el segundo ejemplo

Acabo de intentar modelar una red bayesiana compuesta por 3 variables de la siguiente manera

$A\sim N(0,1)$

$B\sim A + N(0,1)$

$T\sim A + B + N(0,1)$

En el DAG asociado a este experimento, $A$ representa un camino trasero de $B$ a $T$, por lo tanto, espero que, al condicionar en $A$, la dependencia entre $B$ y $T$ disminuya. Sin embargo, en el escenario simulado (código R a continuación) esto no parece suceder, ya que el valor p al probar $B\perp T|\emptyset$ es menor que el valor p de la prueba $B\perp T|A$.

¿Alguna idea de por qué sucede esto? ¿Podría ser porque la distribución de probabilidad de las variables no es fiel al DAG como se señala en la respuesta aquí?

library(bnlearn)
set.seed(120395)

A = rnorm(n = 100, mean = 0, sd = sqrt(1))
B = A + rnorm(n = 100, mean = 0, sd = sqrt(1))
T = A + B + rnorm(n = 100, mean = 0, sd = sqrt(1))

df <- data.frame(A, B, T)

t1 <- ci.test("B", "T", data = df, test = "cor")
t2 <- ci.test("B", "T", "A", data = df, test = "cor")
print(c(t1$p.value, t2$p.value))

Resultado:

6.70679e-37 1.66561e-20

Nuevo ejemplo corregido

Consideremos

$A\sim N(0,1)$

$B\sim A + N(0,1)$

$C\sim A + B + N(0,1)$

$D\sim A + B + C + N(0,1)$

$T\sim A + B + C + D + N(0,1)$

El DAG asociado a este experimento es el siguiente

enter image description here

Estudiemos la asociación entre $C$ y $T$. El criterio de d-separación nos dice que en esta BN, sin condicionar en ninguna variable, todos los caminos de $C$ a $T$ están abiertos y espero que, al cerrar algunos de ellos, la dependencia entre $C$ y $T$ disminuya. En este grafo particular, esperamos que la dependencia al condicionar en $\{A,D\}$ sea mayor que la obtenida al condicionar en $\{A,B,D\}$, ya que el último caso bloquea $T\leftarrow B \rightarrow C$ así como los caminos a través de $A$ y $D$. Poniendo esto en fórmulas, esperamos ver

$dep(C,T|\{A,D\}) > dep(C,T|\{A,B,D\})$

Al usar el valor p negativo como medida de dependencia (como se sugiere aquí), estas suposiciones se ven violadas, ya que el código R produce los siguientes resultados

$dep(C,T|\{A,D\}) = -pvalue_{C\perp T|\{A,D\}} = -1.78*10^{-09}$

$dep(C,T|\{A,B,D\}) = -pvalue_{C\perp T|\{A,B,D\}}= -1.52*10^{-11}$

por lo tanto

$dep(C,T|\{A,D\}) < dep(C,T|\{A,B,D\})$

¿Alguna idea de por qué sucede esto? ¿Podría ser que los valores p (y los valores p negativos también) no son adecuados para estudiar comparaciones de dependencias como la que hice?

Aquí está el código para este ejemplo

library(bnlearn)
set.seed(120395)

A = rnorm(n = 100, mean = 0, sd = sqrt(1))
B = A + rnorm(n = 100, mean = 0, sd = sqrt(1))
C = A + B + rnorm(n = 100, mean = 0, sd = sqrt(1))
D = A + B + C + rnorm(n = 100, mean = 0, sd = sqrt(1))
T = A + B + C + D + rnorm(n = 100, mean = 0, sd = sqrt(1))

df <- data.frame(A, B, C, D, T)

t1 <- ci.test("C", "T", data = df, test = "cor")
t2 <- ci.test("C", "T", "A", data = df, test = "cor")
t3 <- ci.test("C", "T", "B", data = df, test = "cor")
t4 <- ci.test("C", "T", "D", data = df, test = "cor")
t5 <- ci.test("C", "T", c("A","B"), data = df, test = "cor")
t6 <- ci.test("C", "T", c("A","D"), data = df, test = "cor")
t7 <- ci.test("C", "T", c("B","D"), data = df, test = "cor")
t8 <- ci.test("C", "T", c("A","B","D"), data = df, test = "cor")
print(c(t1$p.value, t2$p.value, t3$p.value, t4$p.value, 
        t5$p.value, t6$p.value, t7$p.value, t8$p.value))

Resultado:

[1] 5.008861e-67 2.379113e-42 2.425548e-32 6.708171e-09 2.204601e-25
[6] 1.783842e-09 1.329351e-09 1.521039e-11

1voto

mribeirodantas Puntos 122

¿Tienes alguna idea de por qué sucede esto?

Comienzas tu razonamiento afirmando que esperarías que la dependencia estadística entre B y T dada A (una variable confundidora) fuera menor que la dependencia estadística entre B y T, es decir: $I(B;T) > I(B;T|A)$, siendo $I$ la Información Mutua. Sí, tienes razón, debería ser así. Y lo es. Mira el código a continuación (basado en el código que compartiste).

set.seed(120395)
A = rnorm(n = 100, mean = 0, sd = sqrt(1))
B = A + rnorm(n = 100, mean = 0, sd = sqrt(1))
T = A + B + rnorm(n = 100, mean = 0, sd = sqrt(1))    

miic::discretizeMutual(B,T, plot=FALSE)$info
0.7031494
miic::discretizeMutual(B,T, matrix_u=matrix(A), plot=FALSE)$info
0.2519784

El problema aquí es que estás confundiendo la significancia estadística de la prueba de independencia con el tamaño del efecto de la dependencia. Incluso con tu prueba de independencia, si revisas los objetos t1 y t2, verás que encuentras una correlación de Pearson de $0.89$ al principio, y luego $0.76$ después de ajustar por la variable confundidora. Por lo tanto, tu propia simulación muestra lo que esperabas, lo cual es correcto.

En cuanto a los valores de p, puedes inspeccionar los objetos devueltos por la función ci.test y verás que tus valores de p sugieren que no hay independencia, en ningún caso. De hecho, algo que acabo de notar es que, a pesar de que mencionas la d-separación en el título de tu pregunta, no hay d-separación en tu pregunta. Estás confundiendo dos grafos diferentes. Probablemente piensas que el DAG que describiste a través de tus tres ecuaciones estructurales es el siguiente:

enter image description here

Es decir, $B$ y $T$ son independientes pero se observa que son dependientes debido al efecto confundidor de $A$. No necesitas agregar el + B en el $T$ para tener la dependencia espuria, ya está ahí porque ambos son causados por $A$. Sin embargo, tus ecuaciones estructurales llevaron al diagrama causal a continuación:

enter image description here

Es decir, $B$ y $T$ son dependientes. Y aunque puedes disminuir la dependencia entre ellos ajustando por $A$, un factor confundidor, no puedes d-separarlos, porque están directamente dependientes. Es lo contrario, están d-conectados. Por eso ambos valores de p sugieren una falta de independencia. Además, que el primero sea más grande no me sorprende, ya que hay aún menos evidencia de que sean independientes. Al ajustar por un factor confundidor, disminuyes la dependencia, y por lo tanto haces menos probable que sean independientes.

¿Podría ser eso porque la distribución de probabilidad de las variables no es fiel al DAG como se señala en la respuesta aquí?

No, porque tú lo hiciste fiel. Podrías crear un conjunto de ecuaciones estructurales y "ocultar" parte de estas, o crear las relaciones de una manera que crearías independencias no estructurales (cancelando caminos). Sin embargo, eso no es lo que hiciste. Dejaste claro que $A$ causa $B$ y $T$, y que $B$ causa $T$. Cinelli escribió algunos comentarios al respecto aquí.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X