Blog

En este post describimos paso a paso un ejercicio de ciencia de datos en el que tratamos de entrenar un modelo de deep learning con el objetivo de clasificar automáticamente imágenes médicas de personas sanas y enfermas.

El diagnóstico por radio-imagen existe desde hace muchos años en los hospitales de los países desarrollados, sin embargo, siempre ha existido una fuerte dependencia de personal altamente especializado. Desde el técnico que opera los instrumentos hasta el médico radiólogo que interpreta las imágenes. Con nuestras capacidades analíticas actuales, somos capaces de extraer medidas numéricas como el volumen, la dimensión, la forma y la tasa de crecimiento (entre otras) a partir del análisis de imagen. A lo largo de este post trataremos de explicarte, mediante un sencillo ejemplo, la potencia de los modelos de inteligencia artificial para ampliar las capacidades humanas en el campo de la medicina.

Este post explica el ejercicio práctico (sección Action) asociado al informe Tecnologías emergentes y datos abiertos: introducción a la ciencia de datos aplicada al análisis de imagen”. Dicho informe introduce los conceptos fundamentales que permiten comprender cómo funciona el análisis de imagen, detallando los principales casos de aplicación en diversos sectores y resaltando el papel de los datos abiertos en su ejecución.

Proyectos previos

No podríamos haber preparado este ejercicio sin el trabajo y el esfuerzo previo de otros entusiastas de la ciencia de datos. A continuación, te dejamos una pequeña nota y las referencias a estos trabajos previos.

  • Este ejercicio es una adaptación del proyecto original de Michael Blum sobre el desafío STOIC2021 - dissease-19 AI challenge. El proyecto original de Michael, partía de un conjunto de imágenes de pacientes con patología Covid-19, junto con otros pacientes sanos para hacer contraste.
  • En una segunda aproximación, Olivier Gimenez utilizó un conjunto de datos similar al del proyecto original publicado en una competición de Kaggle. Este nuevo dataset (250 MB) era considerablemente más manejable que el original (280GB). El nuevo dataset contenía algo más de 1000 imágenes de pacientes sanos y enfermos. El código del proyecto de Olivier puede encontrarse en el siguiente repositorio.

Conjuntos de datos

En nuestro caso, inspirándonos en estos dos fantásticos proyectos previos, hemos construido un ejercicio didáctico apoyándonos en una serie de herramientas que facilitan la ejecución del código y la posibilidad de examinar los resultados de forma sencilla. El conjunto de datos original (de rayos-x de tórax) comprende 112.120 imágenes de rayos-X (vista frontal) de 30.805 pacientes únicos. Las imágenes se acompañan con las etiquetas asociadas de catorce enfermedades (donde cada imagen puede tener múltiples etiquetas), extraídas de los informes radiológicos asociados utilizando procesamiento de lenguaje natural (NLP). Partiendo del conjunto de imágenes médicas original hemos extraído (utilizando algunos scripts) una muestra más pequeña y acotada (tan solo personas sanas frente a personas con una sola patología) para facilitar este ejercicio. En particular, la patología escogida es el neumotórax.

Si quieres ampliar la información sobre el campo de procesamiento del lenguaje natural puedes consultar el siguiente informe que ya publicamos en su momento. Además, en el post 10 repositorios de datos públicos relacionados con la salud y el bienestar se cita al NIH como un ejemplo de fuente de datos sanitarios de calidad. En particular, nuestro conjunto de datos está disponible públicamente aquí.

Herramientas

Para la realización del tratamiento previo de los datos (entorno de trabajo, programación y redacción del mismo) se ha utilizado R (versión 4.1.2) y RStudio (2022-02-3). Los pequeños scripts de ayuda a la descarga y ordenación de ficheros se han escrito en Python 3.

Acompañando a este post, hemos creado un cuaderno de Jupyter con el que poder experimentar de forma interactiva a través de los diferentes fragmentos de código que van desarrollando nuestro ejemplo. El objetivo de este ejercicio es entrenar a un algoritmo para que sea capaz de clasificar automáticamente una imagen de una radiografía de pecho en dos categorías (persona enferma vs persona no-enferma). Para facilitar la ejecución del ejercicio por parte de los lectores que así lo deseen, hemos preparado el cuaderno de Jupyter en el entorno de Google Colab que contiene todos los elementos necesarios para reproducir el ejercicio paso a paso. Google Colab o Collaboratory es una herramienta gratuita de Google que te permite programar y ejecutar código en Python (y también en R) sin necesidad de instalar ningún software adicional. Es un servicio online y para usarlo tan solo necesitas tener una cuenta de Google.

Flujo lógico del análisis de datos

Nuestro cuaderno de Jupyter, realiza las siguientes actividades diferenciadas que podrás seguir en el propio documento interactivo cuándo lo vayas ejecutando sobre Google Colab.

  1. Instalación y carga de dependencias.
  2. Configuración del entorno de trabajo
  3. Descarga, carga y pre-procesamiento de datos necesarios (imágenes médicas) en el entorno de trabajo.
  4. Pre-visualización de las imágenes cargadas.
  5. Preparación de los datos para entrenamiento del algoritmo.
  6. Entrenamiento del modelo y resultados.
  7. Conclusiones del ejercicio.

A continuación, hacemos un repaso didáctico del ejercicio, enfocando nuestras explicaciones en aquellas actividades que son más relevantes respecto al ejercicio de análisis de datos:

  1. Descripción del análisis de datos y entrenamiento del modelo
  2. Modelización: creación del conjunto de imágenes de entrenamiento y entrenamiento del modelo
  3. Analisis del resultado del entrenamiento
  4. Conclusiones

Descripción del análisis de datos y entrenamiento del modelo

Los primeros pasos que encontraremos recorriendo el cuaderno de Jupyter son las actividades previas al análisis de imágenes propiamente dicho. Como en todos los procesos de análisis de datos, es necesario preparar el entorno de trabajo y cargar las librerías necesarias (dependencias) para ejecutar las diferentes funciones de análisis. El paquete de R más representativo de este conjunto de dependencias es Keras. En este artículo ya comentamos sobre el uso de Keras como framework de Deep Learning. Adicionalmente también son necesarios los siguientes paquetes: httr; tidyverse; reshape2;patchwork.

A continuación, debemos descargar a nuestro entorno el conjunto de imágenes (datos) con el que vamos a trabajar. Como hemos comentado previamente, las imágenes se encuentran en un almacenamiento remoto y solo las descargamos en Colab en el momento de analizarlas. Tras ejecutar las secciones de código que descargan y descomprimen los ficheros de trabajo que contienen las imágenes médicas encontraremos dos carpetas (No-finding y Pneumothorax) que contienen los datos de trabajo.

Una vez que disponemos de los datos de trabajo en Colab, debemos cargarlas en la memoria del entorno de ejecución. Para ello hemos creado una función que verás en el cuaderno denominada process_pix(). Esta función, va a buscar las imágenes a las carpetas anteriores y las carga en memoria, además de pasarlas a escala de grises y normalizarlas todas a un tamaño de 100x100 pixels. Para no exceder los recursos que nos proporciona de forma gratuita Google Colab, limitamos la cantidad de imágenes que cargamos en memoria a 1000 unidades. Es decir, el algoritmo va a ser entrenado con 1000 imágenes, entre las que va usar para entrenamiento y las que va a usar para la validación posterior.

Una vez tenemos las imágenes perfectamente clasificadas, formateadas y cargadas en memoria  hacemos una visualización rápida para verificar que son correctas.Obtenemos los siguientes resultados:

Obviamente, a ojos de un observador no experto no se ven diferencias significativas que nos permitan extraer ninguna conclusión. En los siguientes pasos veremos cómo el modelo de inteligencia artificial sí que tiene mejor ojo clínico que nosotros.

Modelización

Creación del conjunto de imágenes de entrenamiento

Como comentamos en los pasos previos, disponemos de un conjunto de 1000 imágenes de partida cargadas en el entorno de trabajo. Hasta este momento, tenemos clasificadas (por un especialista en rayos-x) aquellas imágenes de pacientes que presentan indicios de neumotórax (en la ruta "./data/Pneumothorax") y aquellos pacientes sanos (en la ruta "./data/No-Finding")

El objetivo de este ejercicio es, justamente, demostrar la capacidad de un algoritmo de asistir al especialista en la clasificación (o detección de signos de enfermedad en la imagen de rayos-x). Para esto, tenemos que mezclar las imágenes, para conseguir un conjunto homogéneo que el algoritmo tendrá que analizar y clasificar valiéndose solo de sus características. El siguiente fragmento de código,  asocia un identificador (1 para personas enfermas y 0 para personas sanas) para, posteriormente, tras el proceso de clasificación del algoritmo, poder verificar aquellas que el modelo ha clasificado de forma correcta o incorrecta.

Bien, ahora tenemos un conjunto “df” uniforme de 1000 imágenes mezcladas con pacientes sanos y enfermos. A continuación, dividimos en dos este conjunto original. El 80% del conjunto original, lo vamos a utilizar para entrenar el modelo. Esto es, el algoritmo utilizará las características de las imágenes para crear un modelo que permita concluir si una imagen se corresponde con el identificador 1 o 0. Por otro lado, el 20% restante de la mezcla homogénea la vamos a utilizar para comprobar si el modelo, una vez entrenado, es capaz de tomar una imagen cualquiera y asignarle el 1 o el 0 (enfermo, no enfermo).

Entrenamiento del modelo

Listo, solo nos queda configurar el modelo y entrenar con el anterior conjunto de datos.

Antes de entrenar, veréis unos fragmentos de código que sirven para configurar el modelo que vamos a entrenar. El modelo que vamos a entrenar es de tipo clasificador binario. Esto significa que es un modelo que es capaz de clasificar los datos (en nuestro caso imágenes) en dos categorías (en nuestro caso sano o enfermo). El modelo escogido se denomina CNN o Convolutional Neural Network. Su propio nombre ya nos indica que es un modelo de redes neuronales y por lo tanto cae dentro de la disciplina de Deep Learning o aprendizaje profundo. Estos modelos se basan en capas de características de los datos que se van haciendo más profundas a medida que la complejidad del modelo aumenta. Os recordamos que el término deep hace referencia, justamente, a la profundidad del número de capas mediante las cuales estos modelos aprenden.

Nota: los siguientes fragmentos de código son los más técnicos del post. La documentación introductoria se puede encontrar aquí, mientras que toda la documentación técnica sobre las funciones del modelo está accesible aquí.

Finalmente, tras la configuración del modelo, estamos en disposición de entrenar el modelo. Como comentamos, entrenamos con el 80% de las imágenes y validamos el resultado con el 20% restante.

Resultado del entrenamiento

Bien, ya hemos entrenado nuestro modelo. ¿Y ahora qué? Las siguientes gráficas nos proporcionan una visualización rápida sobre cómo se comporta el modelo sobre las imágenes que hemos reservado para validar. Básicamente, estas figuras vienen a representar (la del panel inferior) la capacidad del modelo de predecir la presencia (identificador 1) o ausencia (identificador 0) de enfermedad (en nuestro caso neumotórax). La conclusión es que cuando el modelo entrenado con las imágenes de entrenamiento (aquellas de las que se sabe el resultado 1 o 0) se aplica al 20% de las imágenes de las cuales no se sabe el resultado, el modelo acierta aproximadamente en el 85% (0.87309) de las ocasiones.

En efecto, cuando solicitamos la evaluación del modelo para saber qué tan bien clasifica enfermedades el resultado nos indica la capacidad de nuestro modelo recién entrenado para clasificar de forma correcta el 0.87309 de las imágenes de validación.

Hacemos ahora algunas predicciones sobre imágenes de pacientes. Es decir, una vez entrenado y validado el modelo, nos preguntamos cómo va a clasificar las imágenes que le vamos a dar ahora. Como sabemos "la verdad" (lo que se denomina el ground truth) sobre las imágenes, comparamos el resultado de la predicción con la verdad. Para comprobar los resultados de la predicción (que variarán en función del número de imágenes que se usen en el entrenamiento) se utiliza lo que en ciencia de datos se denomina la matriz de confusión. La matriz de confusión:

  • coloca en la posición (1,1) los casos que SÍ tenían enfermedad y el modelo clasifica como "con enfermedad"
  • coloca en la posición (2,2), los casos que NO tenían enfermedad y el modelo clasifica como "sin enfermedad"

Es decir, estas son las posiciones en las que el modelo "acierta" en su clasificación.

En las posiciones contrarias, es decir, la (1,2) y la (2,1) son las posiciones en las que el modelo se "equivoca". Así, la posición (1,2) son los resultados que el modelo clasifica como CON enfermedad y la realidad es que eran pacientes sanos. La posición (2,1), justo lo contrario.

Ejemplo explicativo sobre cómo funciona la matriz de confusión. Fuente: wikipedia https://en.wikipedia.org/wiki/Confusion_matrix

En nuestro ejercicio, el modelo nos proporciona los siguientes resultados:

Es decir, 81 pacientes tenían esta enfermedad y el modelo los clasifica de forma correcta. De la misma forma, 91 pacientes estaban sanos y el modelo los clasifica, igualmente, de forma correcta. Sin embargo, el modelo clasifica cómo enfermos, 13 pacientes que estaban sanos. Y al contrario, el modelo clasifica cómo sanos a 12 pacientes que en realidad estaban enfermos. Cuando sumamos los aciertos del modelo 81+91 y lo dividimos sobre la muestra de validación total obtenemos el 87% de precisión del modelo.

Conclusiones

En este post te hemos guiado a través de un ejercicio didáctico que consiste en entrenar un modelo de inteligencia artificial para realizar clasificaciones de imágenes de radiografías de pecho con el objetivo de determinar automáticamente si una persona está enferma o sana. Por sencillez, hemos escogido pacientes sanos y pacientes que presentan un neumotórax (solo dos categorías) previamente diagnosticados por un médico. El viaje que hemos realizado nos ofrece una idea de las actividades y las tecnologías involucradas en el análisis automatizado de imágenes mediante inteligencia artificial. El resultado del entrenamiento nos ofrece un sistema de clasificación razonable para el screening automático con un 87% de precisión en sus resultados. Los algoritmos y las tecnologías avanzadas de análisis de imagen son y cada vez más serán, un complemento indispensable en múltiples ámbitos y sectores como, por ejemplo, la medicina. En los próximos años veremos cómo se consolidan los sistemas que, de forma natural, combinan habilidades de humanos y máquinas en procesos costosos, complejos o peligrosos. Los médicos y otros trabajadores verán aumentadas y reforzadas sus capacidades gracias a la inteligencia artificial. La combinación de fuerzas entre máquinas y humanos nos permitirá alcanzar cotas de precisión y eficiencia nunca vistas hasta la fecha. Esperamos que con este ejercicio os hayamos ayudado a entender un poco más cómo funcionan estas tecnologías. No olvides completar tu aprendizaje con el resto de materiales que acompañan este post.


Contenido elaborado por Alejandro Alija, experto en Transformación Digital. Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.

calendar icon
Blog

La democratización de la tecnología en todos sus ámbitos es una tendencia imparable. Con la generalización de los smartphones y el acceso a Internet, cada vez más personas pueden acceder a productos y servicios de alta tecnología sin tener que recurrir a conocimientos avanzados o especialistas. El mundo de los datos no es ajeno a esta transformación y en este post te contamos por qué.

Introducción

Hoy en día, ya no hace falta ser un experto en edición y post-producción de video para tener nuestro propio canal en YouTube y generar contenidos de muy alta calidad. De la misma manera que no hace falta ser un super especialista para tener un hogar inteligente y conectado. Esto es debido a que los creadores de tecnología cada vez ponen más atención en proporcionar herramientas sencillas y con una cuidada experiencia de uso en el consumidor medio. Con los datos ocurre algo similar. Dada la importancia de los datos en la sociedad actual, tanto para uso particular cómo para uso profesional, en los últimos años hemos visto cómo se democratizan las herramientas para hacer análisis de datos sencillo, sin necesidad de tener conocimientos avanzados de programación.

En este sentido, las hojas de cálculo siempre han vivido entre nosotros y nos hemos acostumbrado tanto a su uso que las usamos casi para cualquier cosa, desde una lista de la compra hasta un presupuesto familiar. Las hojas de cálculo son tan populares que hasta se plantean hacer campeonatos cómo si de un deporte se tratara. Sin embargo, pese a su gran versatilidad, no son las herramientas más visuales desde el punto de vista de comunicación de la información. Además, las hojas de cálculo, no son adecuadas para un tipo de dato que cada vez tiene más peso en la actualidad: los datos en tiempo real.

El mundo nativamente digital, genera cada vez más datos en tiempo real. Algunos informes sugieren que, para 2025, una cuarta parte de los datos mundiales, serán datos en tiempo real. Es decir, serán datos con un ciclo de vida mucho más corto, durante el cual se generarán, analizarán en tiempo real y desaparecerán, puesto que no tendrá sentido almacenarlos para un uso posterior. Uno de los mayores vectores de contribución a los datos en tiempo real será el crecimiento de las tecnologías Internet of Things (IoT).

De la misma forma que ocurrió con las hojas de cálculo o las herramientas de inteligencia de negocio (Business Intelligence) de autoservicio, los desarrolladores de tecnologías para datos ponen ahora el foco en democratizar las herramientas de datos diseñadas para datos en tiempo real. Pongamos un ejemplo concreto de herramienta de este tipo.

Herramientas de programación de bajo código

Las herramientas de programación de bajo código (low-code) son aquellas que nos permiten construir programas sin necesidad de tener conocimientos de programación específicos. Normalmente, las herramientas low-code emplean un sistema de programación gráfico, mediante bloques o cajas, en las que el usuario puede ir construyendo un programa, eligiendo y arrastrando las cajas que necesita para construir su programa. En contra de lo que podría parecer, las herramientas de programación low-code no son nuevas y llevan muchos años entre nosotros en ámbitos especializados cómo la ingeniería o el diseño de procesos. En este post, vamos a centrarnos en una concreta, especialmente pensada para datos y en particular, datos en tiempo real.

Node-RED

Node-RED es una herramienta open-source bajo el amparo de la OpenJS foundation que forma parte de los proyectos de la Linux Foundation. Node-RED se define a sí misma como una herramienta de bajo código especialmente diseñada para aplicaciones basadas en eventos. Las aplicaciones basadas en eventos son programas informáticos cuyas funcionalidades básicas reciben y generan datos en forma de eventos. Por ejemplo, una aplicación que genere una notificación en un servicio de mensajería instantánea a partir de una alarma provocada por un sensor, es una aplicación basada en eventos. Tanto el dato de entrada -la alarma del sensor- cómo el dato de salida -la notificación por mensajería- son eventos o datos en tiempo real.

Este tipo de programación fue inventada por Paul Morrison en la década de los 70 del siglo pasado. Su funcionamiento se basa en disponer de una serie de cajas o nodos, cada una de las cuales tiene una funcionalidad específica (recibir un dato de un sensor o generar una notificación). Los nodos se van conectando entre sí (gráficamente, sin tener que programar nada) hasta construir lo que se conoce cómo un flow, que es el equivalente a un programa o a una parte concreta de un programa. Una vez construido el flow, la aplicación se encarga de mantener el flujo constante de datos desde su entrada hasta su salida. Veamos un ejemplo concreto para entenderlo mejor.

Análisis de datos de ruido en tiempo real en la ciudad de Valencia

La mejor forma de demostrar la potencia de Node-RED es haciendo un prototipo sencillo (un programa en menos de 5 minutos) que nos permite acceder y visualizar los datos de los medidores de ruido instalados en un barrio concreto de la ciudad de Valencia. Para ello, lo primero que vamos a hacer es localizar un conjunto de datos abiertos del catálogo de datos.gob.es. En este caso hemos escogido este conjunto, que proporciona los datos mediante una API y, cuya particularidad, es que se actualiza en tiempo real con los datos obtenidos directamente de la red de contaminación sonora instalada en Valencia. Escogemos ahora la distribución que nos proporciona los datos en formato XML y ejecutamos la llamada.

El resultado que nos devuelve el navegador tiene este aspecto (está truncado -se ha cortado lo que devuelve la API- debido a la extensa longitud de la respuesta):

<response>

<resources name="response">

<resource>

<str name="LAeq">065.6</str>

<str name="name">Sensor de ruido del barrio de ruzafa. Cadiz 3</str>

<str name="dateObserved">2021-06-05T08:18:07Z</str>

<date name="modified">2021-06-05T08:19:08.579Z</date>

<str name="uri">http://apigobiernoabiertortod.valencia.es/rest/datasets/estado_sonometros_cb/t248655.xml</str>

</resource>

<resource>

<str name="LAeq">058.9</str>

<str name="name">Sensor de ruido del barrio de ruzafa. Sueca Esq. Denia</str>

<str name="dateObserved">2021-06-05T08:18:04Z</str>

<date name="modified">2021-06-05T08:19:08.579Z</date>

<str name="uri">http://apigobiernoabiertortod.valencia.es/rest/datasets/estado_sonometros_cb/t248652.xml</str>

</resource>

Donde el parámetro LAeq es la medida del nivel de ruido[1]

Para obtener este mismo resultado devuelto por la API en un programa en tiempo real con Node-RED, tan solo tenemos que iniciar Node-RED en nuestro navegador (para instalar Node-RED en tu ordenador puedes seguir las instrucciones aquí)

representación de los 6 nodos que forman el flow o programa que solicita los datos del sensor instalado en "Sensor de ruido del barrio de Ruzafa. Cádiz 3"

Con tan solo 6 nodos (incluidos por defecto en la instalación básica de Node-RED) podemos construir este flow o programa que solicita los datos del sensor instalado en "Sensor de ruido del barrio de Ruzafa. Cádiz 3" y devolvernos el valor de ruido que se actualiza cada minuto de forma automática. Puedes ver un video demostrativo aquí.

Node-Red tiene muchas más posibilidades, es posible combinar varios flows para realizar programas mucho más complejos o construir dashboards muy visuales cómo este para aplicaciones finales.

En definitiva, en este artículo te hemos mostrado cómo no necesitas saber programar ni utilizar complejos programas de software para hacer tus propias aplicaciones accediendo a datos abiertos en tiempo real. Puedes obtener mucha más información sobre cómo empezar a usar Node-RED aquí. También puedes probar otras herramientas similares a Node-RED cómo Apache Nify o ThingsBoard. Estamos seguros de que las posibilidades que se te ocurren son infinitas. ¡Anímate a crear!

[1] Nivel sonoro continuo equivalente. Se define en la ISO 1996-2:2017 como el valor del nivel de presión en dBA en ponderación A de un sonido estable que en un intervalo de tiempo T posee la misma presión sonora cuadrática media que el sonido que se mide y cuyo nivel varía con el tiempo. En este caso el período establecido para este sensor es de 1 minuto.


Contenido elaborado por Alejandro Alija,experto en Transformación Digital e Innovación.

Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.

calendar icon
Blog

La representación de datos de forma visual ayuda a nuestro cerebro a digerir grandes cantidades de información de una manera rápida y sencilla. Las visualizaciones interactivas facilitan a personas no expertas el análisis de situaciones complejas representadas en forma de datos. 

Cómo introdujimos en nuestro último post sobre este tema, la visualización gráfica de datos constituye una disciplina propia dentro del universo de la ciencia de datos. En este nuevo post queremos poner el foco sobre las visualizaciones de datos interactivas. Las visualizaciones dinámicas permiten al usuario interactuar con los datos y transformarlos en gráficos, tablas e indicadores que tienen la capacidad de mostrar información diferente según los filtros establecidos por el usuario. En cierta medida, las visualizaciones interactivas son una evolución de las visualizaciones clásicas, permitiéndonos condensar mucha más información en un espacio similar al de los informes y presentaciones habituales.  

La evolución de las tecnologías digitales ha desplazado el foco de la analítica visual de datos hacia los entornos web y móviles. Las herramientas y librerías que permiten generar y convertir visualizaciones clásicas o estáticas en dinámicas o interactivas son incontables. Sin embargo, a pesar de los nuevos formatos de representación y generación de visualizaciones, a veces se corre el riesgo de olvidar las buenas prácticas de diseño y composición, que siempre deben estar presentes. La facilidad que las visualizaciones interactivas brindan para condensar gran cantidad de información hace que, en muchas ocasiones, los usuarios intenten incluir mucha información en un único gráfico y conviertan en ilegible hasta el más sencillo de los informes. Pero, volvamos a la parte positiva de las visualizaciones interactivas y analicemos algunas de sus ventajas más significativas. 

Beneficios de las visualizaciones interactivas

Los beneficios de las visualizaciones interactivas de los datos son varios: 

  • Tecnologías web y móvil principalmente. Las visualizaciones interactivas están diseñadas para su consumo desde aplicaciones de software modernas, muchas de ellas, con orientación 100% web y móvil. Esto facilita su lectura desde cualquier dispositivo. 
  • Más información en el mismo espacio. Las visualizaciones interactivas muestran información diferente en función de los filtros aplicados por el usuario. Así, si queremos mostrar la evolución mensual de las ventas de una empresa en función de la geografía, en una visualización clásica, utilizaríamos un gráfico de barras (meses en el eje horizontal y ventas en el eje vertical) por cada geografía. Por el contrario, en una visualización interactiva, utilizamos un solo gráfico de barras con un filtro al lado, donde seleccionamos la geografía que queremos visualizar en cada momento. 
  • Personalizaciones. Con las visualizaciones interactivas, un mismo informe o cuadro de mando puede estar personalizado para cada usuario o grupos de usuario. De esta forma, utilizando filtros a modo de menú, podemos seleccionar unos datos u otros, dependiendo del tipo y nivel del usuario consumidor. 
  • Autoservicio. Existen tecnologías de visualización interactivas muy sencillas, que permite a los usuarios configurar sus propios gráficos y paneles a la carta con tan solo tener accesibles los datos origen a representar. De esta forma, un usuario no experto en visualización, puede configurar su propio informe con tan solo arrastrar y soltar los campos que quiere representar. 

Ejemplo práctico 

Para ilustrar con un ejemplo práctico el razonamiento anterior vamos a seleccionar un conjunto de datos disponibles en el catálogo de datos.gob.es. En particular, hemos escogido los datos de calidad del aire del ayuntamiento de Madrid en el año 2020. Este conjunto de datos contiene las medidas (granularidad horaria) de agentes contaminantes recogidas por la red de calidad de aire del Ayto. de Madrid. En este conjunto de datos, disponemos de la serie temporal horaria para cada contaminante en cada estación de medida del Ayto. de Madrid, para los meses comprendidos entre enero y mayo de 2020. Para la interpretación del conjunto de datos es necesario obtener también el fichero de interpretación en formato pdf. Ambos ficheros pueden descargarse desde el siguiente sitio web (También está disponible a través de datos.gob.es).

Herramientas de visualización interactiva de los datos

Gracias al uso de herramientas modernas de visualización de datos (en este caso Microsoft Power BI, una herramienta gratuita y de fácil acceso) en tan solo 30 minutos hemos podido descargar los datos de calidad del aire de todo el 2020 (aproximadamente medio millón de registros) y crear un informe interactivo. En este informe, el usuario final puede escoger la estación de medida, bien haciendo uso del filtro de la izquierda o bien seleccionando la estación en mapa inferior. Además, el usuario puede escoger el contaminante en el que esté interesado y un rango de fechas. En esta captura estática del informe, hemos representado todas las estaciones y todos los contaminantes. El objetivo es ver la significativa reducción de la contaminación en todos los contaminantes (excepto el ozono debido a la supresión de los óxidos de nitrógeno) debido a la situación de brusco confinamiento ocasionado por la pandemia del Covid-19 desde mediados del mes de marzo. Para realizar este ejercicio podríamos haber utilizado otras herramientas como MS Excel, Qlik, Tableau o paquetes de visualización interactivos sobre entornos de programación como R y Python. Estas herramientas son perfectas para comunicar los datos sin necesidad de disponer de competencias en programación o codificación. 

En conclusión, la disciplina de visualización de datos (Visual Analytics en inglés) es un campo inmenso que cobra gran relevancia hoy en día gracias a la proliferación de las interfaces web y móvil donde quiera que miremos. Las visualizaciones interactivas, empoderan al usuario final y democratizan el acceso al análisis de datos con herramientas libres de código (codeless), mejorando la transparencia y el rigor en la comunicación en cualquier aspecto de la vida y la sociedad, cómo la ciencia, la política y la educación.


Contenido elaborado por Alejandro Alija,experto en Transformación Digital e Innovación.

Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.

calendar icon