Datos para el bien común – Un ejemplo en las políticas públicas

Datos para el mal

El 17 de marzo de 2018, The Guardian publicó una noticia (1) en la que se explicaba que Facebook vendió 50 millones de datos sobre estadounidenses a Cambridge Analytica, una empresa dedicada al tratamiento de datos. Cambridge Analytica, la cuál fue contratada por el equipo de campaña de Trump, utilizó estos datos para influenciar y etiquetar a futuros electores de EEUU. Una vez destapado este escándalo, también se publicó que esta misma empresa podría haber influido en otros procesos electorales como el Brexit, elecciones presidenciales en Indonesia, etc.

Hoy en día vivimos en una sociedad digitalizada. Muchas de las decisiones que se toman en esta sociedad vienen dirigidas por algoritmos que aprenden de una gran cantidad de datos (comercialemente conocido como #BigData). Por ejemplo, si vamos al banco a pedir un préstamo, es un algoritmo el que decide el tipo de interés al que vamos a devolverlo. Si contratamos un seguro, es otro algoritmo el que decide el coste según nuestras características personales. Si buscamos una imagen por un buscador de Internet, es otro algoritmo el que decide qué imágenes mostrar.

Es cierto que existe cierta alarma social debido a este proceso de digitalización. Como hemos visto al empezar, los resultados de estos algoritmos pueden crear mayores desigualdades o llegar a afectar resultados electorales. Es por ello que, debemos tomar consciencia sobre ello como ciudadanía. Y más acuciantemente, todas aquellas personas que estamos relacionadas con el tema del análisis de datos y la creación de algoritmos para cualquier toma de decisiones.

Datos para el bien

El 5 de abril de 2017, ProPublica publicó un estudio (2) en el que se analizaban las diferencias entre los precios de seguros automovilísticos, según el código postal del domicilio del asegurado. Este estudio descubrió que existe una gran disparidad entre los precios según la zona de residencia: los barrios con minorías étnicas pagan un 30% más, frente a barrios de mayoría blanca (ver Figura 1). Todo ello pese a tener la misma tasa de siniestralidad.

chicago
Fig.1: Mapa de Chicago que muestra las diferencias entre precios de seguros. Las zonas oscuras muestran precios más elevados. Fuente.

Pero los datos y los algoritmos desarrollados también son herramientas útiles que pueden ser empleadas para el bien común. Por ejemplo, gracias a los datos se pueden cuantificar desigualdades o poner de manifiesto denuncias sociales. También pueden servir para mejorar la detección de una enfermedad, o identificar el método más preciso para curarla.

Estas técnicas también pueden tomar un papel relevante en políticas públicas. Durante los últimos años, muchas ciudades se han sumado a los movimientos de innovación tecnológica como: #SmartCity o #OpenData. Pero, ¿existe alguna institución pública que, a día de hoy, utilice datos y algoritmos para diseñar o mejorar la toma de sus decisiones, teniendo en cuenta las cuestiones éticas que van ligadas

La respuesta a la anterior pregunta es afirmativa. Existen algunas instituciones que ya utilizan este tipo de técnicas para mejorar aspectos de la sociedad. De hecho, este verano he participado en el desarrollo de un proyecto junto con el Ministerio de Educación de El Salvador, dentro del programa Data Science for Social Good(DSSG) de la University of Chicago.

Un ejemplo para políticas públicas: Educación, Programas Sociales y El Salvador

La educación es la herramienta más valiosa que tiene la humanidad para luchar contra la violencia y las desigualdades. 

El Ministerio de Educación (MINED) de El Salvador lleva observando durante los últimos años que cientos de miles de estudiantes abandonan sus estudios, lo cuál conlleva graves consecuencias para el país (ver Fig. 2). Es por ello que es de relevante interés averiguar cuáles son los factores que afectan al abandono escolar, para así crear programas sociales más precisos que ayuden a intervenir en este grave problema.

Por lo tanto, el problema que nos propusimos afrontar, desde un punto de vista analítico, fue el de predecir si un/a estudiante iba a desertar al año siguiente, para así detectar los factores con mayor poder predictivo y crear programas sociales basados en ellos.

Fig. 2: Porcentaje de abandono escolar por Departamento. Colores más oscuros muestran una tasa de abandono más elevada.

Los datos

Una vez identificado el problema, nos propusimos a analizar los datos que nos proporcionaron, muchos de los cuáles se encuentran disponible en el portal de estadísticas de el Ministerio. La información aportada podía clasificarse en cuatro categorías conceptuales: centros escolares, profesorado, estudiantado y programas sociales. Por ejemplo, sabíamos si una escuela estaba localizada en una área urbana o rural, si era pública o privada, el estado de las carreteras y los caminos que llegan al centro, etc. A nivel de estudiante teníamos información del tamaño de su familia, en qué escuela y grado estudiaba, qué edad tenía, su género, etc.

El mayor problema, a nivel técnico, al cuál nos enfrentamos fue la limpieza de los datos – ¿os suena a algo data scientists de la sala? -. La gran mayoría de los datos provenían de encuestas, las cuáles son previamente diseñadas y posteriormente cumplimentadas por el personal directivo de los centros educativos. Luego, son  transformadas en hojas de cálculo de Excel, en la que cada columna suele ser un apartado/pregunta de la encuesta y cada fila una escuela o estudiante. En este tipo de casos, muchas de las veces no se mantiene una misma estructura que sea consistente a lo largo del tiempo, pues las encuestas suelen ir variando año tras año. Por ejemplo: se cambia la formulación de la pregunta, por lo que cambia el nombre de la columna, o se elimina una pregunta del formulario, por lo que en este caso cambia el número de columnas. Y no sólo eso, además muchos de los ficheros venían en formatos diferentes (.xlsx, .sav), distintos encodings,  varias líneas de encabezados, etc.

Esto es en mayor parte debido a que muchas de las bases de datos de las Administraciones Públicas son utilizadas para diseñar informes estadísticos, y no tanto para crear modelos de aprendizaje automático. 

Es por ello que diseñamos un conjunto de códigos – pipeline – que automáticamente lee una base de datos, la estructura y la sube a la nube (ver Fig. 3). Para aquellas personas más curiosas, realizamos diferentes estrategias para solucionar las diferentes inconsistencias. Por ejemplo, para solucionar el problema de varios encabezados, creamos un código que parte un conjunto de datos en el encabezado (header) y el cuerpo (body), detectando la primera fila dónde todos los campos están completos – la cuál corresponde al encabezado -. Para solucionar el problema del nombre de las columnas, creamos una etiqueta única para cada una, la cuál fuera consistente en todos los datos que teníamos. El código será liberado en unas semanas en: https://github.com/dssg/el-salvador-education-public.

pipeline
Fig. 3: Pipeline basado en dos proceso automáticos: el primero que lee los datos y los sube a la base de datos y el segundo que ejecuta diferentes modelos de aprendizaje automático (#MachineLearning) y guarda los resultados. Ver código en: https://github.com/dssg/el-salvador-education-public
mov.png
Fig. 4: Distribución de estudiantes que matriculados en una escuela de un Departamento diferente al de su domicilio. Visualización que muestra el porcentaje de estudiantes que no pertenecen a la comunidad de su centro escolar. 

El modelo

Una vez los datos fueron limpiados y realizamos suficientes análisis descriptivos (ver Fig. 4), procedimos a desarrollar el modelo de aprendizaje automático (#MachineLearning). Para una primera versión, nos centramos en los datos de las escuelas y de los estudiantes. Para ello, también creamos otro pipeline (ver Fig. 3) el cuál leía un archivo de configuración y lanzaba todos los modelos con los diferentes parámetros y variables que se encontraban en ese archivo. Una vez los modelos eran entrenados y validados, se iban almacenando todos los resultados en una base de datos, para posteriormente analizarlos.

Uno de los aspectos más importantes relacionados con esta beca es que la mayoría de  proyectos se basan en analizar problemas propuestos por organizaciones públicas. Por lo tanto, las instancias suelen ser personas. Por ejemplo, detectar pacientes con mayor riesgo de padecer diabetes, o estudiantes con alta probabilidad de fracaso escolar o inquilinos con alto riesgo de padecer acoso por parte del propietario, etc. En muchos de estos casos, las organizaciones sólo pueden intervenir a un k% del total de la población, debido a un ajustado presupuesto para este tipo de problemas sociales. Es decir, solo pueden intervenir en k % pacientes, estudiantes o inquilinos. Por ello, es muy importante que nuestro modelo de #MachineLearning sea eficiente en detectar aquellas personas que sean más vulnerables en ese k%. Así, las intervenciones podrán ser más eficaces. Como bien sabemos, las métricas clásicas (accuracy, precision, recall, AUC, etc.) evalúan el comportamiento de nuestro modelo en el 100% de la población. Es aquí donde aparecen precision@k y recall@k.

Estas medidas se basan en la misma idea que precision y recall, pero para diferentes k‘s. De esta manera, precision@k mide cuán eficaz es nuestro modelo en el k% de la población con más riesgo, y recall@k cuántas instancias estamos capturando en esa misma k. Se calculan ordenando la población en orden descendiente según el score obtenido por nuestro modelo de #MachineLearning. Así, todo lo que quede por encima del corte en el k% se clasifica como positivo (abandona la escuela al año siguiente), y por debajo como negativo (no abandona la escuela al año siguiente). Este tipo de análisis son muy útiles ya que podemos analizar la eficacia de nuestro modelo en el cualquier porcentaje de la población con más riesgo. Además también, podemos evaluar el número de personas que vamos a intervenir según variaciones en el presupuesto.

De todos los modelos que ejecutamos, el que mejor rendimiento obtuvo fue un ExtraTreeClassifier. Las variables que resultaron más relevantes para el modelo fueron: el tamaño de la familia, el grado escolar, la edad, si el/la estudiante tenía más edad que la media de sus compañerxs en clase, si era repetidor/a, si ha cambiado de escuela, si la escuela era rural, … Además, comparamos nuestro mejor modelo con un baseline. Este baseline fue calculado a partir de un índice que muestra el riesgo que tiene una escuela teniendo en cuenta diferentes factores como la presencia de maras, extorsiones, abusos, etc. La hipótesis con la que construímos este modelo de base fue la siguiente: “si un estudiante pertenece a una escuela con un alto riesgo, la probabilidad de que abandone es igual al valor del índice de la escuela”.

En la Figura 5 podemos analizar la precisión de nuestro modelo (rojo) comparado con el baseline (azul). Escogiendo el 4% de la población con más riesgo (primera barra), el índice de riesgo clasifica correctamente un total de 5.000 estudiantes, en cambio, nuestro modelo clasificó un total de 22.744, lo que implica un 78% más de estudiantes bien etiquetados.

results
Fig. 5: Precisión de nuestro modelo (rojo) frente al baseline (azul).

Validación y diseño de intervenciones

Durante la beca, alguien me dijo que “de nada sirve un análisis si este no sirve para cambiar y mejorar“. Es así como, una vez seleccionado nuestro mejor modelo, llegó la parte más relevante, las de las validaciones e intervenciones. Durante las últimas semanas estuvimos discutiendo con el MINED como validar nuestro modelo y crear o rediseñar nuevos proyectos sociales acorde a los resultados. Para validarlo es necesario alimentar el modelo con nuevos datos y analizar si las métricas se mantienen constantes, lo que implicará que nuestro modelo es consistente. Si por el contrario el modelo pierde poder predictivo, esto indica que debe ser alimentado con nuevos datos, o por el contrario, se debe construir uno nuevo. También resulta relevante analizar si existe cualquier tipo de sesgo, ya se encuentre inherente en los datos o en el proceso de limpieza y aprendizaje.

Una vez realizada la etapa de validación, empieza el diseño de intervenciones. Las intervenciones son aquellas acciones que se dan, movidas por el resultado del modelo. Es la etapa del proyecto en el que realmente se ve el impacto social que tienen los modelos de #MachineLearning. En nuestro caso, las intervenciones están basadas en el re-diseño de programas sociales que ayuden a mejorar las condiciones de la etapa de escolarización para que la tasa de abandono disminuya. Por ejemplo, imaginemos que una vez validado nuestro modelo, obtenemos que dos de las variables con alto poder predictivo son ser mujer y vivir en una área rural. Esto podría llevar a desarrollar programas sociales específicos para esta sección de la población escolar. Una vez desarrollados e implementados estos programas sociales, se vuelve a evaluar el modelo  con los nuevos datos para analizar si ha habido un efecto positivo, es decir, se ha incrementado la tasa de escolarización de las niñas que viven en zonas rurales.

Conclusión

Durante el desarrollo de este proyecto tuvimos diferentes discusiones sobre la ética de nuestro trabajo. La principal preocupación que teníamos como analistas de datos era que estuvimos tomando decisiones para construir nuestro modelo, sin conocer la realidad ni el contexto de El Salvador. No obstante, siempre tuvimos en mente que detrás de los números que se mostraban en nuestras pantallas, había una persona, una realidad.

Otro de los debates que me parecieron interesantes fueron los de averiguar cómo nuestro proyecto de social good se puede tornar social bad. En nuestro caso era muy fácil, cualquier centro educativo podría coger nuestro modelo para rechazar aquellas personas com mayor probabilidad de abandono escolar. Por ello era muy importante que transfiriéramos todo este tipo de discusiones e implicaciones éticas al Ministerio, y que así se garantice siempre un buen uso de los datos y del proyecto desarrollado.

Uno de los objetivos de escribir esta entrada al blog es la de dar a conocer que el análisis de datos no sólo sirve para enriquecer a las personas que ya son ricas, ni para especular con dinero bobo como diría Cathy O’Neil en su libro Armas de Destrucción Matemática. La #DataScience puede ser una herramienta útil para denunciar desigualdades y ayudar a combatirlas. O simplemente, una técnica que tanto Ayuntamientos como Ministerios pueden aplicar para repartir mejor los recursos, y que ello tenga un impacto positivo tanto para la ciudadanía de a pie, como para las arcas públicas.

Por último, no cabe decir que próximamente se publicará de manera abierta todo el código desarrollado para este proyecto en: https://github.com/dssg/el-salvador-education-public.

 


Fuentes:

(1) https://www.theguardian.com/news/2018/mar/17/cambridge-analytica-facebook-influence-us-election

(2) https://www.propublica.org/article/minority-neighborhoods-higher-car-insurance-premiums-white-areas-same-risk

Fuente de la imagen principal:

http://www.mined.gob.sv/descarga/CALENDARIO_22_ENERO_2018_PRELIMINAR.pdf

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s