I nomi predefiniti sono here(1); //Scegli Giurisdizione , 'Stati Uniti' o un nome di stato, corrisponde a un valore in quella colonna nei file csv. Filtro giurisdizione = "Stati Uniti"; //Filtro Giurisprudenza = "Illinois"; //Esporta i dati in file csv dai seguenti siti: //
https://data.cdc.gov/NCHS/Weekly-Counts-of-Deaths-by-State-and-Select-Causes/3yf8-kanr // https

/data.cdc.gov/NCHS/Weekly-Provisional-Counts-of-Deaths-by-State-and-S/muzy-jte6 dtFinal = Open( pick file("Apri il file finale (Conteggio settimanale dei decessi per stato )", "$Download"), colonne( Nuova colonna( "Giurisdizione dell'occorrenza", Carattere, "Nominale" ), Nuova colonna( "Anno MMWR", Numerico, "Continuo", Formato( "Migliore", 12 ) ) , Nuova colonna( "Settimana MMWR", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Data fine settimana", Numerico, "Continuo", Formato( "m/g/a", 10 ), Input Format( "m/d/y" ) ), New Column( "All Cause", Numeric, "Continuous", Format( "Best", 12 ) ), New Column( "Natural Cause", Numeric, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "Setticemia (A40-A41)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "Tumori maligni (C00 -C97)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Diabete mellito (E10-E14)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Malattia di Alzheimer (G30)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Influenza e polmonite (J10-J18)", Numerico, "Continuo", Formato( " Migliore", 12 ) ), Nuova Colonna( "Malattie croniche delle basse vie respiratorie (J40-J47)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "Altre malattie dell'apparato respiratorio (J00- J06,J30-J39,J67,J70-J98)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Nefrite, sindrome nefrosica e nefrosi (N00-N07,N17-N19,N25 -N27)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Sintomi, segni e reperti clinici e di laboratorio anormali, non classificati altrove (R00-R99)", Numerico, "Continuo" , Formato( "Migliore", 12 ) ), Nuova Colonna( "Malattie del cuore (I00-I09,I11,I13,I20-I51)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuovo Colonna( "Malattie cerebrovascolari (I60-I69)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "flag_allcause", Carattere, "Nominale" ), Nuova colonna( "flag_natcause", Carattere , "Nominale" ), Nuova colonna( "flag_sept", Carattere, "Nominale" ), Nuova colonna( "flag_neopl", Carattere, "Nominale" ), Nuova colonna( "flag_diab", Carattere, "Nominale" ), Nuova colonna ( "flag_alz", Carattere, "Nominale" ), Nuova colonna( "flag_inflpn", Carattere, "Nominale" ), Nuova colonna( "flag_clrd", Carattere, "Nominale" ), Nuova colonna( "flag_otherresp", Carattere, " Nominale" ), Nuova colonna( "flag_nephr", Carattere, "Nominale" ), Nuova colonna( "flag_otherunk", Carattere, "Nominale" ), Nuova colonna( "flag_hd", Carattere, "Nominale" ), Nuova colonna( " flag_stroke", Carattere, "Nominale" ) ), Importa impostazioni( Fine riga( CRLF, CR, LF ), Fine campo( Virgola, CSV( 1 ) ), Elimina virgolette( 1 ), Usa apostrofo come virgolette( 0 ), Usa impostazioni internazionali( 0 ), Scansiona intero file( 1 ), Tratta colonne vuote come numeriche( 0 ), CompressNumericColumns( 0 ), CompressCharacterColumns( 0 ), CompressAllowListCheck( 0 ), Labels( 1 ), Inizio nomi colonne( 1 ) ), Data Starts( 2 ), Lines To Read( "All" ), Year Rule( "20xx" ) ) ); dtProv = Open( Pick File("Apri file provvisorio (conteggi provvisori settimanali dei decessi)", "$Download"), colonne( New Column( "Data As Of", Numeric, "Continuous", Format( "m/d/ y", 10 ), Input Format( "m/d/y" ) ), Nuova colonna( "Giurisdizione dell'occorrenza", Carattere, "Nominale" ), Nuova colonna( "MMWR Anno", Numerico, "Continuo", Formato ( "Migliore", 12 ) ), Nuova colonna( "Settimana MMWR", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Data fine settimana", Numerico, "Continuo", Formato( "aaaa-mm-gg", 10 ), Formato di input( "aaaa-mm-gg" ) ), Nuova colonna( "Tutte le cause", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna ("Causa naturale", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Setticemia (A40-A41)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Tumori maligni (C00-C97)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Diabete mellito (E10-E14)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Malattia di Alzheimer (G30)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Influenza e polmonite (J09-J18)", Numerico , "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "Malattie croniche delle vie respiratorie inferiori (J40-J47)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( " Altre malattie dell'apparato respiratorio (J00-J06,J30-J39,J67,J70-J98)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "Nefrite, sindrome nefrosica e nefrosi (N00 -N07,N17-N19,N25-N27)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "Sintomi, segni e reperti clinici e di laboratorio anormali, non classificati altrove (R00-R99 )", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "Malattie del cuore (I00-I09,I11,I13,I20-I51)", Numerico, "Continuo", Formato( " Migliore", 12 ) ), Nuova colonna( "Malattie cerebrovascolari (I60-I69)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "COVID-19 (U071, Molteplici cause di morte )", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova Colonna( "COVID-19 (U071, Causa sottostante del decesso)", Numerico, "Continuo", Formato( "Migliore", 12 ) ), Nuova colonna( "flag_allcause", Carattere, "Nominale" ), Nuova colonna( "flag_natcause", Carattere, "Nominale" ), Nuova colonna( "flag_sept", Carattere, "Nominale" ), Nuova colonna( "flag_neopl" , Carattere, "Nominale" ), Nuova colonna( "flag_diab", Carattere, "Nominale" ), Nuova colonna( "flag_alz", Carattere, "Nominale" ), Nuova colonna( "flag_inflpn", Carattere, "Nominale" ), Nuova colonna( "flag_clrd", Carattere, "Nominal" ), Nuova colonna( "flag_otherresp", Carattere, "Nominal" ), Nuova colonna( "flag_nephr", Carattere, "Nominal" ), Nuova colonna( "flag_otherunk", Carattere , "Nominale" ), Nuova colonna( "flag_hd", Carattere, "Nominale" ), Nuova colonna( "flag_stroke", Carattere, "Nominale" ), Nuova colonna( "flag_cov19mcod", Carattere, "Nominale" ), Nuova colonna ( "flag_cov19ucod", Carattere, "Nominale" ) ), Impostazioni di importazione ( Fine riga ( CRLF, CR, LF ), Fine campo ( Virgola, CSV ( 1 ) ), Elimina virgolette ( 1 ), Usa apostrofo come virgolette ( 0 ), Usa impostazioni internazionali ( 0 ), Scansiona intero file ( 1 ), Tratta colonne vuote come numeriche ( 0 ), CompressNumericColumns ( 0 ), CompressCharacterColumns ( 0 ), CompressAllowListCheck ( 0 ), Labels ( 1 ), Inizio nomi colonne ( 1 ), Data Starts( 2 ), Lines To Read( "All" ), Year Rule( "20xx" ) ) ); dtProv:" Tutte le cause"n << Imposta Nome("Tutte le cause"); dtFinal:"Tutte le cause"n << Imposta Nome("Tutte le cause"); dtAll = dtFinal << Concatenate( dtProv, Crea colonna sorgente ); dtAll << Select Where(:Giurisdizione dell'occorrenza == Filtro giurisdizione ); dtSub = dtAll << Subset( Righe selezionate( 1 ), Solo colonne selezionate( 0 ) ); dtSub << Seleziona dove( :Data fine settimana > data dmy( 1,3,2020) ); //Nascondi nuovi dati dtSub << Nascondi ed escludi(1); ts = dtSub << Serie storica( X( :Data fine settimana ), Y( :Tutte le cause ), Ritardi di autocorrelazione( 52 ), Periodi di previsione( 52 ), ARIMA stagionale( 0, 0, 0, 1, 1, 1, 52, Prediction Interval( 0.99 ) ), SendToReport( Dispatch( {}, "Time Series Basic Diagnostics", OutlineBox, {Close( 1 )} ), Dispatch( {"Model Comparison"}, "", ScrollBox, {Background Color ( 117 )} ) ) ); dtPred = (((ts << XPath("//OutlineBox[
@helpKey='ARIMA Model']"))[1]) << Ottieni oggetto Scriptable) << Salva formula di previsione; dtJoined = dtSub << Join( With( dtPred ), Unisci colonne con lo stesso nome, per numero di riga ); dtJoined << New Column("Excess v Expected", Numeric, "Continuous", Format("Best", 12), Formula(:All Cause - :Predicted All Cause), Set Display Width(100)); dtJoined << Nuova colonna("Cumulativo[Eccesso v Previsto]", Numerico, "Continuo", Formato("Migliore", 12), Formula(Col Somma cumulativa(:Eccesso v Previsto)), Imposta larghezza visualizzazione(173)) ; ultima riga con valori effettivi = max(dtJoined << Ottieni righe where( !Is Missing( :All Cause ) ))-1; ultima data con valori effettivi = dtJoined:Week Ending Date[ultima riga con valori effettivi]; dtJoined << Costruttore di grafici( Dimensione( 1174, 786 ), Mostra pannello di controllo( 0 ), Mostra sottotitoli( 1 ), Variabili( X( :Data fine settimana ), Y( :"Cumulativo[Eccesso v previsto]"n ), Y( :Excess v Expected ), Y( :All Cause ), Y( :Predicted All Cause, Position( 3 ) ), Y( :"Upper CL (0.99) All Cause"n, Position( 3 ) ), Y( :"CL inferiore (0.99) Tutte le cause"n, Posizione( 3 ) ) ), Dimensioni relative( "Y", [229 204 387] ), Elementi( Posizione( 1, 1 ), Punti( X, Y, Legenda( 18 ) ) ), Elements( Position( 1, 2 ), Points( X, Y, Legend( 20 ) ), Area( X, Y, Legend( 22 ), Interval Style( "Band" ) ) ), Elements( Position ( 1, 3 ), Punti( X, Y( 1 ), Legenda( 13 ) ), Linea( X, Y( 2 ), Y( 3 ), Y( 4 ), Legenda( 15 ) ) ), Filtro dati locali (Aggiungi filtro( colonne( :Week Ending Date ), Where( :Week Ending Date >= 3471638400 & :Week Ending Date <= ultima data con valori effettivi ) ) ), SendToReport( Dispatch( {}, "Week Ending Date", ScaleBox , {Min( 3462203520 ), Max( ultima data con valori effettivi + in giorni(7) ), Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 ), Add Ref Line( ultima data con valori effettivi, "Solid ", "Black", Format( ultima data con valori effettivi, "ddMonyyyy"), 1 ), Label Row( Show Major Grid( 1 ) )} ), Dispatch( {}, "Cumulative[Excess v Expected]", ScaleBox, {Min( 0 ), //Max( 819328.125380856 ), Inc( 200000 ), Minor Ticks( 1 ), Add Ref Line( 0, "Solid", "Black", "", 1 ), Label Row( Show Major Grid ( 1 ) )} ), Dispatch( {}, "Excess v Expected", ScaleBox, {Min( 0 ), //Max( 26451.6956907074 ), Inc( 10000 ), Minor Ticks( 1 ), Add Ref Line( 0, "Solid", "Black", "", 1 ), Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )} ), Dispatch( {}, "All Cause", ScaleBox, {Min ( 0 ), //Max( 90470.7642581624 ), Inc( 10000 ), Minor Ticks( 4 ), Label Row( {Mostra griglia principale( 1 ), Mostra griglia minore( 1 )} )} ), Dispatch( {}, " 400", ScaleBox, {Legend Model( 22, Properties( 0, {Fill Color( 20 ), Transparency( 0.5 )}, Item ID( "Excess v Expected", 1 ) ) ), Legend Model( 13, Properties( 0 , {Line Color( 21 )}, Item ID( "All Cause", 1 ) ) ), Legend Model( 15, Properties( 0, {Line Color( 32 )}, Item ID( "Predicted All Cause", 1 ) ), Properties( 1, {Line Color( 70 )}, Item ID( "Upper CL (0.99) All Cause", 1 ) ), Properties( 2, {Line Color( 70 )}, Item ID( "Lower CL ( 0.99) Tutte le cause", 1 ) ) )} ), Dispatch( {}, "titolo grafico", TextEditBox, {Imposta testo( Filtro giurisdizione || " Morti effettive contro morti previste (morti in eccesso)" )} ), Dispatch( {}, "graph 1 title", TextEditBox, {Set Text( "Source:
https://data.cdc.gov/NCHS/Weekly-Counts -of-Deaths-by-State-and-Select-Causes/3yf8-kanr e
https://data.cdc.gov/NCHS/Weekly-Provisional-Counts-of-Deaths-by-State-and-S/muzy -jte6" )} ), Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ), Dispatch( {}, "Y title", TextEditBox, {Set Text( "Cumulative Excess Deaths" )} ), Dispatch( {}, "Y 1 title", TextEditBox, {Set Text( "Excess v Expected\!NDeaths per Month" )} ), Dispatch( {}, "Y 2 title", TextEditBox, {Set Text( "Morti al mese" )} ), Dispatch( {}, "400", LegendBox, {Legend Position( {18, [0], 20, [1], 22, [6, -3], 13, [2], 15, [3, 4, 5]} )} ), Dispatch( {}, "Graph Builder", FrameBox(3), {Add Graphics Script( 3, Description( "Script" ), dt = Current Data Table(); yMatrix = (dtJoined:All Cause << ottiene valori)[54::ultima riga con valori effettivi] |/ Matrix( Reverse( As List( (dtJoined:Predicted All Cause << ottiene valori)[54:: ultima riga con effettivi] ) ) ); xMatrix = (dtJoined:Week Ending Date << ottiene valori)[54::ultima riga con valori effettivi] |/ Matrix( Reverse( As List( (dtJoined:Week Ending Date << ottiene valori)[54::ultima riga con valori effettivi ] ) ) ); Colore riempimento ("Verde medio scuro"); Trasparenza( 0.5 ); Poligono( xMatrice, yMatrice ); ), Ordine riga griglia( 1 ), Ordine riga di riferimento( 3 )} ) ) ); dtFinal << Chiudi finestra; dtProv << Chiudi finestra; dtAll << Chiudi finestra; dtSub << Chiudi finestra; dtPred << Chiudi finestra;