def speed(R0): strdates = 'Days (Hub +Jan1)' csse = CSSECovid() deH, coH, reH, daH = csse.hubei() pop = 6e7 nSteps = 500 gamma = 0.16 beta = gamma * R0 epsilon2 = 1 cfr2 = 0.03 delay_model2 = 0 system2 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta, average_infection_period=1 / gamma, epsilon=epsilon2, delta=cfr2, nSteps=nSteps, t0=delay_model2) system2.evolveSystem() system2.plot() t = 'R0=%g\nSymptomatic/asymptomatic = %g\n' % (system2.R0[0], epsilon2) plt.title(t) plt.ylim(10, ) plt.xlim(0, ) # plt.plot(daH, deH, '.-', color='C4', label='deaths Hubei') # plt.plot(daH, coH, '.-', color='C3', label='confirmed Hubei') plt.legend() return system2
def plotForecast(): csse = CSSECovid() deH, coH, daH = csse.hubei() deI, coI, daI = csse.italy() pop = 6e7 nSteps = 100 epsilon = 0.75 cfr = 0.03 delayModel = -1 beta0 = 0.48 gamma0 = 0.16 beta2 = np.zeros(nSteps) tInt2 = 31 - delayModel beta2[:tInt2] = beta0 beta2[tInt2:] = 0.8 * gamma0 system3 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta2, average_infection_period=1 / gamma0, epsilon=epsilon, delta=cfr, nSteps=nSteps, t0=delayModel) system3.evolveSystem() system3.plot(susceptibles=False, infectious=False, recovered=False, confirmed=False, deaths=False) plt.plot(system3.timeSeries.timeVector, system3.timeSeries.confirmed, color='C7', linestyle='dotted', label='Confirmed eps=%g' % system3._epsilon[0]) plt.plot(system3.timeSeries.timeVector, system3.timeSeries.deaths, color='C7', linestyle='dashed', label='Deaths delta=%g' % system3._delta[0]) plt.plot(daH, deH, '.-', color='C8', label='deaths Hubei') plt.plot(daI, deI, '.-', linewidth=2, markersize=12, color='C4', label='deaths Italy') plt.plot(daH, coH, '.-', color='C8', label='confirmed Hubei') plt.plot(daI, coI, '.-', color='C4', label='confirmed Italy') plt.ylim(1, 1e5) plt.xlim(0, 70) plt.xlabel(csse.string_dates()) plt.legend()
def plotFB(): strdates = 'Days (Hub +Jan1, I +Feb6)' csse = CSSECovid() deH, coH, daH = csse.hubei() deI, coI, daI = csse.italy() pop = 6e7 nSteps = 100 epsilon = 0.75 cfr = 0.03 delayModel = -1 beta0 = 0.48 gamma0 = 0.16 beta = np.zeros(nSteps) tInt2 = 31 - delayModel beta[:tInt2] = beta0 beta[tInt2:] = 0.8 * gamma0 system3 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta, average_infection_period=1 / gamma0, epsilon=epsilon, delta=cfr, nSteps=nSteps, t0=delayModel) system3.evolveSystem() system3.plot(susceptibles=False, infectious=False, recovered=False, confirmed=False, deaths=False) plt.plot(system3.timeSeries.timeVector, system3.timeSeries.deaths, color='C2', label='SIR model, R0=3') plt.plot(daH, deH, '.-', color='C3', label='deaths Hubei') plt.plot(daI, deI, '.-', linewidth=2, markersize=12, color='C4', label='deaths Italy') plt.plot([], [], ' ', label="data at 17 Mar 2020") plt.ylim(10, 1e5) plt.xlim(20, 150) plt.xlabel(strdates) plt.title('') plt.legend()
def plotModelloLombardia(): strdates = 'Days from Jan1' csse = CSSECovid() deH, coH, daH = csse.hubei() dL = DpcCovid(DpcCovid.LOMBARDIA) deL = dL.deceduti coL = dL.totale_casi daL = dL.days nSteps = 100 delayModel = 0 periods = np.array([65]) E0 = 0 I0 = .00025 R0 = 0 A0 = I0 * 10 H0 = 0 S0 = 10000000 - E0 - I0 - R0 - A0 - H0 beta = piecewise(periods, (1.75, 0.65), nSteps) r = 1 De = 5.2 Di = 2.3 Dq = piecewise(periods, (10, 10), nSteps) Dh = 30 travellers = 0 system3 = seirah.SEIRAH(susceptibles=S0, exposed=E0, infectious=I0, recovered=R0, unascertained=A0, hospitalized=H0, transmission_rate=beta, unscertained_transmission_rate_ratio=1, ascertainment_fraction=r, latent_period=De, infectious_period=Di, illness_to_hospitalization_period=Dq, hospitalization_period=Dh, inbound_outbound_travelers=travellers, nSteps=nSteps, t0=delayModel) system3.evolveSystem() system3.plot() plt.plot(system3.timeSeries.timeVector, system3.timeSeries.susceptibles[0] - system3.timeSeries.susceptibles, color='C7', label='total cases') plt.plot(system3.timeSeries.timeVector, system3.timeSeries.recovered_with_immunity * 0.005, '--', color='C4', label='deaths') plt.plot(dL.days, dL.deceduti, '+-', color='C4', label='deceduti') # plt.plot(dL.days, dL.dimessi_guariti, 'x-', color='C4', label='dimessi') # plt.plot(dL.days, dL.dimessi_guariti + dL.deceduti, '.-', color='C4', label='dimessi o deceduti') plt.plot(dL.days, dL.totale_attualmente_positivi, '.-', color='C6', label='att. positivi') plt.plot(dL.days, dL.totale_casi, '.-', color='C7', label='totale casi') plt.plot([], [], ' ', label=dataAtToday()) plt.ylim(10, 10e6) plt.xlim(40, 100) plt.xlabel(strdates) plt.title('') plt.legend()
def plotTalkXiongLin(): ''' https://harvard.zoom.us/rec/play/v8Ytceqqqzs3GNzB4gSDB_59W9TsK6Ks13RI_6cLxB62BSUAOlumZeRAZLC7e1vif7xIyy6HL_uXyNHw?startTime=1584118874000 ''' strdates = 'Days (Hub +Jan1, I +Feb6)' csse = CSSECovid() deH, coH, daH = csse.hubei() deI, coI, daI = csse.italy() nSteps = 100 delayModel = 0 periods = np.array([10, 22, 32]) S0 = 9999467 E0 = 346 I0 = 80 R0 = 0 A0 = 80 H0 = 27 beta = piecewise(periods, (1.75, 1.75, 0.58, 0.15), nSteps) r = piecewise(periods, (0.19, 0.19, 0.22, 0.17), nSteps) De = 5.2 Di = 2.3 Dh = 30 Dq = piecewise(periods, (10, 7, 5, 2), nSteps) travellers = piecewise(periods, (500e3, 800e3, 0, 0), nSteps) system3 = seirah.SEIRAH(susceptibles=S0, exposed=E0, infectious=I0, recovered=R0, unascertained=A0, hospitalized=H0, transmission_rate=beta, unscertained_transmission_rate_ratio=1, ascertainment_fraction=r, latent_period=De, infectious_period=Di, illness_to_hospitalization_period=Dq, hospitalization_period=Dh, inbound_outbound_travelers=travellers, nSteps=nSteps, t0=delayModel) system3.evolveSystem() system3.plot() # plt.plot(system3.timeSeries.timeVector, # system3.timeSeries.deaths, color='C2', label='SIRCD model') plt.plot(daH, deH, '.-', color='C3', label='deaths Hubei') plt.plot(daH, coH, '+-', color='C3', label='confirmed Hubei') # plt.plot(daI, deI, '.-', # linewidth=2, # markersize=12, # color='C4', # label='deaths Italy') plt.plot([], [], ' ', label="data at 20 Mar 2020") # plt.ylim(10, 1e4) # plt.xlim(20, 60) plt.xlabel(strdates) plt.title('') plt.legend() return system3
def plotEuropeDeath(): csse = CSSECovid() deH, coH, daH = csse.hubei() deI, coI, daI = csse.italy() deF, coF, daF = csse.france() deN, coN, daN = csse.netherlands() deE, coE, daE = csse.spain() deU, coU, daU = csse.uk() deG, coG, daG = csse.germany() deK, c*K, daK = csse.south_korea() deS, coS, daS = csse.sweden() deUs, coUs, daUs = csse.usa() pop = 6e7 nSteps = 100 cfr = 0.03 delayModel = -1 beta0 = 0.481 gamma0 = 0.16 system3 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta0, average_infection_period=1 / gamma0, epsilon=0.5, delta=cfr, nSteps=nSteps, t0=delayModel) system3.evolveSystem() system3.plot(susceptibles=False, infectious=False, recovered=False, confirmed=False, deaths=False) plt.plot(daH, deH, '.-', color='C8', label='deaths Hubei') plt.plot(daI, deI, '.-', linewidth=2, markersize=12, color='C4', label='deaths Italy') plt.plot(daF, deF, '.-', color='C0', label='deaths France') plt.plot(daE, deE, '.-', color='C3', label='deaths Spain') plt.plot(daN, deN, '.-', color='C1', label='deaths Netherlands') plt.plot(daU, deU, '.-', color='C2', label='deaths UK') plt.plot(daG, deG, '.-', color='C7', label='deaths Germany') plt.plot(daK, deK, '.-', color='C6', label='deaths South Korea') plt.plot(daS, deS, '.-', color='C9', label='deaths Sweden') plt.plot(daUs, deUs, '.-', color='C5', label='deaths USA') plt.ylim(10, 1e6) plt.xlim(10, 80) plt.xlabel(csse.string_dates()) plt.title('') plt.plot([], [], ' ', label=dataAtToday()) plt.legend()
def plotReport2(): strdates = 'Days (Hubei from Jan1, Italy from Feb6)' csse = CSSECovid() deH, coH, daH = csse.hubei() pop = 6e7 nSteps = 200 beta0 = 0.48 gamma0 = 0.16 epsilon2 = 0.75 cfr2 = 0.03 delay_model2 = 0 beta2 = np.zeros(nSteps) tInt2 = 32 - delay_model2 beta2[:tInt2] = beta0 beta2[tInt2:] = 0.8 * gamma0 system2 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta2, average_infection_period=1 / gamma0, epsilon=epsilon2, delta=cfr2, nSteps=nSteps, t0=delay_model2) system2.evolveSystem() # system2.plot(susceptibles=False, infectious=False, recovered=False) system2.plot() t = 'Social rarefaction R0=0.8 from day %d\n $\epsilon$ = %g\n' % ( tInt2 + delay_model2, epsilon2) plt.title(t) plt.xlabel(strdates) plt.ylim(10, ) plt.xlim(0, 100) plt.plot(daH, deH, '.-', color='C4', label='deaths Hubei') plt.plot(daH, coH, '.-', color='C3', label='confirmed Hubei') plt.legend() epsilon1 = 0.001 cfr1 = 0.00005 delay_model1 = -20 system1 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta0, average_infection_period=1 / gamma0, epsilon=epsilon1, delta=cfr1, nSteps=nSteps, t0=delay_model1) system1.evolveSystem() system1.plot() t = 'Constant contact_rate\n $\epsilon$ = %g\n' % (epsilon1) plt.title(t) plt.xlabel(strdates) plt.ylim(10, ) plt.xlim(0, 100) plt.plot(daH, deH, '.-', color='C4', label='deaths Hubei') plt.plot(daH, coH, '.-', color='C3', label='confirmed Hubei') plt.legend()
def plotFB(): delayI = 36 delayR = 34 delayH = 0 delayF = 45 delayS = 45 delayK = 35 strdates = 'Days (Hub +Jan1, I +Feb6)' csse = CSSECovid() deH, coH, reH, daH = csse.hubei() deI, coI, reI, daI = csse.italy() # deF, coF, reF, daF = csse.restoreFrance() # deR, coR, reR, daR = _restoreCountry('Iran', delayR) # deS, coS, reS, daS = csse.restoreSpain() # deK, c*K, reK, daK = _restoreCountry('Korea, South', delayK) pop = 6e7 nSteps = 100 cfr = 0.03 delayModel = -1 beta0 = 0.481 gamma0 = 0.16 system3 = sircd.SIRCD(susceptibles=pop, infectious=1, contact_rate=beta0, average_infection_period=1 / gamma0, epsilon=1, delta=cfr, nSteps=nSteps, t0=delayModel) system3.evolveSystem() deaths3 = cfr * system3.timeSeries.recovered_with_immunity system3.plot(susceptibles=False, infectious=False, recovered=False, confirmed=False, deaths=False) plt.plot(system3.timeSeries.timeVector, deaths3, color='C2', label='SIR model, R0=3') plt.plot(daH, deH, '.-', color='C3', label='deaths Hubei') plt.plot(daI, deI, '.-', linewidth=2, markersize=12, color='C4', label='deaths Italy') # plt.plot(daF, deF, '.-', label='deaths France') # plt.plot(daS, deS, '.-', label='deaths Spain') # plt.plot(coHd + delayModel, coH, '.-', label='confirmed Hubei') # plt.plot(coId + delayModel, coI, '.-', label='confirmed Italy') # Create empty plot with blank marker containing the extra label plt.plot([], [], ' ', label="data at 14 Mar 2020") plt.ylim(10, 1e4) plt.xlim(20, 60) plt.xlabel(strdates) plt.title('') plt.legend()