top of page

Eliminación de la variable sexo en modelos estadísticos. Pros y contras

  • fjroar
  • 17 jul 2021
  • 9 Min. de lectura

Para comenzar esta primera entrada de opinión, que doy fundamentada en datos, me gustaría comenzar por recordar brevemente lo que sucedía hace 15 años como estadístico. En aquella época la verdad es que no te hacían mucho caso en las empresas y en las instituciones y aunque eso sí, se ganaba menos dinero, al menos te dejaban en paz trabajar y aprender a gusto, te equivocabas o acertabas, pero podías aplicar todo tipo de algoritmos y datos disponibles sin ninguna cortapisa. Sin embargo, bajo la situación actual algunas cosas han cambiado, el Big Data irrumpió y todo el hype marketiniano acompañante, se han colocado en primeros puestos de interés las técnicas de Machine Learning y a los Data Scientist (muchos estadísticos o mineros de datos reconvertidos), que están migrando hacia la Inteligencia Artificial que adquiere ahora un mayor foco de atención hasta el punto de que surgen iniciativas que hablan de regulación que pueden tener cierto peligro si no se plantean correctamente (como el caso de la GDPR, pero eso lo dejo para otra entrada).

En relación con lo anterior, y por diversos motivos, se han puesto muy de moda los fallos en la aplicación de modelos estadísticos (ahora todo el mundo se fija en lo que hago, cachis ...) debido a lo que se denominan los sesgos como el sesgo de selección, máxime si dicho sesgo afecta sobre todo a cuestiones de género, edad, etc. A lo anterior hay que unir el mal uso de los datos, intencionado o no y la mezcla con ideas políticas un tanto peregrinas que pueden afectar, de modo muy negativo a la comunidad profesionales que viven de analizar datos y construir modelos.


Actualmente, tal y como se apunta en:


Se está planteando la regulación y si se lee el artículo, se ve un apoyo "contenido" a dicha regulación, siempre y cuando no sea excesiva (que una empresa diga que una regulación va a traer costes, implica que no lo ve claro por mucho que diga que le gusta, .... ¡No seamos ingenuos!). Por otro lado, existen numerosos sesgos cuando se crea un modelo o sistema de IA tal y como se apunta enhttps://www.eldiario.es/tecnologia/sesgos-genero-algoritmos-circulo-perverso-discriminacion-linea-vida-real_129_7198975.html pero no por ello debemos tomar decisiones en caliente y en algunos casos ideológicas que nos acaben llevando a sentencias del tipo “está prohibido incluir la variable sexo en los modelos estadísticos (ML, IA) en general

Es precisamente este punto el que voy a tratar sopesando los pro y contras de legislar hacia una supuesta mayor justicia de género y de las implicaciones que esto podría tener en un algoritmo sencillo como es un Generalize Linear Model o GLM (el razonamiento sería análogamente aplicable a cualquier otro algoritmo más complejo de tipo ML o de IA).

Antes de comentar lo anterior, no dejo pasar la oportunidad de dar una segunda opinión personal sobre lo habría que hacerse. Es decir, bajo mi punto de vista habría en todo caso que evitar el mal uso, o lo que es lo mismo, que un algoritmo peque de sesgo de selección o de sesgo de interacción y que dicho algoritmo lo esté usando por ejemplo google o facebook no puede habilitar a un político (o grupo de político) para la promulgación de prohibiciones generales (que es en lo que se traducirán las leyes al fin y al cabo), porque hay situaciones muy diversas. Que una determinada compañía no sepa controlar los sesgos o sencillamente no quiera controlarlos porque persigan un determinado fin más o menos lícito, será un problema que debería determinarse vía judicial u otros mecanismos hacia esa compañía y ese uso concreto, pero no por ello, por evitar un problema, se tengan crear otros nuevos. Es decir, convendría legislar sobre las actuaciones ilícitas no sobre cómo crear un modelo y qué elementos usar para crearlo.

El problema de la estadística, es como he apuntado antes, que al no ser matemáticas, hay una parte, la que procede de datos, que requiere interpretación y a veces la interpretación puede dar conclusiones que difieren y otras veces no tanto, por eso en el siguiente ejemplo voy a tratar de ser lo más objetivo a lo que puedo llegar ser, y por eso quiero señalar qué ocurriría si, por ejemplo, se elimina una variable poderosa en un modelo por un prejuicio moral o político.


Supongamos que estamos en 1913 y que tras el hundimiento del Titanic que ocurrió aproximadamente un año antes (a mitad de Abril de 1912), una compañía de seguros desea crear una póliza de vida para cubrir largos trayectos en transatlánticos, dicha póliza de vida, supongamos que consiste en dotar de 100.000$ al beneficiario que indique el asegurado, en el supuesto de que dicho asegurado fallezca por un hundimiento.

Ante el anterior caso, la compañía puede suponer que la probabilidad de hundimiento de una de estas naves en alta mar sea por ejemplo (dado el último hecho) de un 5%. En, ese caso sencillo, el precio medio justo aplicar a todo pasajero sería de unos 5.000$, claramente este precio es muy alto y muy poca gente (o nadie) lo adquiriría ya que hay que tener en cuenta que el precio de un billete de primera clase en el Titanic estaba en torno a los 4.350$ y además, con esta tarificación tan simple, si de 100 naves tipo transatlántico, hubiera una única persona que adquiriese la póliza, entonces el beneficio del asegurador en ese caso sería 0, porque en teoría se habrían hundido 5 de los 100, habría pagado a los beneficiarios 500.000$ a cambio de haber recibido en primas un total de 500.000$

En un segundo intento en la creación de una póliza adecuada y más competitiva, se pueda dotar al anterior análisis de un poco más de profundidad. Alguien puede pensar que de esos 5 accidentes que ocurrirían, es posible que haya una mínima tasa de superviviencia y que posiblemente, al menos 1 de los 5 asegurados que tuvieron la mala fortuna de que su transatlántico se hundiese en alta mar hubiera sobrevivido, además, si la compañía aseguradora tuviera los datos del Titanic, tal y como nos los ofrece por ejemplo kaggle en https://www.kaggle.com/c/titanic/data (ver train.csv), sabría que la probabilidad de supervivencia ante tal desastre estaría en torno al 37% - 39%, por lo que si se toma como referencia un valor inferior como 35%, se tendría que muy probablemente al menos 1 de los 5 asegurados sobreviviría y por tanto con la tarificación anterior, la compañía tendría 50.000$ de beneficio. Bajo este supuesto, otro modo de razonar sería ¿por qué no se aplica la probabilidad de no sobrevivir al desastre y se hace el producto más competitivo para que haya más personas que por menos dinero pueda adquirir el producto si lo desea? En este caso, cabría hacer, bajo este modelo tan simple la cuenta siguiente (se usa el valor 35% para que la compañía tenga un poco de beneficio y margen):

prima = 100.000 · 0.05 · (1 – 0.35) = 3.750


Claro el anterior precio, aunque mejora el primero, aún sigue siendo bastante alto y es entonces cuando se podría aplicar un procedimiento sencillo como el que se muestra con el siguiente código R:

library(data.table)

df <- fread('data/train.csv')

df$Pclass1 <- ifelse(df$Pclass == 1, 1, 0)

df$Pclass2 <- ifelse(df$Pclass == 2, 1, 0)

set.seed(10)

index <- sample(c(1:nrow(df)), 0.7*nrow(df))

df_train <- df[index,]

df_test <- df[-index,] #Se observa que las tasas de supervivencia son similares

mod1 <- glm(Survived ~ Pclass + Sex + SibSp, data = df_train, family = "binomial")

Que con un simple summary() daría lugar a la siguiente salida:




En este caso se observa que la probabilidad de que un hombre sobreviva al evento notoriamente inferior a que una mujer logre sobrevivir, por supuesto aquí es donde tiene lugar eso de “mujeres, niños y personas mayores primero”, el anterior modelo responde también a una ecuación tal como sigue:

P(Survived = 0) = 1 /(1 + exp(0.3332 -2.5703 Sexmale + 1.7804 Pclass1 + 1.2419 Pclass2))


En este caso, bajo este modelo tan sencillo, el peor valor de supervivencia la tendría un hombre con un billete de clase 3 y sería P(Survived = 0) = 0.90353 y por tanto el precio de la prima a cobrar sería muy elevado, pero en cambio, para un mujer que vaya en primera clase, el anterior valor sería P(Survived = 0) = 0.107782; por lo que en este caso, el valor de la prima sería:

prima(mujeres, clase 1)= 100.000 · 0.05 · 0.107782 = 539$

Es decir, ahora el precio para un segmento de la población si resulta competitivo, obviamente se puede pensar en si es justo o no ofrecer precios buenos a gente que adquiere un billete de primera clase, que además es de esperar que tenga dinero, y precios no tan buenos a los que adquieren un billete de segunda o tercera clase, pero claro, también se puede pensar del siguiente modo, y es que un billete de segunda clase en el Titanic costaba alrededor de 1750$, si se quiere asegurar al segmento de las mujeres de segunda clase, el coste compensaba bastante:

prima(mujeres, clase 2)= 100.000 · 0.05 · 0.1714906 = 858$


Y ¿para los de tercera clase? Bueno, en este caso, el precio de la póliza se dispara en el caso de las mujeres, pero hay que tener en cuenta que el coste del billete para ellos era de tan sólo 30$:

prima(mujeres, clase 3)= 100.000 · 0.05 · 0.4174622 = 2087$


No obstante, el producto, con sólo esas variables consideradas sencillamente no daría opción a que se aseguren, es más, la compañía de seguros tendría en todo caso un problema moral en este caso, pero las condiciones que indican los datos son las que son y entonces la tercera clase no tendría póliza a medida, ni incluso pagando 539$ podrían acceder al producto ya que sencillamente se estaría hablando de un coste de 54 veces su billete. Por tanto, la compañía aseguradora encontraría mercado, bajo este modelo entre la gente de primera y segunda clase (estos últimos lo más beneficiados en relación calidad-precio)

Pero ahora supongamos, que en el país de la aseguradora, algún comité ético ve inmoral y sancionable que se distinga por sexo y por tanto se obligue a eliminar la variable del modelo, en este caso, se tendría un modelo, con los mismos datos, tal como sigue:



En este caso, al no distinguirse por sexo, sólo se tendría la información del tipo de billete que se compra y en este caso las primas a aplicar serían:

prima(mujeres, clase 1)= 100.000 · 0.05 · 0.4025864 = 2023$

prima(mujeres, clase 2)= 100.000 · 0.05 · 0.4881772 = 2442$

prima(mujeres, clase 3)= 100.000 · 0.05 · 0. 7514574= 3757$

De modo que el asegurador sencillamente no haría negocio y es poco probable que alguien pagase los precios anteriores, salvo que se le asustase muchísimo, además quiénes más perjudicados salen son los pasajeros de 2ª clase, donde ahora la relación calidad-precio ya no está tan clara y obviamente, no se soluciona el problema de una póliza para la gente de 3ª clase.

Por tanto aquí está el debate ético cuando se desea eliminar una variable ¿Debe legislarse en cómo se construye un modelo de modo que se apliquen recetas tipo “café para todos”?


Este dataset Titanic me gusta porque da que pensar y plantea otros dilemas adicionales y es que como se observa, en este caso, los ricos tienen aparte de más dinero, para este tipo de modelos GLM, mejores ofertas que el resto, personalmente, a mí no me gusta esto, pero claro, yo no soy un empresario ni alguien que quiera apostar su dinero en crear una compañía de seguros, si lo fuera, tendría que empezar haciendo ofertas buenas a lo que me indica los datos, los cuales obedecen a un sesgo en el que impera varios condicionantes como:


  • Ante un naufragio, niños, mujeres, ancianos, suelen tener preferencia

  • Los medios disponibles para los que pagan un billete de clase 1 son superiores que para los que pagan un billete de clase 3

Claramente, si con el devenir de los tiempos, la segunda condición se hace más igualitaria y se tuvieran suficientes botes y medios adecuados a cada clase, lo que sucedería es que las variables dummy Pclass1 y Pclass2 irían perdiendo importancia y seguramente la probabilidad media de supervivencia habría sido superior al 50% y por tanto el modelo correcto a plantear es el que contuviese sólo la variable Sexo, ya que lo que no resulta tan ético es que un transatlántico no parta con todos los medios salvavidas adecuados y que además estuvieran sesgados para un determinado grupo de individuos, pero es otro debate que ya no sería "culpa" del modelo.


Obviamente si yo en 1913 tuviera que hacer un seguro de vida para este caso, buscaría más datos de otros naufragios y tendría que ver si la distribución de botes-salvavidas se parece más o menos a la del Titanic u a otros, junto con el uso de más variables, que de algún modo defina más el objeto del producto a tarificar, pero eso ya sería otra historia.

PD: el gráfico de la curva ROC que muestro al principio es la medida de la eficiencia del modelo considerando la variable sexo en el dataset test que no se había usado en la construcción del modelo. Se ve claramente cómo esta sencilla variable tipo 0-1 dota al modelo de una gran eficiencia discriminante separando los que sobreviven de los que no.

2 Comments


fjroar
Jul 20, 2021

Te comento. Porque había supuesto que la probabilidad de hundimiento de un transatlántico fuera del 5%, posiblemente muy exagerado. Para ello se tendría que hacer una estimación seria y el número sería bastante más bajo, pero en este ejemplo lo dejé así para ver el caso extremo y porque carezco de datos de la época, espero haber aclarado, un saludo y gracias

Like

Jose Luis Loren
Jose Luis Loren
Jul 20, 2021

Perdona si la pregunta es muy tonta, pero como se calcula el precio medio de 5k en "En, ese caso sencillo, el precio medio justo aplicar a todo pasajero sería de unos 5.000$"?

Like

© 2021 by Francisco J. Rodríguez Aragón. Proudly created with Wix.com

bottom of page