Redes Bayesianas. Aplicaciones a crédito hipotecario
- fjroar
- 6 ago 2021
- 5 Min. de lectura
Uno de los modelos que se engloba dentro de esta vorágine del Machine Learning son las denominadas Redes Bayesianas.
En mi opinión, son unos modelos aún muy desconocidos por la empresa y la verdad es que posiblemente sea porque se desconoce el potencial real que pueden llegar a tener.
Un ejemplo de red bayesiana realizada con python a través de la librería pybbn, sería el siguiente ejemplo (donde interviene notablemente la librería networkx para el diseño del grafo):

La red invención mía, y por tanto mejorable, quiere poner foco en cómo se interrelacionan algunas variables con el pago o no de un crédito hipotecario. En este caso se hacen los siguientes supuestos como:
La edad (elevada a partir de 50 años), influye en el nivel de ahorro y en la posibilidad de tener o encontrar trabajo
El hecho de tener trabajo influye en que se tenga un nivel de ahorro y de que se tenga o no dificultades económicas
La marcha positiva o no de la economía influye en que sea fácil tener o encontrar trabajo y también en la marcha del sector de inmobiliario
Finalmente el pago o no del crédito dependerá de si se tiene o no dificultades económicas y si la garantía (el bien bajo hipoteca) está bajo un mercado líquido porque el sector inmobiliario marche bien o no
La posibilidad de plantear supuestos, como se puede imaginar el lector, es prácticamente infinita y es básicamente el punto de partida de toda red bayesiana, es decir, aquí un grupo de expertos de negocio se reúne y dibuja, incluso en un papel si es necesario un grafo como el anterior.
Una vez hecho lo anterior llega el momento de darle vida, para ello hay que plantear una serie de suposiciones que pueden venir de los datos o no y justamente esto es lo grande de este tipo de modelos, la posibilidad de introducir de modo sencillo suposiciones de ocurrencia de los hechos. Así pues, en los nodos superiores se parte de probabilidades, donde el nivel de clientes de edad elevada puede ser la proporción de clientes de la entidad y en el caso de la situación de la economía, puede ser la visión que tenga de ésta el servicio de estudios, por tanto, supóngase que se tienen las siguientes tablas:

En este caso se estaría diciendo que de la población de solicitantes, la proporción de clientes con edad elevada es del 60% y que la probabilidad de que la economía tenga un año positivo es también del 60%.
Si se investiga el código, se observa fácilmente cómo este se puede manipular y poner cualquier dato en lugar correspondiente:

Ahora cabe hacer supuestos con algo más de elaboración. El nodo trabajo depende tal y como se observa en grafo anterior, de edad y economía, en este caso hay que hacer 4 supuestos (o derivarlos de los datos), como pueden ser los de la siguiente tabla:

En este caso se indica cuál es la probabilidad de que encontrar o tener trabajo sea positiva dado que, en el primer caso se tenga una edad elevada y la economía tenga una marcha positiva, siendo dicha estimación del 30%. Dicha estimación bajaría al 10% si bajo el mismo supuesto de edad, se tiene que la economía marcha de modo negativo. La anterior tabla se introduciría en python del siguiente modo sencillo:

Pues bien haciendo todo una serie de supuestos podemos introducir una estructura completa como la siguiente:

Cuya codificación en python al completo la tenéis en:
Como se puede observar, a diferencia de los árboles de decisión, aquí no se está optimizando una función para maximizar la separación de datos más o menos, aquí se implementan unos supuestos y por debajo, claro está, se aplica el Teorema de Bayes y se hace un supuesto de interrelación markoviano, de modo, que por interrelaciones, que podemos denominar, matemáticamente sencillas, podemos hacernos distintos tipos de pregunta como la que se hacen en los siguientes business cases:
BC 0: La primera pregunta sería ¿Cómo es la situación de morosidad para un desconocido que “entre por la puerta” sin mayor información sobre esta persona?

BC 1: Supóngase que las previsiones de evolución positiva de la economía son robustas y cabe esperar una evolución positiva de ésta¿Cómo afectaría lo anterior a ese supuesto cliente? evidence('ev1', 'economia', 'P', 1)

BC 2: Además de lo anterior se sabe que es una persona joven con trabajo ¿Cómo afectaría a su posible pago-impago? evidence('ev2’, 'edad', 'N', 1) evidence('ev3', 'trabajo', 'S', 1)

BC 3: Si además se tiene evidencia que el mercado de la vivienda va a evolucionar positivamente (con lo que por Markov, el tema de la economía daría igual), se tendría que la probabilidad de pago aumentaría hasta: evidence('ev4', 'vivienda', 'P', 1)

Nótese que en este último caso no se tiene seguridad de que el cliente tenga o no un colchón de ahorro, con lo que aún la duda de impago es elevada en torno a un 10%, con lo que se necesitaría tener más información al respecto o marcar un tipo de interés elevado de modo directo (o indirecto con algún tipo de comisiones)
BC 4: Sin embargo lo interesante en las redes bayesianas no es lo anterior, lo interesante es poder conocer por ejemplo elementos causales, así por ejemplo cabe preguntarse que si por ejemplo un cliente a impagado (o un grupo de éstos) ¿Cómo alteraría las previsiones a priori sobre el estado del sector de la vivienda? Se sabe también que dicho cliente tenía ahorros en el momento bajo análisis y que su edad era elevada, pero no se sabe si tiene o no ahorros en ese momento y además no se tiene evidencia sobre la situación actual de la economía evidence('ev1', 'paga', 'N', 1) evidence('ev2', 'edad', 'S', 1) evidence('ev3', 'ahorro', 'S', 1)
Momento inicial, sector vivienda:

Momento final:

En este caso se observa que debería re-actualizarse las impresiones sobre el estado de situación de la situación del mercado de la vivienda, es muy probable que el impago haya sido causado justamente por la crisis donde posiblemente se encuentre la economía (un análisis somero de la situación implicaría que lo anterior se confirmaría o habría razones para incluir nuevos elementos a explicar el impago)
En fin, sin ánimo de meterme en interpretar este ejemplo de juguete, simplemente animar al planteamiento de los problemas de negocio desde esta perspectiva, rica porque se puede introducir supuestos tanto subjetivos, como fundamentados en datos y observaciones, pudiendo crear funciones que actualicen de modo automático o manual los valores de las probabilidades totales y condicionadas de las tablas de la red. Lo complicado claro de estos modelos es que si una variable depende de muchas, el problema de decisión crece exponencialmente, por tanto son buenos cuando hay que crear un mapa conceptual sencillo y se complica, si no se es capaz de extraer lo esencial.
Comentarios