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

En la parte 3 de esta serie hemos creado las medidas para construir nuestro dashboard, y aprendimos la importancia de crearlas primero y graficar después. Ahora vamos a incluir más información en la dimensión país para complementar nuestro análisis. En particular, agregaremos la población por país y los agruparemos en continentes.

Para ello vamos a modificar la consulta (query) con la que generamos la dimensión país. Sirva este artículo para entender que las consultas se pueden modificar a voluntad y que, si sabemos lo que estamos haciendo, podemos cambiar completamente orígenes de datos y transformaciones manteniendo los reportes funcionando correctamente.

Siempre es posible modificar consultas ya creadas.

Editemos la consulta (query): en el menú Inicio, damos clic en «Transformar datos». Con ello abrimos la ventana de edición de consultas como se observa a continuación:

Como observamos en el gráfico anterior, la ventana que se abre se llama «Editor de consultas» y si en la lista de consultas de la izquierda damos clic en «País» obtendremos a la derecha la lista de pasos que hemos aplicado para obtener la tabla del mismo nombre. Si en esa lista de pasos, seleccionamos el último paso veremos el resultado final.

Importante: para ver el resultado de un paso, hay que hacer clic sobre el nombre del mismo tal como se muestra marcado en rojo en la figura que sigue. Si, por el contrario, diéramos clic en la equis ( X ) que figura a la izquierda del nombre, estaríamos borrando ese paso y alterando el resultado.

Nuevamente, vemos que en el resultado final solo está el nombre del país y los códigos de 2 y 3 letras. Pero si vamos al primer paso y desplazamos hacia la derecha la vista que ahí aparece, veremos una columna llamada «popData2018».

Esa columna tiene la información que necesitamos pero la hemos eliminado en el segundo paso:

Por tanto, vamos a alterar el segundo paso para que no elimine la columna que deseamos. Si recordamos lo que hicimos en la parte 2 de este artículo, hemos marcado las tres columnas mencionadas y le dimos en «Remover otras columnas». Para modificar el paso, damos clic en el engranaje que aparece a la derecha del nombre del paso:

En la ventana que aparece, vemos que está desmarcado el campo de población. Lo marcamos y damos «OK»:

Vemos que ahora la columna población se incluye ahora en la vista y si marcamos el último paso, esa columna permanece. Es lo que necesitábamos para tener la población por país en nuestra tabla. Asegurémonos de que esa columna sea de tipo número entero para no tener problemas luego. En este caso, es numérico:

Cambiemos el nombre del campo a «Población» y luego vayamos al menú «Inicio» y le damos «Cerrar y Aplicar»:

Con el cuidado del caso, se puede insertar o eliminar pasos dentro de una consulta

Listo, nuestra tabla «Pais» incluye ahora la población. Podemos hacer una medida llamada Pob para tener en ella, precisamente, la población del país (o países) seleccionados en un momento en particular. La fórmula para esta medida sería:

Pob := SUM(Pais[Poblacion])

Creemos la medida como hemos hecho con las anteriores y no olvidemos de darle el formato deseado. Gracias a esta medida, podremos ahora generar un cálculo estándar para comparar contagios y muertes entre países. Esto se lograría dividiendo el número de casos entre la población del país. Para que no salga un número tan pequeño, hagamos el cálculo de casos por millón de habitantes y de muertes por millón de habitantes, tal como lo muestran las fórmulas:

Total Casos por millón = DIVIDE([Total Casos]; [Pob]) * 1000000

Total muertes por millón = 
DIVIDE([Total Muertes]; [Pob]) * 1000000

En DAX, para dividir se suele usar la función DIVIDE() en lugar de dividir directamente con el operador / . ¿Por qué? Porque cuando el denominador es cero, la función DIVIDE() no retorna error al contrario que el operador / (que al dividir entre cero retornaría el valor «Infinity», volviendo imposible operaciones posteriores).

En DAX, se recomienda dividir usando la función DIVIDE( ) en lugar de usar el símbolo / . Esto evita errores de división entre cero.

Como acabamos de crear las medidas, debemos probarlas en una tabla tal como recomendáramos antes. Si construimos una tabla como la que sigue, veremos que las medidas funcionan bien:

Notamos que cada país aparece al lado de su población y las nuevas medidas muestran los cálculos correctos.

Listo, ahora faltaría agrupar a los países en continentes. Esto parecería un poquito más complicado en la medida en que la información de continente no viene en la data a la que nos conectamos originalmente. No importa; una simple búsqueda en internet de países y sus continentes (country and continent list) nos arroja un enlace a la página datahub.io:

Si en esa página damos clic derecho en el enlace marcado con rojo vemos la siguiente data:

Al parecer, la data es útil. Tenemos en esa data la lista de países, sus códigos de 2 y de 3 letras, y -lo más importante- el continente al que pertenecen. Veámosla más a detalle. Regresemos a la página anterior y en lugar de dar clic le damos clic derecho y seleccionamos «Copiar dirección de enlace» obtenemos este enlace

https://datahub.io/JohnSnowLabs/country-and-continent-codes-list/r/country-and-continent-codes-list-csv.csv

Ahora regresamos a Power BI Desktop y seleccionamos en el menú [Inicio», «Nuevo origen» y «Texto/CSV»

En la ventana que aparece pegamos el link que obtuvimos de la página de internet y le damos «OK». Aparece esta ventana, le damos otra vez «OK».

Listo. Tenemos la consulta que nos muestra como se vería la tabla. Una exploración detallada de la misma, nos arroja los siguientes resultados:

  • algunos países no tienen código de tres letras asignado (son cuatro países que aparecen al final de la tabla. dejo al lector que los revise). Esto se evidencia cuando se hace clic en la flecha al costado del código de tres letras y notamos que el primer valor es «(en blanco)».

Como vemos a continuación, esto no pasa cuando revisamos los códigos de dos letras (no aparece la opción «en blanco»). Usaremos entonces el código de dos letras.

  • Algunos países aparecen dos veces (porque – por ejemplo- tienen parte de su territorio en Europa y parte en Asia como Azerbaiyán en la imagen)

Es muy importante no solo entender la data que se está usando sino detectar errores en calidad de datos (duplicidad, códigos en blanco, etc.)

El hecho de que los países estén duplicados genera una complicación: ¿a qué continente asignamos los contagios y muertes de ese país? Hemos de tomar una decisión, aquí lo haremos muy sencillo: como el país más grande que presenta este «problema» es Rusia, y si asignáramos Rusia a Europa afectaríamos demasiado a Asia, entonces en caso de duplicidad asignaremos el país al continente que aparezca primero en orden alfabético. Así Rusia pertenecerá a Asia (que alfabéticamente está antes que Europa) y los demás países seguirán suerte similar. Para hacer eso, usaremos la técnica de agrupamiento: seleccionemos la columna «Country_Name» y luego en el menú «Transformar», escogemos «Agrupar por».

En la pantalla que aparece, seleccionamos las siguientes opciones de agrupamiento usando el mecanismo avanzado (opción 1) y agregando agrupaciones:

Listo, tenemos una vista de países y continente al que pertenecen. Pongámosle el nombre «PaisContinente» para recordar de qué se trata esta consulta.

Ahora tenemos que lograr que esta información se integre dentro de la consulta «Pais» pues es ahí donde necesitamos que aparezca la información. Para esto usaremos la funcionalidad llamada «Combinar consultas» o «Merge» en inglés. Esta funcionalidad, junto con «Anexar» o «Append» figuran dentro del menú denominado «Combinar» o «Combine». En la versión en castellano, las traducciones son distintas y en lugar de usar tres palabras distintas para el menú y las dos opciones, usan solo dos; cuidado de confundirse con eso.

Bueno, combinar («Merge») permite que dos consultas se fusionen a través de un código común. Seleccionemos entonces la consulta «País» y luego «Combinar Consultas» tal como se muestra en el gráfico.

Dos consultas distintas se pueden «fusionar» en una sola combinándolas («Merge») o anexándolas («Append»). Combinar usa un código común en las dos consultas para generar una sola fila con los campos de ambas tablas. Anexar pone una consulta «debajo» de la otra generando una nueva consulta con la suma de las filas de las consultas originales.

La pantalla que aparece luego permite configurar la combinación. Primero escogemos la tabla con la que queremos combinar (1) que es la que tiene la información de continente, luego seleccionamos las columnas que tienen el código común en cada tabla (2) y finalmente el tipo de combinación (3). Los nombres técnicos de los tipos de combinación pueden ser complicados de entender pero si leemos la descripción entre paréntesis se facilita la tarea. En el caso graficado abajo el resultado incluirá todas las filas de la primera tabla («País») y solo aquellas filas de la segunda que tengan un código que coincida con alguna fila de la primera tabla. Nótese el mensaje que aparece al final de la pantalla (encerrado en el círculo rojo en el gráfico). Ahí se nos advierte que solo 205 de las 209 filas de la tabla «País» tienen alguna coincidencia con la segunda tabla. Eso significa -en términos prácticos- que hay cuatro países (cuatro códigos) que no figuran en la tabla PaisContinente y -por ello- no sabemos a qué continente pertenecen. Por ahora está bien, resolveremos eso posteriormente. Damos OK.

Listo. Aparece la vista de la consulta con una nueva columna a la derecha que, además de tener otro color, dice «Tabla» en su contenido. Hacemos lo que marco a continuación, terminando con OK.

Hemos ahora combinado las consultas y, como resultado, «traído» el nombre del continente a la tabla «País». Si nos desplazamos hasta el final de la consulta, veremos cuáles son esos cuatro países para los cuales no obtuvimos información de continente:

Ahora que aprendimos a combinar consultas, podríamos buscar otra fuente de datos que nos traiga la lista de continentes para todos los países, o generar una hoja Excel que tenga todo completo y usar esta nueva fuente en lugar de la que hemos usado aquí en este artículo. Eso es saludable y si desean hacerlo, adelante. En este caso, propongo «arreglar» la situación generando una tabla de solo cuatro filas que tenga el código y el continente del caso. Aquí, asignaremos el primer país a Asia (en realidad, pertenece a una embarcación) y los otros tres países los asignaremos a Europa, como corresponde. Como es una tabla de solo cuatro filas, en lugar de generar un archivo Excel y luego cargarlo la digitaremos directamente en Power BI. Vayamos al menú «Inicio», «Especificar datos».

En la tabla marcada arriba dentro de un círculo rojo, digitamos los datos para los cuatro países faltantes teniendo cuidado de no equivocarnos en los códigos ni en el nombre de continente (que debe estar en inglés para que coincida con los que ya jalamos de internet). A esta tabla le pondremos «ContinentesFix» (algo así como «ParcheDeContinentes» pero más corto.) No olvidemos poner nombres apropiados a las dos columnas de esta nueva tabla.

Le damos OK y ya tenemos la consulta creada. Sí; la pantalla dice «Crear Tabla» pero en realidad sabemos que estamos creando una consulta. Por si acaso, si cometimos un error y queremos modificar el contenido digitado, seleccionamos la consulta (1) y luego hay que presionar el botón que se señala en el gráfico a continuación (2).

En este caso, no vamos a modificar nada; solo quería mostrarles la interfaz.

Es posible digitar una tabla directamente en Power BI. Se recomienda hacer esto solo en casos muy puntuales de tablas pequeñas cuyos valores no cambian con el tiempo.

Bueno, ahora tenemos casi el mismo problema de antes: tenemos una tabla «País» a la cual queremos agregarle la información de continente que está en la tabla «ContinentesFix». Entonces, hagamos lo mismo que antes para agregar una columna adicional que contenga el nombre de continente. Para quienes prestan atención al detalle, notarán que vamos a terminar con una consulta «País» que tendrá dos columnas con información de continente. Eso estará bien.

Ya sabemos como hacer esto pero, por si acaso, les recuerdo los pasos seguidos antes en una sola pantalla a continuación: (1) seleccionamos la tabla «País» (pues a ella queremos traer la nueva columna); seleccionamos la opción correcta de combinar tablas (no se muestra abajo, pero ya párrafos arriba mostramos la opción; escogemos la tabla «ContinentesFix» (2) y las columnas con códigos comunes (3); seleccionamos el tipo de combinación (4) y notaremos en el mensaje (círculo rojo) que solo cuatro países coinciden (eso está bien pues nuestra tablita tiene solo cuatro filas).

Le damos OK y obtenemos una columna nueva. La expandimos como antes:

Ahora tenemos dos columnas: «Continente» y «Continente.1». Nótese que no hay fila en la que ambas tengan valor a la vez. ¿Tiene sentido? ¡Claro! Los cuatro países para los que no teníamos nombre de continente al principio, ahora sí tienen ese nombre en la segunda columna. ¿Cómo hacer para juntar esta información en una sola columna? Fácil, concatenamos las columnas. Esto se hace con la opción «Combinar columnas» que se muestra a continuación.

Al dar OK aparece la siguiente pantalla que nos permitiría poner un separador entre las columnas concatenadas. No necesitamos tal cosa así que le damos OK.

Listo. Notamos que las dos columnas originales «desaparecieron» y se transformaron en una sola llamada «Merged». Le cambiamos el nombre a esta columna y le ponemos «Continente».

Tenemos en este momento cinco consultas, como se ve en el gráfico de más abajo, pero tanto «PaísContinente» como «ContinentesFix» son consultas temporales, auxiliares, que no necesitamos que se conviertan en tablas. Entonces, tal como hiciéramos antes con la consulta denominada «csv», deshabilitamos la carga de ambas (clic derecho sobre el nombre y le quitamos el check en «Habilitar Carga»)

Listo, nótese que los dos nombres de consulta aparecen ahora con otro tipo de letra (indicando que no se transformarán en tabla). Le damos clic en «Cerrar y Aplicar»

Listo. Notamos ahora que nuestra tabla «País» tiene -finalmente- el campo continente. Para probarlo, generemos rápidamente un gráfico de casos por continente con el procedimiento de antes: clic en «Total casos» y clic en «Continente» y aparecerá lo siguiente:

Listo. Ya tenemos los datos que necesitamos para hacer análisis relevantes. Hasta aquí llega esta entrega. En la próxima parte de esta serie nos dedicaremos solamente a crear gráficos y habilitar análisis interesantes para los usuarios. Concluyamos por ahora que, para garantizar un fácil desarrollo, lo mejor es dedicar tiempo a crear el modelo de datos teórico, entender y adecuar la data al modelo, y crear las medidas para el análisis. De ahí en adelante, todo será como un juego de niños.

4 comentarios sobre “Cómo elaborar un Dashboard sobre el COVID-19 – parte 4

Deja un comentario