
Visualización de casos globales de coronavirus COVID-19
Uso de un gráfico de burbujas animadas de serie temporal
He reunido recursos aquí para ayudarlo con las visualizaciones. Vea el video del seminario web en vivo del 26 de marzo de 2020, lea por qué elegí estos análisis, acceda a los datos o al Informes en vivo de JMP , pruebe mis scripts adjuntos y/o utilice los datos e intente hacer sus propios análisis.
Hay muchas actualizaciones en este esfuerzo continuo para comunicar datos sobre la propagación del coronavirus COVID-19. En la última versión, he incluido algunos diagramas de creación de gráficos que analizan el resumen global y los resúmenes locales. Además, los diagramas de burbujas se aumentan con color para representar los cambios diarios en los conteos. Hay un cuadro de pestañas para alternar entre escalas logarítmicas y lineales en los gráficos, y en la figura de recuentos locales, el gráfico de escala lineal presenta un gráfico de eje dividido para mostrar juntas las regiones de recuento inferior y superior.
Echa un vistazo a la versión HTML aquí en el Página JMP en vivo.
Prefacio:
- El coronavirus y todos los problemas causados por su propagación son graves y afectan a muchas personas, algunas de manera horrible. No es mi intención trivializar la seriedad de esto al crear esta figura. Tampoco es mi objetivo promover la histeria o la xenofobia.
- En mi guión recodifico los nombres de las ubicaciones que usan los autores originales. No tengo una agenda política. Cuando uso la API de mapas de Google para geocodificar, necesito que me proporcione ubicaciones de países. Taiwán, Taiwán da como resultado la ubicación de un restaurante, mientras que Taiwán, China da como resultado un código geográfico cerca del centro de Taiwán. Nuevamente, esto no es político, es funcional.
- Todos los datos que rodean el informe y la detección de Coronavirus son enormemente polémicos. No garantizo la exactitud de estos datos; sin embargo, es la mejor agregación de datos disponibles públicamente (en inglés) que conozco. Si tienes algo mejor, por favor házmelo saber.
- No son mis datos. La gente de la Universidad Johns Hopkins, la Escuela de Ingeniería de Whiting, en el Centro de Ciencia e Ingeniería de Sistemas, publicó un tablero atractivo junto con los datos. Muchas gracias y felicitaciones a este equipo por hacer que sus datos estén disponibles.Lee su Blog y definitivamente echa un vistazo a su visualización.
También establecieron un Página de GitHub con los datos sin procesar en un formato de fácil acceso. (Felicitaciones x 10 ^ 6).
¿Por qué usar un gráfico de burbujas con una animación de serie temporal?
Los diagramas de burbujas tienen un alto grado de utilidad en el sentido de que se puede representar una gran cantidad de dimensiones en un solo diagrama. Con la adición de una animación de serie de tiempo, los cambios en las relaciones entre estas dimensiones se pueden visualizar y comunicar sin una gran cantidad de procesamiento complejo de atención previa por parte del espectador. (también conocido como: Se ven geniales y son fáciles de entender)
Tenga en cuenta que dije que un gráfico de burbujas es útil para ver las relaciones de múltiple dimensiones animadas a lo largo del tiempo, no sólo uno dimensión (variable) animada en el tiempo. He visto a personas hacer un gráfico similar a un gráfico de ejecución/control con una sola dimensión en el eje X y el tiempo en el eje Y, y luego animar por tiempo. Esto se llama gráfico de ejecución/control tedioso, por favor no lo haga.
Para la figura que voy a construir aquí. Los ejes X e Y están en una escala geodésica, por lo que los puntos se alinearán con un mapa. Podemos ver las relaciones espaciales de los puntos en el gráfico, que se contextualizan mediante la forma del mapa de fondo. A continuación, agrego una dimensión de tamaño para los marcadores, que es el recuento acumulativo de casos por período de tiempo para cada ubicación. Por último, uso la secuencia del período de tiempo para animar la trama, lo que da como resultado burbujas que crecen o aparecen con el tiempo. Cada uno de los puntos está etiquetado por País y Región. En esta figura, es posible colapsar todos los puntos individuales en su ID de país o dividirlos en su ID de región dentro de la ID de país.
El Script para generar el gráfico está persiguiendo un objetivo en movimiento. Los autores de los datos siguen haciendo cambios, por lo que es posible que esto solo funcione durante un par de días si hay cambios en los datos de origen. A partir de la mañana del 12/02/2020, funciona. Al final del script hay una opción para publicar o actualizar la figura en JMP Live. Esto no funcionará para usted porque no tiene mi clave API ultrasecreta para acceder al paquete en JMP Live. Puede ser útil como ejemplo de cómo hacer que la publicación y la actualización funcionen si tiene JMP Live.
Cómo funciona el guión.
- Configura todas las variables que necesito más adelante en el script
- Descarga los datos y los formatea.
- Hay algunas cosas raras en esta parte. En varios puntos, guardo los datos localmente, cierro la tabla y luego la vuelvo a abrir. Estaba teniendo problemas para forzar la ejecución secuencial del script y esta es una manera de hacerlo realidad. A veces, una tabla no terminaba de actualizarse antes de que comenzara el siguiente paso y obtenía tablas inestables.Este método de fuerza bruta coincide con mi carácter y estilo.
- Generar el gráfico de burbujas
- Averigüe si necesita publicar o actualizar, y luego publique o actualice la figura
Al mirar el guión, puede notar que envolví secciones en expresiones. Esta es una forma práctica de ordenar un script largo cuando se combina con la opción de plegado de código (verifique las preferencias para el editor de scripts).
ACTUALIZACIÓN 26/03/20
A principios de esta semana, el conjunto de datos que estaba usando quedó obsoleto. Y esta mañana, los datos en desuso se trasladaron a otra ubicación. ¡No hace falta decir que este proyecto es realmente un objetivo en movimiento! Johns Hopkins CSSE tiene otro repositorio de datos en GitHub que se actualiza con datos diariamente. El nuevo script a continuación, "Compilar datos de series temporales de COVID-19", verificará qué archivos están en el repositorio y luego los descargará y ensamblará. Este conjunto de datos tiene algunas "características" interesantes. Usé recode para resolver muchos de ellos y algunas fórmulas creativas para resolver el resto.
Algunos de los problemas y la resolución.
-Las ubicaciones de cada sitio no son consistentes, así que usé la ubicación más actual y la reemplacé en todas las demás.
-Los recuentos acumulativos deben aumentar o permanecer igual. Cuando el recuento acumulativo disminuye, se utiliza el valor del día anterior. Esto evita números negativos en los conteos diarios que se derivan de los conteos acumulativos.
-Los nombres de las columnas en las tablas no son consistentes a lo largo del tiempo. Las etiquetas se unifican a los nombres de columna de la tabla 3/24/20.
-Hay algunas inconsistencias de errores tipográficos y espacios finales/iniciales en algunos nombres de ubicación. Recode los resuelve.
-Las ubicaciones están ordenadas por valor y por color según la suma de recuentos confirmados en cada ubicación.
-La tabla final no contiene fórmulas. La tabla se puede ordenar sin afectar los cálculos dependientes de la ordenación.
ACTUALIZACIÓN 4/3/20
Actualicé el guión hoy. Tenga en cuenta que tardará alrededor de un minuto o un poco más en ejecutarse. Están sucediendo muchas cosas en el script de limpieza y algunas de las fórmulas tardan un poco en completarse.
Esta versión incluye una sección al final que elimina las filas duplicadas junto con un par de otros ajustes.
Nuevas fórmulas de columna para hacer los gráficos de burbujas Cum Counts vs. Counts by day. Estos son promedios móviles por columnas de ubicación, en lugar de tomar la media de 5 o 7 días. El promedio móvil me da algunos puntos más para trabajar.
Artículos útiles que han informado los gráficos:
•Notas sobre qué trazar en una serie temporal, especialmente en un gráfico de burbujas. Tenga en cuenta que los conteos acumulativos crean burbujas cada vez mayores, pero los conteos por día muestran puntos calientes.(Joel Selanikio)
• https://www.futurehealth.live/blog/2020/2/17/all-the-coronavirus-maps-are-wrong
• https://www.futurehealth.live/blog/2020/2/10/coronavirus-dataviz-sucks
•Notas sobre el uso de mapas y formas de mapas. (Campo Kenneth)
• https://www.esri.com/arcgis-blog/products/product/mapping/mapping-coronavirus-responsably/
•Notas sobre indicadores rezagados e interpretación de datos con diferentes escalas de eje. (Kaiser Fung)
• https://junkcharts.typepad.com/numbersruleyourworld/2020/03/how-to-act-like-a-data-scientist-8-dont-use-lagging-indicators-to-forecast.html
@KevinB El viejo truco del eje dividido. Coloque su variable en el eje x y luego póngala allí nuevamente, a la derecha o izquierda de la primera. Sencillo, ¿verdad? pero intratablemente difícil de resolver, porque quién en su sano juicio pondría dos veces la misma variable en el mismo eje. Un eje obtiene el extremo inferior del rango y el otro obtiene el extremo superior.
Por ejemplo, de 0 a 60 minutos a la izquierda y de 1 a 24 horas a la derecha. Y luego, si quieres volverte loco, del día 2 al 10 en un tercer eje x.
Este proyecto es una especie de persecución de un objetivo en movimiento. Los autores de los datos siguen moviéndolos.
Actualicé el guión (sí, el día de San Valentín, pero mientras esperaba que terminara de hornearse una lasaña monstruosa).
Ahora la extracción de datos es un poco más simple y, en lugar de tener un cuadro de filtro de datos, cada categoría está en su propio cuadro de pestañas.
También había un problema de puntos que no aparecían en el gráfico de burbujas, y eso también se solucionó.
Una forma realmente interesante y agradable de dar un guión útil (y genial) para mantenerse al día con esta tragedia mundial de salud pública, Byron @Byron_JMP .Es muy útil que JMP maneje datos de series temporales.
Iba a copiar el código en un archivo .jsl, pero noté que se trata de algunas personalizaciones.Por ejemplo, apunta a su cuenta JMP Live.¿Puedes actualizar el script para que sea un poco más genérico?Y, gracias por enlazar a la Página de GitHub con los datos sin procesar por lo que puedo tratar de ver nuevos datos en JMP por mi cuenta.