
Visualizzazione dei casi globali di coronavirus COVID-19
Utilizzo di un grafico a bolle animate di serie storiche
Ho raccolto risorse qui per aiutarti con le visualizzazioni. Guarda il video del live webinar del 26 marzo 2020, leggi perché ho scelto queste analisi, accedi ai dati o al Rapporti JMP Live , prova i miei script allegati e/o usa i dati prova a fare le tue analisi.
Ci sono molti aggiornamenti in questo continuo sforzo per comunicare i dati sulla diffusione del coronavirus COVID-19. Nell'ultima versione ho incluso alcuni grafici del generatore di grafici guardando il riepilogo globale e i riepiloghi locali. Anche i grafici a bolle sono aumentati di colore per rappresentare i cambiamenti giornalieri nei conteggi. C'è una scheda per passare dalla scala logaritmica a quella lineare nei grafici e, nella figura dei conteggi locali, il grafico della scala lineare presenta un grafico con asse diviso per mostrare insieme le regioni di conteggio inferiore e superiore.
Dai un'occhiata alla versione HTML qui sul Pagina live di JMP.
Prefazione:
- Il coronavirus e tutti i problemi causati dalla sua diffusione sono gravi e colpiscono molte persone, alcune in modi orribili. Non è mia intenzione banalizzare la gravità della cosa creando questa figura. Né è mio obiettivo promuovere l'isteria o la xenofobia.
- Nel mio script ricodifico i nomi dei luoghi utilizzati dagli autori originali. Non ho un programma politico. Quando utilizzo l'API di Google Map per geocodificare, ne ho bisogno per fornirmi le posizioni dei paesi. Taiwan, Taiwan risulta in un ristorante, mentre Taiwan, Cina risulta in un geocodifica vicino al centro di Taiwan. Di nuovo, questo non è politico, è funzionale.
- Tutti i dati relativi alla segnalazione e al rilevamento del Coronavirus sono estremamente controversi. Non garantisco l'accuratezza di questi dati; è comunque la migliore aggregazione di dati pubblicamente disponibili (in inglese) che io conosca. Se hai qualcosa di meglio, fammelo sapere.
- Non sono i miei dati. I ragazzi della Johns Hopkins University, Whiting School of Engineering, nel Center for Systems Science and Engineering hanno pubblicato una dashboard dall'aspetto gradevole insieme ai dati. Enormi ringraziamenti e complimenti a questo team per aver reso disponibili i propri dati.Leggi il loro Blog e sicuramente dai un'occhiata al loro visualizzazione.
Hanno anche istituito un Pagina GitHub con i dati grezzi in un formato facilmente accessibile. (Complimenti x 10 ^ 6).
Perché utilizzare un grafico a bolle con un'animazione di serie storiche?
I grafici a bolle hanno un alto grado di utilità in quanto un gran numero di dimensioni può essere rappresentato in un singolo grafico. Con l'aggiunta di un'animazione di serie temporali, i cambiamenti nelle relazioni tra queste dimensioni possono essere visualizzati e comunicati senza un'intera complessa elaborazione pre-attenta da parte dello spettatore. (ovvero: hanno un bell'aspetto e sono facili da capire)
Nota che ho detto che un grafico a bolle è utile per osservare le relazioni di multiplo dimensioni animate nel tempo, non solo uno dimensione (variabile) animata nel tempo. Ho visto persone creare una trama simile a un grafico di esecuzione / controllo con una singola dimensione sull'asse X e il tempo sull'asse Y, e poi animarsi in base al tempo. Questo è chiamato un noioso grafico di esecuzione/controllo, per favore non farlo.
Per la figura che costruirò qui. Gli assi X e Y sono su una scala geodetica, in modo che i punti si allineino con una mappa. Possiamo vedere le relazioni spaziali dei punti sul grafico, a cui viene dato un contesto dalla forma della mappa di sfondo. Successivamente aggiungo una dimensione dimensione per i marcatori, che è il conteggio cumulativo dei casi per periodo di tempo per ogni posizione. Infine, utilizzo la sequenza del periodo di tempo per animare la trama che si traduce in bolle che crescono o appaiono nel tempo. Ognuno dei punti è etichettato per Paese e Regione. In questa figura, è possibile comprimere tutti i singoli punti nel loro ID paese o suddividerli nel loro ID regione all'interno dell'ID paese.
Lo script per generare il grafico sta inseguendo un bersaglio in movimento. Gli autori dei dati continuano ad apportare modifiche, quindi questo potrebbe funzionare solo per un paio di giorni se ci sono modifiche ai dati di origine. Dalla mattina del 2/12/2020 funziona. Alla fine dello script c'è un'opzione per pubblicare o aggiornare la figura in JMP Live. Questo non funzionerà per te perché non hai la mia chiave API top secret per accedere al pacchetto in JMP Live. Potrebbe essere utile come esempio di come far funzionare la pubblicazione e l'aggiornamento se si dispone di JMP Live.
Come funziona la sceneggiatura.
- Imposta tutte le variabili di cui ho bisogno più avanti nello script
- Scarica i dati e li formatta
- ci sono alcune cose strane in questa parte. In diversi punti salvo i dati in locale, chiudo la tabella e poi la riapro. Ho avuto problemi a forzare l'esecuzione sequenziale dello script e questo è un modo per farlo accadere. A volte una tabella non ha terminato l'aggiornamento prima dell'inizio del passaggio successivo e ho ottenuto tabelle traballanti.Questo metodo di forza bruta corrisponde al mio carattere e al mio stile.
- Genera il grafico a bolle
- Scopri se è necessario pubblicare o aggiornare, quindi pubblicare o aggiornare la figura
Osservando la sceneggiatura, potresti notare che ho racchiuso sezioni in espressioni. Questo è un modo pratico per sgombrare uno script lungo quando è combinato con l'opzione di raggruppamento del codice (controlla le preferenze per l'editor di script).
AGGIORNAMENTO 26/03/20
All'inizio di questa settimana il set di dati che stavo usando è stato deprecato. E questa mattina i dati obsoleti sono stati spostati in un'altra posizione. Inutile dire che questo progetto è davvero un bersaglio mobile! Johns Hopkins CSSE ha un altro repository GitHub di dati che viene aggiornato quotidianamente con i dati. Il nuovo script di seguito, "Compile COVID-19 Time Series Data", verificherà quali file sono presenti nel repository, quindi li scaricherà e li assemblerà. Questo set di dati ha alcune "caratteristiche" interessanti. Ho usato recode per risolverne molti e alcune formule creative per risolvere il resto.
Alcuni dei problemi e la risoluzione
-Le posizioni per ogni sito non sono coerenti, quindi ho utilizzato la posizione più attuale e l'ho sostituita ovunque.
-I conteggi cumulativi dovrebbero aumentare o rimanere invariati. Quando il conteggio cumulativo diminuisce, viene utilizzato il valore del giorno precedente. In questo modo si evitano numeri negativi nei conteggi giornalieri derivati dai conteggi cumulativi.
-I nomi delle colonne nelle tabelle non sono coerenti nel tempo. Le etichette sono unificate ai nomi delle colonne della tabella 3/24/20.
-Ci sono alcune incoerenze di errori di battitura e spazi iniziali/finali in alcuni nomi di località. Recode li risolve.
-Le posizioni sono in valore ordinato e colore ordinato dalla somma dei conteggi confermati in ciascuna posizione.
-Il tavolo finale non contiene formule. La tabella può essere ordinata senza influire sui calcoli dipendenti dall'ordinamento.
AGGIORNAMENTO 4/3/20
Oggi ho aggiornato lo script. Tieni presente che ci vorrà circa un minuto o poco più per funzionare. Stanno accadendo molte cose nella sceneggiatura di pulizia e alcune delle formule richiedono un po' di tempo per essere completate.
Questa versione include una sezione alla fine che rimuove le righe duplicate insieme a un paio di altre modifiche
Nuove formule di colonna per creare i grafici a bolle Cum Counts vs. Counts by day. Si tratta di una media mobile per colonne di posizione, anziché prendere la media di 5 o 7 giorni. La media mobile mi dà qualche punto in più su cui lavorare.
Articoli utili che hanno informato i grafici:
•Note su cosa tracciare in una serie temporale, in particolare un grafico a bolle. Si noti che i conteggi cumulativi creano bolle sempre crescenti, ma i conteggi giornalieri mostrano i punti caldi.(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
•Note sull'uso delle mappe e delle forme delle mappe. (Kenneth Field)
• https://www.esri.com/arcgis-blog/products/product/mapping/mapping-coronavirus-responsibly/
•Note sugli indicatori in ritardo e sull'interpretazione dei dati con scale di assi diversi. (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 Il vecchio trucco dell'asse diviso. Metti la tua variabile sull'asse x, e poi mettila di nuovo lì, a destra oa sinistra della prima. Semplice, vero? ma intrattabilmente difficile da risolvere, perché chi sano di mente metterebbe due volte la stessa variabile sullo stesso asse. Un asse ottiene l'estremità inferiore dell'intervallo e l'altro ottiene l'estremità superiore.
Ad esempio da 0 a 60 min a sinistra e da 1 a 24 ore a destra. E poi se vuoi diventare pazzo, dal giorno 2 al giorno 10 in un terzo asse x.
Questo progetto è una specie di inseguimento di un bersaglio mobile. Gli autori dei dati continuano a spostarli.
Ho aggiornato la sceneggiatura (sì, a San Valentino, ma mentre aspettavo che una mostruosa lasagna finisse di cuocere.)
Ora l'estrazione dei dati è un po' più semplice e invece di avere una casella di filtro dei dati, ogni categoria si trova nella propria scheda.
Inoltre c'era un problema di punti che non venivano visualizzati nel grafico a bolle, e anche questo è stato risolto.
Un modo davvero interessante e carino per fornire una sceneggiatura utile (e molto interessante) per stare al passo con questa tragedia globale della salute pubblica, Byron @Byron_JMP .È così utile che JMP gestisca i dati delle serie temporali.
Stavo per copiare il codice in un file .jsl, ma ho notato che è coinvolta una personalizzazione.Ad esempio, indichi il tuo account JMP Live.Puoi aggiornare lo script in modo che sia un po' più generico?E, grazie per il collegamento al Pagina GitHub con i dati grezzi quindi posso provare a esaminare i nuovi dati in JMP da solo.