1.1 Patrones complejos de dependencia

Cuando consideramos dos variables aleatorias, tenemos herramientas simples para describir dependencia:

Por ejemplo, para dos variables numéricas, podemos usar correlaciones. En este ejemplo, rendimiento de coches y cilindros están negativamente correlacionadas:

Para variables categóricas podemos usar tablas para entender cómo está relacionada la transmisión y el tipo de coche,

podemos calcular las distribuciones condicionales empíricas dado el tipo de coche:

O podemos sacar las condicionales empíricas dado el tipo de transmición:

Sin embargo, cuando tenemos más de dos variables, los patrones de asociación tienen más riqueza. Como ejemplo, pensemos en un problema ficticio, con tres variables binarias: si el jardín está mojado o no, si llovió o no llovió, y si el jardín fue o no regado. Vemos que regar el jardín no está relacionado con que llueva o no:

Pero si condiconamos a que el pasto está mojado, entonces lluvia y regar están inversamente correlacionados, un ejemplo de porque ocurre es que si el suelo está mojado y no hay lluvia entonces se regó el jardín,

Otro ejemplo de dependencia, tomado de Gelman, es un análisis de votantes en Estados Unidos, votantes más ricos tienden a votar más por el partido republicano. Sin embargo, estados más ricos tienden a votar más por demócratas. La relación de dependencia se ve en distintas direcciones dependiendo del nivel que lo veamos (estado o individuo):

1.1.1 Modelos gráficos

Un modelo gráfico es una red de variables aleatorias donde:

  • Nodos representan variables aleatorias.

  • Arcos (dirigidos o no) representan dependencia

Los dos esquemas generales para representar dependencias/independiencias (condicionales) de forma gráfica son los modelos dirigidos (redes bayesianas) y no dirigidos (redes markovianas).

Veamos un ejemplo de un modelo gráfico no dirigido.

Consideramos las calificaciones de 88 alumnos (Mardia 1979) en cinco áreas: vectores (VECT), mecánica (MECH), álgebra (ALG), análisis (ANL) y estadística (STAT)). Podemos representar la estrucutra de covarianza con una gráfica como la siguiente:

Veremos que este gráfico establece correlaciones entre álgebra, análisis y estadística, así como entre vectores, mecánica y álgebra. Esto implica, por ejemplo, mecánica está correlacionada con estadística:

Pero también sugiere que dada la calificación de álgebra, estadística y vectores no están correlacionados:

Lo cual no sucede por ejemplo, si estudiamos la asociación entre STAT y ANL condicionando a ALG:

En la red que representa la estructura de dependencia de estos datos, el hecho de que ALG separa a VECT de STAT se interpreta como sigue: si hacemos una regresión de STAT en función de VECT, controlando por ALG, el coeficiente de VECT es 0.

Del modelo gráfico obtenemos varias simplificaciones (Whittaker):

  • Podemos entender la estructura de estos datos analizando dos grupos de tres variables cada uno, en lugar de intentar un análisis conjunto de las 5 variables.

  • Estamos en una mejor posición para modelar este problema: en un principio, estábamos en el punto de “todo se relaciona con todo”, y esto implica un modelo muy grande y complejo. Modelos tan grandes muchas veces son imposibles de tratar con cualquier conjunto de datos de tamaño usual. Las independiencias condicionales que acabamos de establecer simplifican considerablemente el tipo de modelos que debemos considerar.

  • Si quisiéramos predecir estadística (EST), por ejemplo, basta con usar álgebra y análisis. Esto puede permitirnos construir mejores modelos y más fáciles de entender.

  • Descubrimos que en un sentido al examen de álgebra es el más importante, pues podría fundamentar todas las demás. Por otra parte, también aprendimos que hay potencialmente dos habilidades adicionales al álgebra que están asociadas a VECT y MECH por un lado, y a STAT y ANL por otro.


Como ejemplo de modelos dirigidos veremos una red de seguros de auto.

En este ejemplo nos interesa entender los patrones de dependencia entre variables como edad, calidad de conductor y tipo de accidente:

library(bnlearn)
head(insurance)
#>   GoodStudent        Age   SocioEcon RiskAversion VehicleYear ThisCarDam
#> 1       False      Adult       Prole  Adventurous       Older   Moderate
#> 2       False     Senior       Prole     Cautious     Current       None
#> 3       False     Senior UpperMiddle   Psychopath     Current       None
#> 4       False Adolescent      Middle       Normal       Older       None
#> 5       False Adolescent       Prole       Normal       Older   Moderate
#> 6       False      Adult UpperMiddle       Normal     Current   Moderate
#>   RuggedAuto Accident   MakeModel DrivQuality    Mileage Antilock
#> 1   EggShell     Mild     Economy        Poor TwentyThou    False
#> 2   Football     None     Economy      Normal TwentyThou    False
#> 3   Football     None FamilySedan   Excellent     Domino     True
#> 4   EggShell     None     Economy      Normal  FiftyThou    False
#> 5   Football Moderate     Economy        Poor  FiftyThou    False
#> 6   EggShell Moderate   SportsCar        Poor  FiftyThou     True
#>   DrivingSkill SeniorTrain ThisCarCost Theft   CarValue HomeBase AntiTheft
#> 1  SubStandard       False     TenThou False   FiveThou     City     False
#> 2       Normal        True    Thousand False    TenThou     City      True
#> 3       Normal       False    Thousand False TwentyThou     City     False
#> 4       Normal       False    Thousand False   FiveThou   Suburb     False
#> 5  SubStandard       False     TenThou False   FiveThou     City     False
#> 6  SubStandard       False HundredThou False TwentyThou   Suburb      True
#>      PropCost OtherCarCost OtherCar  MedCost Cushioning Airbag  ILiCost
#> 1     TenThou     Thousand     True Thousand       Poor  False Thousand
#> 2    Thousand     Thousand     True Thousand       Good   True Thousand
#> 3    Thousand     Thousand    False Thousand       Good   True Thousand
#> 4    Thousand     Thousand     True Thousand       Fair  False Thousand
#> 5     TenThou     Thousand    False Thousand       Fair  False Thousand
#> 6 HundredThou  HundredThou     True  TenThou       Poor   True Thousand
#>   DrivHist
#> 1     Many
#> 2     Zero
#> 3      One
#> 4     Zero
#> 5     Many
#> 6     Many
insurance_dat <- insurance[, c('Age', 'GoodStudent', 'SocioEcon', 'RiskAversion',
                               'Accident','DrivQuality')]
blacklist <- data.frame(from=c('DrivQuality','Accident'), to=c('Age','DrivQuality'))

Utilizamos una red bayesiana:

¿Cómo interpretar esta gráfica? Vemos por ejemplo como mucho de la asociación entre edad y tipo de accidente desaparece cuando condicionamos a calidad de conductor.

También podemos entender cómo depende calidad de conductor de edad y aversión al riesgo (modelo local para DrvQuality):

Otras asociaciones con DrvQuality podemos entenderlas a través de estas dos variables: edad y aversión al riesgo. Veremos cómo modelar estas estructuras (además de usar las tablas, que corresponden a estimación de máxima verosimilitud sin restricciones, podemos usar por ejemplo GLMs).

1.1.2 ¿Por qué modelos gráficos?

  • Usando modelos gráficos podemos representar de manera compacta y atractiva distribuciones de probabilidad entre variables aleatorias.

  • Auxiliar en el diseño de modelos.
    • Fácil combinar información proveniente de los datos con conocimiento de expertos.
  • Proveen un marco general para el estudio de modelos más específicos. Muchos de los modelos probabilísticos multivariados clásicos son casos particulares del formalismo general de modelos gráficos (mezclas gaussianas, modelos de espacio de estados ocultos, análisis de factores, filtro de Kalman,…).

  • Juegan un papel importante en el diseño y análisis de algoritmos de aprendizaje máquina.