Cómo elaborar un Dashboard sobre el COVID-19 – parte 1

Para seguir la evolución de la pandemia, he construido un dashboard que pueden visitar en http://bit.ly/PBNCOVID19, y en esta serie de artículos voy a enseñarles a construirlo paso a paso. No es necesario tener experiencia en Power BI para poder seguir este manual, pero -por si son nuevos- les cuento que necesitan instalar Power BI Desktop en una laptop con sistema operativo Windows. Recordemos que suele ser más conveniente instalarlo desde la tienda (Microsoft Store) que descargarlo. Pueden leer sobre ello aquí.

Lo primero que debemos hacer para elaborar un dashboard, cualquiera que sea, es entender el problema y seguidamente diseñar un modelo de datos adecuado. Debemos resistir a la tentación que todo principiante tiene de buscar los datos, cargarlos inmediatamente al software tal como vienen y comenzar a pintar gráficas y mapas. Es más, incluso comienzan a desarrollar fórmulas en Power BI en un lenguaje llamado DAX y ya se sienten poderosos cuando -de pronto- se chocan con una pared imposible de atravesar: no pueden obtener un análisis particular. Ese es el camino incorrecto: primero se debe pensar en el modelo de datos. Hago una breve discusión sobre ello aquí.

El primer paso siempre debe ser diseñar un modelo de datos adecuado al problema. El modelo de datos se realiza en un papel, no en el software.

En este caso el problema analítico es bastante simple (porque las noticias se han encargado de que lo entendamos bien): cada día se reportan -lamentablemente- nuevas infecciones (# casos) y nuevos decesos (# muertes) en cada país. Esto suena a ser la tabla principal, tabla necesaria en cada modelo de datos: una tabla que refleje eventos o sucesos que transcurren (llamada tabla de hechos o fact table en la jerga técnica). Esa tabla la llamaremos «Contagio» y se vería así:

Tabla Contagio

Cada línea, cada fila, cada registro de esa tabla, muestra cuántos casos nuevos de infección, cuántos nuevos fallecidos hay en un país en una fecha determinada. Un ejemplo de cómo se vería es el que sigue:

Ejemplo de datos de la tabla Contagio

La primera línea, por ejemplo, dice que el 24 de marzo de 2020, en el Perú, se registraron 32 casos nuevos de infección por COVID-19 y ninguna muerte.

Es necesario recalcar que el orden de las filas no debe importar. En el gráfico se ve que está ordenado por fecha, pero podría estar ordenado por país o completamente desordenado y no importará pues el resultado final será el mismo. Solo importa que cada fila represente la información que necesitamos, y que estén todas las filas que queremos; el orden no importa para absolutamente nada.

El orden de las filas de una tabla no tiene importancia

No es difícil deducir por qué a una tabla así se le llama «Tabla de Hechos» pues refleja lo que sucede (los hechos) momento a momento (en este caso cada día).

Una vez definida la tabla principal, las demás tablas «caen por su peso». Veamos: en la tabla de hechos tengo dos datos numéricos importantes en sí mismos (# casos y # fallecidos) y otros dos datos (fecha y país) que sirven para describir, calificar o analizar los primeros. Por ejemplo, me interesaría ver el # casos por país , el # fallecidos por fecha, o tal vez esos números por fecha y por país a la vez. Resulta que la preposición por delata la presencia de un criterio de análisis («dimensión» en jerga técnica), y cada criterio suele necesitar una tabla propia. Por ejemplo si me interesa agrupar a los países por continentes, o describir las fechas por semana, mes o día, la información de esas agrupaciones o descripciones de cada dimensión requieren estar en una tabla. Aquí se muestran las dos tablas respectivas:

Dimensiones

Dije que cada criterio suele necesitar una tabla porque puede no darse el caso. Si en nuestro ejemplo nos bastara con el nombre del país y no quisiéramos nunca agruparlos por continente, entonces nuestra dimensión tendría una sola columna (nombre de país) y sería suficiente que esté «dentro de» la tabla de hechos; no le crearíamos tabla de dimensión alguna.

A continuación, un ejemplo de cómo se vería la tabla País:

Dimensión País

Ahora, un ejemplo de cómo se vería la tablaFecha:

Dimensión Fecha

Teniendo ya estas tres tablas, solo faltaría relacionarlas entre sí. Es decir, hemos de hacer evidente que el campo «país» de la tabla Contagio tiene los mismos valores que el campo «país» de la tabla «País». Algo así como un «código común». El código puede ser el nombre del país, o podemos tener un código aparte para ello. Para Power BI es indiferente usar como código el nombre completo del país o, digamos, el código estándar de 2 o de 3 caracteres. Esto dependerá de cómo obtengamos la data. Para el caso de la fecha, es precisamente la fecha el campo común, el código común que permitirá relacionar ambas tablas. Con eso, nuestro modelo final («en papel») se ve así:

Modelo de Datos

Las flechas representan la relación. Una relación no es más que un vínculo entre dos tablas que dice que una de ellas es una especie de maestro de códigos o catálogo, y la otra hace uso de esos códigos para describir -normalmente- eventos. En el caso de la relación entre País y Contagio, la tabla país (la dimensión país), tiene una línea por cada país a analizar y no tiene países repetidos. Por ningún motivo dos filas de esa tabla tienen el mismo país. No tendría sentido lógico si esa tabla debe ser un maestro de países. La dirección de la flecha indica el sentido del filtro. Es decir, cuando se seleccione un país (en alguna gráfica, por ejemplo) automáticamente solo serán visibles las filas de la tabla de Contagio que coincidan con ese código de país. Eso permite realizar cálculos fácilmente. Si desean una explicación más detallada sobre modelo de datos y relaciones la encontrarán en este artículo.

Dicho esto, necesitamos conseguir datos. Esta fuente (actualizada por las mañanas, hora de Perú), me parece interesante: datos publicados por el Centro Europeo de Prevención y Control de Enfermedades (ECDC por sus siglas en inglés). La cabecera y las primeras filas del archivo CSV descargado desde ahí se ven así:

Luego de revisar un poco, nos damos cuenta de que los campos corresponden respectivamente a: Fecha, día, mes, año, casos, muertes, nombre del país o territorio, código de país (2 letras), código de país (3 letras), población al 2018. De aquí podemos sacar la información para llenar las tablas que necesitamos en nuestro modelo. Es muy importante entender cómo vienen los datos para poder adecuarlos al modelo. La estructura de dicho modelo debe ser el norte para asegurar el éxito de nuestro análisis en Power BI.

Debemos adecuar la forma de los datos a nuestro modelo de análisis, no al revés.

Para cargar los datos, utilizaremos la funcionalidad «Transformar Data» de Power BI Desktop. Una de las mejores capacidades de Power BI, es que automáticamente se puede cargar datos nuevos y todos los gráficos se actualizarán al instante. Cargaremos la data y hablaremos de ello en el siguiente artículo.

Deja un comentario