I nomi predefiniti sono qui (1); //Scegli Giurisdizione , "Stati Uniti" o il nome di uno stato, corrisponde a un valore in quella colonna nei file CSV. Filtro giurisdizione = "Stati Uniti"; //Filtro per giurisdizione = "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 file finale (conteggio settimanale dei decessi per stato )", "$ Download"), columns (Nuova colonna ("Giurisdizione di occorrenza", Carattere, "Nominale"), Nuova colonna ("Anno MMWR", Numerico, "Continuo", Formato ("Migliore", 12)) , Nuova colonna ("Settimana MMWR", Numerico, "Continuo", Formato ("Migliore", 12 ) ), Nuova colonna ("Data di fine settimana", Numerico, "Continuo", Formato ("M/g/a", 10), Formato di input ("m/g/a")), 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("Neoplasie maligne (C00) -C97)", Numerico, "Continuo", Formato("Migliore", 12) ), Nuova colonna("Diabete mellito us (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 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 ("flag_allcaus e", 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")), 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 ), Scansione intero file ( 1 ), Tratta le colonne vuote come numeriche ( 0 ), CompressNumericColumns ( 0 ), CompressCharacterColumns ( 0 ), CompressAllowListCheck( 0 ), Etichette( 1 ), Inizio nomi colonna( 1 ), Inizio dati( 2 ) ), Righe da leggere( "Tutte" ), Regola anno( "20xx" ) ) ); dtProv = Open( Pick File("Apri file provvisorio (conteggio settimanale provvisorio dei decessi)", "$Download"), columns(Nuova colonna("Dati come di", Numerico, "Continuo", Formato("m/d/ y", 10), formato di input ("m/d/y")), nuova colonna ("giurisdizione di occorrenza", carattere, "nominale"), nuova colonna ("MMWR anno", numerico, "continuo", formato ("Migliore", 12 ) ), Nuova colonna ("Settimana MMWR", Numerico, "Continuo", Formato ("Migliore", 12 ) ), Nuova colonna ("Data di 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 ("Neoplasie maligne (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, "Co continuo", Formato("Migliore", 12)), Nuova colonna("Influenza e polmonite (J09-J18)", Numerico, "Continuo", Formato("Migliore", 12 ) ), Nuova colonna("Le vie respiratorie inferiori croniche malattie (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 risultati 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, più cause di morte)", Numerico, "Continuo", Formato ("Migliore", 12 ) ), Nuova colonna ( "COVID-19 (U071, Underl) ying Causa della morte)", 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") Colonna ("flag_nephr", Carattere, "Nominale"), 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 ) , Scansione intero file( 1 ), Tratta le colonne vuote come numeriche( 0 ), CompressNumericColumns( 0 ), CompressCharacterColumns( 0 ), CompressAllowListCheck( 0 ), Etichette( 1 ), Inizio nomi colonna( 1 ), Inizio dati( 2 ), Righe da leggere( "Tutte" ), Regola anno( "20xx" ) ) ); dtProv:" Tutte le cause"n << Set Name("Tutte le cause"); dtFinal:"Tutte le cause"n << Set Name("Tutte le cause"); dtAll = dtFinal << Concatenate( dtProv, Crea colonna sorgente ); dtAll << Seleziona Where(:Giurisdizione di occorrenza == Filtro giurisdizione); dtSub = dtAll << Sottoinsieme( Righe selezionate( 1 ), Solo colonne selezionate( 0 ) ); dtSub << Seleziona dove( :Data di fine settimana > date dmy( 1,3,2020) ); //Nascondi nuovi dati dtSub << Nascondi ed escludi(1); ts = dtSub << Serie temporali ( X ( : Data di fine settimana ), Y ( : Tutte le cause ), Ritardi di autocorrelazione ( 52 ), Periodi di previsione ( 52 ), ARIMA stagionale ( 0, 0, 0, 1, 1, 1, 52, Intervallo di previsione ( 0,99 ) ), SendToReport ( Invio ( {}, "Diagnostica di base serie temporali", OutlineBox, {Chiudi ( 1 )} ), Invio ( {"Confronto modelli"}, "", ScrollBox, {Colore sfondo ( 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 << Nuova colonna("Eccesso v previsto", Numerico, "Continuo", Formato("Migliore", 12), Formula(:Tutte le cause -:Tutte le cause previste), Imposta larghezza di visualizzazione(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 effettivi = max(dtJoined << Ottieni righe where( !Is Missing( :All Cause ) ))-1; ultima data con effettivi = dtJoined:Data di fine settimana[ultima riga con effettivi]; dtJoined << Generatore di grafici( Dimensione( 1174, 786 ), Mostra pannello di controllo( 0 ), Mostra sottotitoli( 1 ), Variabili( X( :Data di 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 ) ) ), Elementi ( Posizione ( 1, 2 ), Punti ( X, Y, Legenda ( 20 ) ), Area ( X, Y, Legenda ( 22 ), Stile intervallo ( "Banda") ) ), Elementi ( Posizione ( 1, 3 ), Punti ( X, Y ( 1 ), Legenda ( 13 ) ), Linea ( X, Y ( 2 ), Y ( 3 ), Y ( 4 ), Legenda ( 15 ) ) ), Filtro dati locale (Aggiungi filtro( colonne( :Data di fine settimana ), Where( :Data di fine settimana >= 3471638400 & :Data di fine settimana <= ultima data con effettivi) ) ), SendToReport( Dispatch( {}, "Data di fine settimana", ScaleBox , {Min( 3462203520 ), Max( ultima data con effettivi + in giorni(7) ), Interval( "Year" ), Inc( 1 ), Minor tick( 0 ), Aggiungi riga di riferimento (ultima data con effettivi, "Solido", "Nero", Formato (ultima data con effettivi, "ggMonyyyy"), 1 ), Riga etichetta (Mostra griglia principale ( 1 ) )} ), Invio ( { }, "Cumulative[Excess v Expected]", ScaleBox, {Min( 0 ), //Max( 819328.125380856 ), Inc( 200000 ), Minor tick( 1 ), Aggiungi riga di riferimento( 0, "Solid", "Black" , "", 1 ), Riga etichetta( Mostra griglia principale( 1 ) )} ), Dispatch( {}, "Eccesso v previsto", ScaleBox, {Min( 0 ), //Max( 26451.6956907074 ), Inc( 10000 ) , Minor tick( 1 ), Aggiungi riga di riferimento( 0, "Solid", "Black", "", 1 ), Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )} ), Dispatch ( {}, "Tutte le cause", ScaleBox, {Min( 0 ), //Max( 90470.7642581624 ), Inc( 10000 ), Minor tick( 4 ), Etichetta riga( {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 ) ) ), Modello legenda( 13, Proprietà( 0, {Colore linea( 21 )}, ID articolo( "Tutte le cause", 1 ) ) ), Modello legenda( 15, Prope rties( 0, {Line Color( 32 )}, Item ID( "Predicted All Cause", 1 ) ), Properties( 1, {Line Color( 70 )}, Item ID( "Upper CL (0.99) All Cause", 1 ) ), Proprietà( 2, {Colore linea( 70 )}, ID elemento( "Lower CL (0.99) All Cause", 1 ) ) )} ), Dispatch( {}, "titolo grafico", TextEditBox, {Set Testo (Filtro di giurisdizione || " Morti effettive contro decessi previsti (eccesso di morti)" )} ), Dispatch( {}, "titolo grafico 1", TextEditBox, {Set Text( "Fonte:
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 for Month" )} ), Dispatch( {}, "Y 2 title", TextEditBox, {Set Text( "Decessi al mese" )} ), Dispatch( {}, "400", LegendBox, {Posizione legenda( {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 << ottieni valori)[54::ultima riga con valori effettivi] |/ Matrix( Reverse( As List( (dtJoined:Predicted All Cause << ottieni valori)[54: :ultima riga con effettivi] ) ) ); xMatrix = (dtJoined:Week Ending Date << ottieni valori)[54::ultima riga con effettivi] |/ Matrix( Reverse( As List( (dtJoined:Week Ending Date << ottieni valori)[54::ultima riga con effettivi ] ) ) ); Colore di riempimento ("Verde medio scuro"); Trasparenza( 0,5 ); Poligono( xMatrix, yMatrix ); ), Ordine delle linee della griglia ( 1 ), Ordine delle linee di riferimento ( 3 )} ) ) ); dtFinal << Chiudi finestra; dtProv << Chiudi finestra; dtAll << Chiudi finestra; dtSub << Chiudi finestra; dtPred << Chiudi finestra;