Archivo de la categoría: Opinión

Los principales problemas de los españoles. Animaciones con R y gganimate

La realización de gráficos animados con R, gganimate y ggplot2 es algo que quiero empezar a trabajar en mis visualizaciones de datos, una buena forma de llamar la atención sobre nuestros gráficos. Para ilustrar el ejemplo he recogido los datos que publica mensualmente el CIS con las 3 principales preocupaciones de los españoles que podéis encontrar en este enlace, por cierto, este enlace tiene toda la pinta de ser una salida en SAS, no me parece muy apropiado pero no diré nada porque imagino que serán lectores del blog (ya podíais hacer una salida más acorde con los tiempos). El caso es que la primera parte de nuestro trabajo será el “scrapeado” de la web. Scrapear verbo regular de la primera conjugación:

library(XML)
library(dplyr)
library(lubridate)

#Lectura de los datos del CIS
url < - "http://www.cis.es/cis/export/sites/default/-Archivos/Indicadores/documentos_html/TresProblemas.html"
doc = htmlParse(url,  encoding = "UTF-8")
tableNodes = getNodeSet(doc, "//table")

#Leemos la tabla que tiene un formato un tanto peculiar
problemas <- readHTMLTable(tableNodes[[2]], skip.rows=1)
problemas <- problemas %>% filter(!is.na(V1)) 

#Transformamos los puntos en 0, parece que estuviera hecho con SAS
haz.cero.na=function(x){ifelse(x==".",0,as.numeric(as.character(x)))}

problemas < - cbind.data.frame(as.character(problemas$V1),sapply(problemas,haz.cero.na),stringsAsFactors=FALSE)
problemas <- problemas %>% select(-V1)

#El primer elemento de la tabla contiene los nombres que vamos a emplear
nombres < - readHTMLTable(tableNodes[[2]])[1,]
nombres$V1="Problema" 
nombres <- as.vector(t(nombres))

names(problemas) <- nombres

#Hay un registro en la tabla que tiene el número de encuestas, no es necesario
problemas <- filter(problemas,Problema != "(N)")

Cosas interesantes en el código. Hacemos HTMLParse de la web y nos quedamos con las tablas, Seguir leyendo Los principales problemas de los españoles. Animaciones con R y gganimate

El desarrollo de la Inteligencia Artificial, un paralelismo con el desarrollo de la aviación

Estoy en el claustro de profesores del Máster de la UNED en Big Data y Business Analytics y revisando la documentación, las clases teóricas y las clases prácticas he decidido incluir una diapositiva que establece un paralelismo entre el desarrollo de la Inteligencia Artificial (IA) y el desarrollo de la aviación. Este paralelismo se me ocurrió tras una conversación con una de esas personas que trabajan en este negocio y son íntegras y honradas [empezamos a quedar pocos]. El caso es que he añadido la siguiente imagen en la formación:

A ver, mi trabajo no es hacer diapositivas bonitas. Planteo un paralelismo que, en mi opinión, describe lo que estamos viviendo ahora. Me ahorro a Da Vinci, la Edad Media y los inicios, estamos más avanzados, tenemos Python… El caso es que podemos hacer nuestros primeros trabajos, estamos en disposición de planear, algunos estamos diseñando parapentes para tirarnos por las colinas y otros ya tienen aviones, aviones como los que hicieron los Hermanos Wright, con mucho esfuerzo vuelan. Seguramente en los ámbitos más avanzados estarán trabajando los primeros aviones de guerra como sucedió en la Primera Guerra Mundial. Igual que en la IA, la mayoría estamos agitando los brazos y dando saltitos al tiempo que decimos “mira como hago IA”, hay proyectos donde ya vuelan pero el coste para levantar el vuelo es mucho. Y por supuesto, en el ámbito armamentístico quizá se estén dando los primeros pasos en verdadera Inteligencia Artificial. Es inherente al hombre destruirse por eso imagino que en la Defensa es donde estarán los proyectos más avanzados.

Estos primeros proyectos generarán otros de mayor tamaño que se podrán empezar a utilizar comercialmente por aquellos que dispongan de más m€dio$ como los primeros bombarderos de la segunda guerra mundial que fueron la semilla de la aviación comercial. Sin embargo, necesitamos ese gran invento, ese gran desarrollo para que esto empiece a funcionar y se pueda democratizar, como sucedió con la aparición del avión a reacción, ese, desde mi ignorante punto de vista, es el giro copernicano en la historia de la aviación. En el caso de la IA podría tratarse de la computación cuántica porque a día de hoy con bits, con 010100100010101111 los tensores sólo pueden hacer aviones como los hizo Oscar Wright o buenos aviones de combate si ponemos medios. Con los 01010111 a un tensor le cuesta una cuadrilla de peones mejorar a un cálculo matricial.

Al final todos estos desarrollos se tienen que transformar en dinero, como la aviación empezó a usar la aviación comercial, al principio serán unos pocos privilegiados y luego se democratizará como está pasando con el precio de los billetes de avión que han bajado su precio (ajustado a inflación) un 50% desde 1980. Después, cuando la AI empiece a funcionar, todos tendremos un teclado basado en IA y nos moveremos en coches autónomos y construiremos aberraciones como el Airbus A380 que no irán a ningún sitio.

Con esta opinión no estoy diciendo que no se invierta, al contrario, es necesario invertir para obtener un uso comercial, con esta opinión estoy alertando. No dejéis que os vendan transbordadores espaciales, que el negocio empieza a oler a humo.

¿Qué nos pasa con R? (de nuevo)

Hace años ya sorprendió R situándose muy arriba en la lista tiobe de lenguajes de programación subió en los años siguientes y ahora nos encontramos con una sorprendente bajada en el índice:

¿Volvemos a tener complejo por usar R? A veces tengo la sensación de que no eres un “pro” si no usas Python. Debe ser que determinados framework funcionan mejor en otros lenguajes, o no, pero nos da vergüenza usar R (de nuevo).

Ya no nos interesa el GDPR

GDPR en Google Trends un pico en mayo de 2018 y desaparece el interés. Será porque todas las compañías se han adecuado a ese marco general legislativo y no es necesario trabajar más en ello o será porque seguimos en modo “preproducción”. En cualquier caso es probable que esta legislación haya nacido anticuada, es probable que no la hayamos entendido e incluso es probable que no sea necesaria. 

Y recuerda, legislar también nos cuesta dinero. 

Las mujeres son más inteligentes pero no están en puestos directivos

A raíz de una noticia sobre la reestructuración del consejo directivo de un gran banco en España donde sólo una mujer ha sido elegida entre los 12 puestos de dirección general me ha surgido la oportunidad para explicar que es una distribución de probabilidad, que es una distribución normal y que es la media y la desviación típica.

Aquí tenéis en python un código que simula el IC de los hombres y el IC de las mujeres, no me he complicado mucho la vida ni he buscado datos al respecto pero leyendo un poco creo que deben de parecerse mucho a esto:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

hombres = np.random.normal(loc=60, scale=32, size=10000)
mujeres = np.random.normal(loc=70, scale=25, size=10000)

p1=sns.kdeplot(hombres, shade=True, color="r")
p1=sns.kdeplot(mujeres, shade=True, color="b")
sns.plt.show()

Bonito gráfico de densidades con varias variables hecho con seaborn y kdeplot de sintaxis sencilla que pone de manifiesto con unos datos simulados (con cierto talento) que en media la mujer es un 15% más inteligente que el hombre, pero la dispersión de la inteligencia del hombre es mayor, o como le he dicho a la persona que le he explicado que es la distribución normal, hay hombres muy tontos y hombres muy listos, muchos más que mujeres muy tontas y mujeres muy listas; así es la biología.

Pero ya os digo yo que la relación de hombres/mujeres inteligentes no es 1/12, así que esa importante entidad bancaria no está tomando decisiones correctas. Ellos verán lo que hacen pero no ha sido una medida inteligente, probablemente porque la ha tomado un hombre.

Porque no vamos a cobrar pensiones. Animación con R y pirámides de población

Estoy creando material para un módulo de un máster que voy a impartir y escribiendo sobre seguros de ahorro he llegado a crear esta animación:

Se trata de una animación con las pirámides de población de España desde 1975 hasta 2018 de 5 en 5 años. El sistema de pensiones español se basa en 5 principios:
1. principio de proporcionalidad
2. principio de universalidad
3. principio de gestión pública
4. principio de suficiencia
5. principio de reparto

La animación va directa contra el principio de reparto. En el sistema español nadie ha cotizado para garantizarse su pensión, los actuales trabajadores pagan las prestaciones de aquellos trabajadores jubilados. Si tras leer estas dos frases y mirar la animación sigues recelando de la migración de personas a España espero que tengas un buen plan de ahorro privado.

Esta animación está hecha con R, los datos están descargados del INE pero están ligeramente cocinados (no al estilo Tezanos). En https://github.com/analisisydecision/wordpress tenéis este Excel con el formato adecuado, el código empleado para realizar la animación está en https://github.com/analisisydecision/wordpress/blob/master/Piramide_poblacional.R Es un buen ejemplo de uso de plotrix y pyramid.plot espero que el código no tenga algún gazapo…

Facebook y su Facebookgate son buenas noticias para el data scientist y para el oficio en general

En todo el lío de Facebook y su Facebookgate o Facegate ha aparecido el nombre de Cambridge Analytica empresa dedicada al análisis de datos para el desarrollo de campañas. Probablemente en la mente de todos está la forma de operar de esta compañía con estorsiones, prostitutas y malas artes varias. Sin embargo yo me quedo con lo que se supone que ha hecho esta empresa con los datos de millones de usuarios de Facebook, los análisis llevados a cabo por Cambridge Analytica han influido en la campaña presidencial de Estados Unidos y en el referéndum por el Brexit. Es decir, gestión de grandes volúmenes de datos y métodos de análisis (no sé si avanzados o no) son capaces de poner y quitar presidentes de la democracia más importante del mundo.

Si una muestra de datos, una muestra de usuarios de Facebook (porque sólo es una pequeña parte) provoca ese tipo de “terremotos” electorales ¿os imagináis que se puede hacer con nuestros datos de Facebook? Pues eso, inimaginable. Pueden hacer series a nuestro gusto, saber si pueden darnos un préstamo, determinar el precio de nuestro seguro de vida, pueden saber lo que necesitamos incluso antes de necesitarlo. Una pequeña parte de lo que sabe Facebook de nosotros porque somos nosotros los que hacemos Facebook. En el momento de escribir estas líneas Facebook está bajando su cotización bursátil, y yo opino que debería subir porque acaba de demostrar su potencial: Una red social que puede sacar a millones de británicos de la Unión Europea para hacer más grande a los enemigos de la Unión.

Podemos pensar que es el momento de poner control, de regular, que estamos trabajando en directrices del tipo GDPR que protege nuestra privacidad, que las multas pueden poner coto a este tipo de actuaciones. ¿Poner control a la publicación libre de una opinión? Podemos poner control al uso de esa información, pero ese concepto de “uso” es el que puede ser más difuso desde el momento en el que entra en juego el uso de datos anónimos. Ejemplo, si no das tu consentimiento expreso para que tu información pueda ser usada te cobro por el servicio, si das ese consentimiento el servicio será gratuito, yo te garantizo que eres un elemento anónimo. Y muchos anónimos han puesto como presidente del gobierno de Estados Unidos a Donald Trump.

Para mi todo esto no son malas noticias, se acaba de demostrar que mi trabajo y el de otros muchos mineros de datos, data scientist, gestores de la información… funciona ¡y de qué manera! Yo ya lo sabía porque ya son años haciendo que grandes compañías gasten menos o ganen más con datos. Y por cierto, no estaría mal que Cambridge Analytica compartiera su trabajo en github.

De actuario a científico de datos

De_actuario_a_cientifico_de_datos1

Si vemos las tendencias de búsqueda de Google Trends entre “actuary” y “data scientist” desde 2015 se aprecia que la segunda tendencia ha ido en aumento en los últimos tiempos hasta ser una búsqueda tan popular o más que la tendencia “actuary”. Aunque tengo formación como estadístico e informático he trabajado haciendo labores de actuario especializado en precios tanto de nuevo negocio como en renovación durante muchos años y ahora estoy evolucionando para convertirme en científico de datos. He hablado en algún evento de este cambio de paradigma que va más allá de quitarme la corbata y venir a trabajar en zapatillas. En mi opinión el origen de este cambio está en el trabajo en entornos colaborativos y por consiguiente en el uso y la extensión del software libre y los beneficios que esto supone.

El actuario es un tipo de la vieja escuela con mucha formación académica a sus espaldas, experto en su negocio, que sabe mucho de estadística y gurú en software comercial de precio alto que está expresamente pensado para su trabajo diario. Todo va medido al milímetro ya que suele moverse en entornos regulados y nada puede escapar a su control ¡su trabajo está sujeto a una supervisión!. Y ahora aparecen unos tipos que, a golpe de formación en Coursera, hacen modelos de todo tipo y de forma industrial basados en técnicas de aprendizaje automático con lenguajes de programación compuestos de librerías que cualquiera se puede descargar de la red y donde cada programador aporta su granito de arena. Un entorno con menor control que es más difícil de regular.

El cambio está ahí y es importante adaptarse, no podemos ser reaccionarios, de hecho el actuario ha trabajado en cambios tecnológicos y de negocio fundamentales. Algún actuario que esté leyendo esto habrá vivido una migración de una tarifa univariable a una tarifa multivariable ¿qué pasó? Se pasó de un dominio total de una tarifa por parte del equipo de negocio a una estructura más complicada pero ¿cuáles fueron los resultados? Mejoraron las ventas y mejoró la siniestralidad. Es así, personalmente lo he vivido. Y el actuario ha sido capaz de plasmarlo en una nota técnica. Optimización de precios en renovación, lo mismo, sólo que esto cuesta más dejarlo plasmado en una nota técnica, pero el actuario ha sido capaz. ¿No va a ser capaz el actuario de emplear nuevas técnicas de modelización y optimización? Cuidado, no mal interpretemos, no se trata de perder la cabeza con el deep learning (por ejemplo), que se están viviendo situaciones extremistas del tipo “no me fío de los modelos” a “sin el deep learning estamos fuera”, hay que hacer una transición. Y esta transición, en mi opinión, hay que basarla precisamente en las técnicas de modelización cimentadas en nuevos lenguajes de programación y desarrollos colaborativos.

El cambio es necesario y no debemos ser ajenos, yo personalmente lo estoy viviendo, en 9 meses me he actualizado tecnológicamente. Es verdad que aun me ruboriza comprobar como distintos motores que hacen MapReduce son capaces de dar resultados diferentes, sólo varían unos pocos cientos me dicen, a ver como se lo cuentas a un supervisor. O el caso en el que se busca el mejor modelo con miles de variables en base a bucles y donde sólo importa el AUC o se reclasifica un factor de forma automática en base a tal o cual algoritmo. Está siendo duro pero se abre un mundo de posibilidades donde nuestra creatividad ya no está limitada por el software, además esta nueva forma de trabajar la podemos adaptar a nuestras necesidades creando aceleradores que nos permiten centrarnos en el negocio y no tanto en la programación, no es necesario ser un gurú en programación ni trabajar con “pantallas negras” ya que se elaboran entornos más amigables y donde muchas tareas las puedes automatizar, te haces el software a medida. Por otro lado podemos resumir el comportamiento de modelos que van más allá de una clasificación lineal, no son cajas negras porque hay técnicas y medios para explicar como se comporta mi cliente dentro de un modelo, incluso podemos hacer un chatbot que te resuma el comportamiento cliente a cliente. Y cuando hacemos optimización matemática con la renovación de nuestra cartera… se acabó de depender del fabricante, ahora podemos usar la última técnica que ha implementado una universidad en cualquier lugar del mundo.

Hay que cambiar o estamos fuera por más que creemos marcos regulatorios para garantizarnos el trabajo durante unos años.