5.1 Datos faltantes en redes bayesianas

Recordemos que dada una estructura gráfica dirigida \({\mathcal G}\), consideramos modelos de la forma

\[p(x,\theta)=\prod_{j=1}^k p(x_j|Pa(x_j),\theta)\]

donde \(\theta\) contiene todos los parámetros de los modelos locales. Dada una muestra \(\mathcal L\), podemos estimar \(\theta\) maximizando la verosimilitud \[L(\theta;{\mathcal L})=\prod_{i=1}^n p(x^{(i)}, \theta).\] Recordamos también que en este problema los parámetros de cada modelo local se separan en factores distintos, de forma que la verosimilitud se descompone según la factorización de la primera ecuación.

Ahora queremos entender qué hacer cuando hay datos faltantes en la muestra \(\mathcal L\).

Ejemplo. Escogemos al azar una moneda y luego tiramos un volado con esa moneda:

Suponemos que no sabemos la moneda que se usó para el último volado. ¿Cómo procederíamos para hacer la estimación de los parámetros de este modelo (son 3)?

Cuando tenemos datos faltantes, podemos proceder según varias alternativas:

  • Eliminar faltantes: eliminamos todos los renglones de los datos con casos faltantes, y procedemos como si no hubiéramos hecho este filtro. Cuando la proporción de faltantes es relativemente chica, entonces esta estrategia no es problemática, pues es difícil que los datos no observados, si los conociéramos, cambien el resultado del análisis (por ejemplo, si eliminamos menos de 1% de los datos).

  • Incluir en el modelo la ocurrencia de faltantes/censurados: hacer supuestos sobre el mecanismo de faltantes, e incluir en el modelo. Esto implica adaptar la verosimilitud para lidiar con estos datos faltantes. Esta estrategia es en general difícil de llevar a cabo, excepto si ciertos supuestos acerca de los faltantes se cumple.

  • Imputar datos faltantes: encontrar un proceso de imputación razonable (preferentemente aleatorio). Repetir el análisis de máxima verosimilitud con distintas imputaciones posibles y analizar la variabilidad de los resultados. \end{itemize}

En general, las últimas dos estrategias son las únicas que tienen sentido. En esta parte, nos concentraremos en la segunda: ¿cómo hacemos máxima verosimilitud con datos faltantes?

Ejemplo. En nuestro ejemplo no podemos simplemente ignorar los datos. Supongamos el modelo moneda -> sol. Eliminando la observación última, máxima verosimilitud equivale a hacer conteos, y obtendríamos

Si parametrizamos con \(\theta=P(moneda=A)\), \(\theta_A=P(sol|moneda=A)\) y \(\theta_B=P(sol|moneda=B)\), estos tres parámetros on

Sin embargo, la estimación cambia considerablemente si consideramos las dos posibilidades para moneda:

No está claro entonces que sea buena idea eliminar el caso faltante. ¿Cómo adaptamos la verosimilitud para lidiar con este caso?

En primer lugar, obsérvese que la parte que corresponde a la log verosimilitud para los datos completos (caso 1 a 5) es \[\log (\theta\theta_A) + \log(\theta(1-\theta_A)) + 2\log((1-\theta)(1-\theta_B))+ \log((1-\theta)\theta_B)\] Que es igual a \[2\log\theta+3\log(1-\theta)+\log\theta_A+\log(1-\theta_A)+2\log(1-\theta_B)+\log\theta_B\]

Verificamos nuestro resultado anterior optimizando directamente (escogimos una parametrización no tan buena. Es mejor usar logits):

Y notamos que, en efecto, son iguales a los que habíamos calculado directamente con conteos.

Ahora incluiremos a la log verosimilitud un término adicional de la contribución del último caso.

¿Qué sabemos del último caso? Sabemos que \(x^{6}_{sol}=0\), y el valor de \(x^{6}_{moneda}\) fue censurado. Consideramos entonces el término (que es una variable aleatoria): \[p_{\theta}(x^{6}_{sol}=0 , r^{6}_{moneda}=1, x^6_{moneda}),\] donde \(r^{6}_{moneda}\) es una variable indicadora de casos faltante.

El primer punto importante es que hay que hacer algún supuesto probabilístico acerca del mecanismo de censura para poder resolver nuestro problema por máxima verosimilitud.

Para calcular esta cantidad, reescribimos como

\[p_{\theta}(x^{6}_{sol}=0, x^6_{moneda})p(r^{6}_{moneda}=1|x^{6}_{sol}=0, x^6_{moneda})\] Con el modelo podemos marginalizar el primer término, pero no podemos marginalizar porque tiene el segundo término.

Podríamos simplificar suponiendo que el segundo término no depende de \(\theta\), y adicionalmente, que \[p(r^{6}_{moneda}=1|x^{6}_{sol}=0, x^6_{moneda})=p(r^{6}_{moneda}=1|x^{6}_{sol}=0).\] Es decir, el valor censurado de la moneda no cambia la probabilidad de censura. Esto ayuda porque entonces porque podemos marginalizar el producto con el modelo, obteniendo

\[K\sum_x p_{\theta}(x^{6}_{sol}=0, x^6_{moneda}=x)\]

donde \(K\) es una constante que no depende de \(\theta\), y podemos ignorar para hacer máxima verosimilitud.

Para usar nuestra parametrización local escribimos entonces: \[p_{\theta}(x^{6}_{sol}=0 )=p_{\theta}(x^{6}_{sol}=0 |x^{6}_{moneda}=A) p_{\theta}(x^{6}_{moneda}=A) + p_{\theta}(x^{6}_{sol}=0 |x^{6}_{moneda}=B) p_{\theta}(x^{6}_{moneda}=B), \] que en términos de \(\theta\) se escribe como \[(1-\theta_A)\theta + (1-\theta_B)(1-\theta)\] y ahora podemos entonces maximizar \[2\log\theta+3\log(1-\theta)+\log\theta_A+\log(1-\theta_A)+2\log(1-\theta_B)+\log\theta_B + \log((1-\theta_A)\theta + (1-\theta_B)(1-\theta)).\]

Nótese que este problema es más difícil que el de datos completos, pues la verosimilitud ya no es separable en modelos locales. Podemos resolver numéricamente:

Nótese en primer lugar que las condicionales de sol bajaron: esto es porque observamos un 0 adicional en la variable sol. Bajan las dos pues no sabemos qué moneda se utilizó. En segundo lugar, bajó un poco la probabilidad de moneda A, y esto es porque los ceros están más fuertemente asociados con la moneda B, de forma que es más probable que la moneda utilizada haya sido la B, pues observamos una águila en el caso faltante.

Si calculamos la marginal de águilas y soles vemos otra verificación de que estamos usando todos los datos:

y esto es pues en la columna de soles hay 1/3 de soles. Por otra parte:

Del ejemplo anterior, obtenemos las siguientes observaciones:

Para aplicar máxima verosimilitud en presencia de datos faltantes, necesitamos:

  • Además del modelo de los datos, necesitamos un modelo probabilístico para la aparición de faltantes en los datos.

  • Supuestos acerca del modelo de datos faltantes que simplifique el análisis.

  • Resolver el problema de máxima verosimilitud con datos faltantes, que típicamente es más difícil que el problema correspondiente a datos completos.

Abajo introducimos algunas ideas y notación para generalizar los primeros dos puntos. La idea principal es modelar el proceso que censura datos de manera probabilística, hacer supuestos razonables para este proceso, e incluirlo en nuestro proceso de estimación.

En primer lugar, el modelo para los datos completos está parametrizado con \(\theta\): \[p_{\theta}(y)\]

El proceso de censura lo incluimos de la siguiente forma: tenemos un vector \(I\) de indicadores de faltantes (\(I_{j}=1\) cuando el dato \(j\) está censurado faltante), y el modelo para el mecanismo de faltantes está parametrizado con \(\psi\) y está dado por: \[p_{\psi} (I|y)\]

Entonces generamos los datos según \(p_{\theta}(y)\) y luego censuramos observaciones según \(p_{\psi} (I|y)\). Los datos que obtenemos son los valores no censurados, junto con la indicadora de qué valores fueron censurados. Así, el modelo completo para nuestras observaciones es: \[p_{\theta,\psi} (y,I)=p_{\theta}(y)p_{\psi}(I|y).\]

Finalmente, escribiremos \[y=(y_{obs},y_{falta})\] para denotar por separado datos observados y datos faltantes.

Ejemplo. Consideramos el ejemplo de la moneda. El proceso para generar las observaciones está dado por:

  • \(\theta=0.5\) (probabilidad de seleccionar moneda A), y los parámetros \(\theta_A=0.5\), \(\theta_B=0.33\), que dan las probabilidades de sol para cada moneda (modelo de datos)

  • Cuando observamos un sol, tenemos probabilidad de 0.1 de “perder” el registro de qué moneda se usó. Cuando usamos cualquiera de las dos monedas, no hacemos el volado con probabilidad 0.20 (modelo de censura).

Generamos ahora algunas observaciones de este modelo (que suponemos iid).

y ahora censuramos según el modelo de censura:

Y obtenemos las observaciones:

La verosimilitud para nuestros datos observados está dada por \[p(y_{obs},I),\] pues sabemos los valores de las variables observadas y qué datos faltan. Para hacer máxima verosimilitud tenemos entonces que encontrar esta conjunta. Esto lo hacemos promediando (marginalizando) sobre \(y_{falta}\) (que consideramos como variables aleatorias) :

\[p_{\theta,\phi} (y_{obs},I)=\int p_{\phi}(I|y_{obs},y_{falta})p_{\theta} (y_{obs}, y_{falta})d y_{falta}.\]

Nótese que esta integral (o suma, dependiendo del caso), promedia los valores faltantes según el modelo de los datos \(p_{\theta}\)

De la ecuación de arriba, vemos que en general tendríamos que modelar también el mecanismo de datos faltantes y estimar todos los parámetros. Esto es difícil no solamente porque hay más parámetros, sino porque en la práctica puede ser difícil proponer un modelo razonable para datos faltantes. En este punto, preferimos hacer un supuesto (que puede cumplirse o no para cada problema particular), y obtener una solución.