8.2 Modelos gráficos y simulación predictiva

El objetivo de esta sección es la simulación de modelos, una manera conveniente de simular de un modelo probabilístico es a partir del modelo gráfico asociado. Un modelo gráfico representa todas las cantidades involucradas en el modelo mediante nodos de una gráfica dirigida, el modelo representa el supuesto que dados los nodos padres \(padres(v)\) cada nodo es independiente del resto de los nodos a excepción de sus descendientes.

Los nodos en las gráficas se clasifican en 3 tipos:

  • Constantes fijas por el diseño del estudio, siempre son nodos sin padres.

  • Estocásticos son variables a los que se les asigna una distribución.

  • Determinísticos son funciones lógicas de otros nodos.

Los supuestos de independencia condicional que representa la gráfica implican que la distribución conjunta de todas las cantidades V tiene una factorización en términos de la distribución condicional \(p(v|padres(v))\) de tal manera que: \[p(V) = \prod p(v|padres(v))\]

Veamos como usar las gráficas para simular de modelos probabilísticos. Los siguientes ejemplos están escritos con base en Gelman and Hill (2007).

Ejemplo de simulación discreta predictiva

La probabilidad de que un bebé sea niña o niño es \(48.8\%\) y \(51.2\%\) respectivamente. Supongamos que hay 400 nacimientos en un hospital en un año dado. ¿Cuántas niñas nacerán?

Comencemos viendo el modelo gráfico asociado.

La gráfica superior muestra todas las variables relevantes en el problema, y las dependencias entre ellas. En este caso \(n\) es una constante que representa el número de nacimientos, (\(n=400\)), \(p=48.8\) es la probabilidad de que un nacimiento resulte en niña y \(k \sim Binomial(p, n)\). Debido a que el número de éxitos (nacimientos que resultan en niña) depende de la tasa \(p\) y el número de experimentos \(n\), los nodos que representan a éstas dos últimas variables están dirigidos al nodo que representa \(k\).

Una vez que tenemos la gráfica es fácil simular del modelo:

esto nos muestra algo que podría ocurrir en \(400\) nacimientos. Ahora, para tener una noción de la distribución simulamos el proceso \(1000\) veces:

El histograma de arriba representa la distribución de probabilidad para el número de niñas y refleja la incertidumbre en los nacimientos.

Podemos agregar complejidad al modelo, por ejemplo con probabilidad \(1/125\) un nacimiento resulta en gemelos fraternales, y para cada uno de los bebés hay una posibilidad de aproximadamente \(49.5\%\) de ser niña. Además la probabilidad de gemelos idénticos es de \(1/300\) y estos a su vez resultan en niñas en aproximadamente \(40.5\%\) de los casos.

Podemos simular 400 nacimientos bajo este modelo como sigue:

Repetimos la simulación 1000 veces para aproximar la distribución de número de niñas en 400 nacimientos.

8.2.0.1 Ejemplo de simulación continua predictiva

El 52% de los adultos en EUA son mujeres y el 48% hombres, las estaturas de los hombres se distribuyen aproximadamente normal con media 175 cm y desviación estándar de 7.37 cm, en el caso de las mujeres la distribución es aproximadamente normal con media 161.80 cm y desviación estándar de 6.86 cm. Supongamos que seleccionamos 10 adultos al azar, ¿cuál es el modelo gráfico asociado? ¿qué podemos decir del promedio de estatura?

Simulamos la distribución de la altura promedio:

¿Y que podemos decir de la altura máxima?

Supongamos que una compañía cambia la tecnología usada para producir una cámara, un estudio estima que el ahorro en la producción es de $5 por unidad con un error estándar de $4. Más aún, una proyección estima que el tamaño del mercado (esto es, el número de cámaras que se venderá) es de 40,000 con un error estándar de 10,000. Suponiendo que las dos fuentes de incertidumbre son independientes, usa simulación de variables aleatorias normales para estimar el total de dinero que ahorrará la compañía, calcula un intervalo de confianza.

Ejemplo de simulación de un modelo de regresión

En regresión podemos utilizar simulación para capturar tanto la incertidumbre en la predicción (término de error en el modelo) como la incertidumbre en la inferencia (errores estándar de los coeficientes e incertidumbre del error residual).

Comenzamos con un ejemplo en el que simulamos únicamente incertidumbre en la predicción.

Supongamos que el puntaje de un niño de tres años en una prueba cognitiva esta relacionado con las características de la madre, el siguiente modelo resume la diferencia en los puntajes promedio de los niños cuyas madres se graduaron de preparatoria y los que no.

\[y_i= \beta_0 + \beta_1 X_{i1} + \epsilon_i\]

  • donde \(y_i\) es el puntaje del \(i\)-ésimo niño,
  • \(X_{i1}\) es una variable binaria que indica si la madre se graduó de preparatoria (codificado como \(1\)) o no (codificado como \(0\)), y
  • \(\epsilon_i\) son los error aleatorios, estos son independientes con distribución normal \(\epsilon_i \sim N(0, \sigma^2)\).

Ahora consideremos el problema de simular el puntaje de \(50\) niños \(30\) con madres que terminaron la preparatoria y \(20\) cuyas madres no terminaron. Los coeficientes que usaremos son:

\[\beta_0 = 78\] \[\beta_1 = 12\] \[\sigma = 20\]

El modelo gráfico asociado sería como sigue:

Podemos calcular la media y su intervalo de confianza:

Supongamos ahora que nos interesa incorporar incertidumbre en los coeficientes de regresión, y expresamos nuestra incertidumbre a través de distribuciones de probabilidad, ¿cómo sería el modelo gráfico asociado?

Primero, suponemos que \(\sigma^2\) tiene una distribución centrada en \(20^2\), proporcional a una distribución \(\chi^2\) con \(432\) grados de libertad.

\[ \begin{eqnarray*} \begin{pmatrix}\beta_{0}\\ \beta_{1} \end{pmatrix} & \sim & N\left[\left(\begin{array}{c} 78\\ 12 \end{array}\right), \sigma^2 \left(\begin{array}{cc} 0.01 & -0.01\\ -0.01 & 0.01 \end{array}\right)\right] \end{eqnarray*} \]

Ahora, simulamos del modelo incorporando tanto la incertidumbre correpondiente a la predicción como la incertidumbre en los coeficientes de regresión, para los coeficientes:

  1. Simula \(\sigma=20\sqrt{(432)/X}\) donde \(X\) es una generación de una distribución \(\chi^2\) con \(432\) grados de libertad.

  2. Dado \(\sigma\) (obtenido del paso anterior), simula \(\beta\) de una distribución normal multivariada con media \((77,12)\) y matriz de covarianzas \(\sigma^2 V\).

  3. Simula \(y\) el vector de observaciones usando los parámetros de \(1\) y \(2\).

Si nos interesara la mediana de los puntajes, ¿qué cambio tendríamos que hacer en el código?

Los parametros se obtuvieron de ajustar el modelo de regresión lineal a un conjunto de 434 observaciones de puntajes de niños.

Podemos usar simulación para calcular intervalos de confianza para \(\beta_0\) y \(\beta_1\),

No parece que valga la pena el esfuerzo cuando podemos calcular los intervalos analíticamente, sin embargo con simulación podemos responder fácilmente otras preguntas, por ejemplo, la pregunta inicial: ¿cuál es la media esperada para un conjunto de \(50\) niños, \(30\) con madres que hicieron preparatoria y \(20\) que no? es fácil de responder con simulación.

Podríamos usar predict() para calcular el estimador puntual de la media en el examen para los niños:

¿Cómo calculas el error estándar? En este caso se puede resolver pues es una combinación lineal de los coeficientes del modelo, pero en muchos casos nuestro objetivo es más complicado que coeficientes o combinaciones lineales de estos.

8.2.0.2 Simulación de predicciones no lineales

Veamos un ejemplo de las elecciones en el congreso de EUA. Tenemos un modelo que usaremos para predecir la elección de \(1990\) basados en la de \(1988\).

Explicación del problema. EUA está dividido en \(435\) distritos congresionales, definimos la variable de interés \(y_i\) con \(i=1,...,n\), como la participación del partido Demócrata en el distrito \(i\) en \(1988\). La participación se calcula como el porcentaje de los votos correspondientes a los demócratas del total de votos que recibieron los demócratas y republicanos, esto es, se excluyen los votos a otros partidos.

El modelo del que simularemos se construyó usando datos de \(1986\) y \(1988\).

Simulemos del modelo:

Podemos preguntarnos cuántas elecciones ganaron los demócratas en \(1990\): \(\sum I(\tilde{y} > 0.5)\)

Veamos lo que ocurrió realmente

La función sim() del paquete arm permite simular de modelos lineales y lineales generalizados.

Referencias

Gelman, Andrew, and Jennifer Hill. 2007. Data Analysis Using Regression and Multilevel/Hierarchical Models. Vol. Analytical methods for social research. New York: Cambridge University Press.