Maßnahmen zur Verhinderung der Ausbreitung der neuen Coronavirus-Infektion (COVID-19) umfassen städtische Blockade, Selbstbeherrschung in Verhalten und Verkauf, RT-PCR-Inspektion und Cluster-Gegenmaßnahmen, Kontaktverfolgungs-App, App zur Überwachung des Verhaltens infizierter Personen usw. Es wird in verschiedenen Ländern angegangen. Bisher konzentrierte sich Japan auf PCR-Inspektionen, die Verfolgung durch Cluster-Gegenmaßnahmen-Teams und die Selbstbeherrschung von Maßnahmen und Verkäufen durch die Erklärung eines Notfalls. Ab dem 6. Mai 2020 jedoch in China, Italien, Iran, den USA usw. Es hat nicht zu einer explosiven Ausbreitung der Infektion geführt. Wenn wir jedoch weiterhin auf Handeln und Geschäft verzichten, hat dies schädliche Auswirkungen auf verschiedene Aspekte wie Wirtschaft, Bildung und Kultur, und wir befinden uns in der Phase der Suche nach einer Ausstiegsstrategie. Impfstoffe werden aktiv entwickelt, aber angesichts der Bestätigung der Sicherheit und Wirksamkeit und der Einrichtung eines Produktionssystems wird erwartet, dass frühestens ein Jahr oder länger erforderlich sein wird. Effizientere Segregationsmaßnahmen für infizierte Menschen sind erforderlich, um den Zusammenbruch der medizinischen Versorgung zu verhindern und die Verhaltens- und Verkaufsbeschränkungen schrittweise aufzuheben. Als wichtiges Element möchte ich den ** Effekt der Einführung der Kontaktverfolgungs-App ** durch Simulation überprüfen.
Lassen Sie uns zunächst einen Blick auf die aktuelle medizinische Situation von COVID-19 auf der ganzen Welt werfen. Die folgende Abbildung zeigt den Durchschnittswert mit der Genesungsrate (Anzahl der Geneser / Anzahl der zu behandelnden Personen) auf der horizontalen Achse und der Sterblichkeitsrate (Anzahl der Todesfälle / Anzahl der zu behandelnden Personen) auf der vertikalen Achse in Ländern mit 10.000 oder mehr infizierten Personen. Es ist eine Grafik. Siehe dieser Artikel für die Berechnungsmethode.
Japan ist in einer Position mit einer Wiederherstellungsrate von 1,5% und einer Sterblichkeitsrate von rund 0,25%. In Bezug auf die Wiederherstellungsrate entspricht dies Frankreich, Belgien und Singapur, und in Bezug auf die Sterblichkeitsrate entspricht es Deutschland, Österreich, Pakistan und Weißrussland. Unter ihnen sollen Corona-Tracking-Apps wie China, Israel, Singapur und Südkorea erfolgreich gewesen sein, aber mit Ausnahme von China, das als Infektionsquelle angesehen wurde und dessen erste Reaktion sich verzögerte, ist es wahr, dass Israel, Singapur und Südkorea gestorben sind. Die Rate ist niedrig. Weltweit wurden bereits mehr als 10 Arten von Corona-Tracking-Apps entwickelt. (Referenz: Top 10 der beliebtesten Smartphone-Apps zur Verfolgung von Covid-19) Es scheint, dass Japan auch eine App entwickelt, die eine von Apple und Google gemeinsam entwickelte API verwendet. (Referenz: Informationen zur Entwicklung von Kontaktverfolgungs-Apps). Apple und Google benötigen die Genehmigung der nationalen Behörden, um die Corona Tracking-App im Store zu registrieren. Ich glaube also nicht, dass mehrere Apps durcheinander geraten werden. (Referenz: Wie implementieren die Corona-Gegenmaßnahmen-Apps in den einzelnen Ländern Datenschutzmaßnahmen?)
Übrigens, die Corona-Tracking-App, die auf diese Weise als erwarteter Effekt eingeführt wird,
Es werden verschiedene Effekte erwartet, aber dieses Mal möchte ich mich auf 1 konzentrieren und die Effekte quantitativ bewerten.
Verwenden Sie zu diesem Zeitpunkt das im vorherigen Artikel gezeigte Cluster-basierte SEIR-Modell als Berechnungsmodell. Die Hauptgründe für die Verwendung dieses Modells sind:
Insbesondere im normalen SEIR-Modell, wenn die Grundreproduktionszahl $ R_0 = 2,5 $ ist, wird gesagt, dass der Peak-Out bei etwa 60% der Bevölkerung auftritt ($ 1-1 / 2,5 = 0,6 $). (Erwerb der Massenimmunität) Selbst wenn man sich Länder mit einer großen Anzahl infizierter Menschen pro Million Menschen ansieht, gibt es in Katar und Spanien 5.000 bis 6.000 Menschen (/ 1 Million Menschen), sodass die Infektionsrate höchstens 0,6% beträgt ** Wird geschätzt. ** Nur 0,01% in Japan. ** Daher ** erscheint es an dieser Stelle vernünftig zu glauben, dass das beobachtete Peak-Out-Phänomen von COVID-19 nicht durch ein einfaches SEIR-Modell erklärt werden kann **.
Die Berechnungsformel wird angezeigt. Stellen Sie zunächst die Variablen vor.
Führen Sie Folgendes als Parameter ein.
Die folgende Formel ist ein clusterbasiertes SEIR-Modell, das den Isolationseffekt der App berücksichtigt.
\begin{eqnarray}
\frac{dRp}{dt} &=& - \frac{ln2}{T_h}Rp \\
\frac{dS}{dt} &=& -\frac{1}{ip} Rp \cdot I \\
\frac{dE}{dt} &=& -\frac{dS}{dt} - \frac{1}{lp} E - \alpha E\\
\frac{dI}{dt} &=& \frac{1}{lp} E - \frac{1}{ip} I - \alpha I\\
\frac{dR_1}{dt} &=& \frac{1}{ip} I \\
\frac{dR_2}{dt} &=& \alpha E + \alpha I \\
\frac{dR}{dt} &=& \frac{dR_1}{dt} +\frac{dR_2}{dt}
\end{eqnarray}
Übrigens gilt die folgende Gleichung.
\frac{d}{dt}(S+E+I+R_1+R_2)=\frac{d}{dt}(S+E+I+R)=0
Der Punkt ist, dass der App-Effekt Sie mit einer konstanten Rate von E und I isoliert.
Dieses Mal möchte ich zuerst die Ergebnisse zeigen. Der Anfangswert der Anzahl der effektiven Reproduktionen ist $ R_p (0) = 10 $. Der Anfangszustand sei auch $ (E, I, R) = (0,1,0) $.
Wenn es keine Isolation durch die App gibt. Schließlich werden 113 Menschen infiziert sein.
Wenn die Isolationsrate der App 10 [% / Tag] beträgt. Mit anderen Worten, nehmen Sie an, dass 10% der Infizierten pro Tag unter Quarantäne gestellt werden. Schließlich werden 26 Personen infiziert (R1 + R2). Die Zahl der Infizierten ist um 77% gesunken.
Wenn die Isolationsrate der App 20 [% / Tag] beträgt. Schließlich werden 11 Personen infiziert (R1 + R2). ** Die Anzahl der Infizierten ist um 90% gesunken. ** ** **
Lassen Sie uns die Beziehung zwischen der Isolationsrate durch die App $ \ alpha $ und der endgültigen Anzahl infizierter Personen $ R (T_ {max}), R_1 (T_ {max}), R_2 (T_ {max}) $ grafisch darstellen. Bei etwa ** $ \ alpha = 0,07 $ oder mehr sind App-Quarantänen zahlreicher als Nicht-App-Quarantänen **.
Aus dem Obigen können die folgenden Trends aus der Simulation hinsichtlich des Effekts der frühen Isolierung durch die Corona-Tracking-App abgeleitet werden, die auf dem clusterbasierten SEIR-Modell basiert.
Ich habe auf die folgende Seite verwiesen.
Zum Schluss füge ich den in diesem Artikel verwendeten Python-Code ein.
import numpy as np
import matplotlib.pyplot as plt
# ODE solver
def my_odeint(deq, ini_state, tseq, keys):
sim = None
v = np.array(ini_state).astype(np.float64)
dt = (tseq[1] - tseq[0])*1.0
for t in tseq:
dv = deq(v,t, keys)
v = v + np.array(dv) * dt
if sim is None:
sim = v
else:
sim = np.vstack((sim, v))
return sim
#define differencial equation of seir model
def seir_eq8(v, t, keys):
Th = keys['Th']
lp = keys['lp']
ip = keys['ip']
al = keys['al']
#
Rp = v[0];
s = v[1];
e = v[2];
i = v[3];
r1 = v[4];
r2 = v[5];
r = v[6];
#
dRp = - np.log(2)/Th * Rp
ds = - Rp/ip * i
de = - ds - (1/lp) * e - al * e
di = (1/lp)*e - (1/ip) * i - al * i
dr1 = (1/ip)*i
dr2 = al * e + al * i
dr = dr1 + dr2
return [dRp, ds, de, di, dr1, dr2, dr]
# simulation 1
def calcsim(Rp0, keys):
# solve seir model
# Rp S E I R1 R2 R
ini_state=[Rp0, 0, 0, 1, 0, 0, 0]
t_max=180
dt=0.01
t=np.arange(0,t_max,dt)
#
sim = my_odeint(seir_eq8, ini_state, t, keys)
#
plt.rcParams["font.size"] = 12
fig, ax = plt.subplots(figsize=(10,5))
ax.plot(t,sim[:,[2,3,4,5]]) # extract E I R1 R2
ax.set_xticks(np.linspace(0,t_max,19))
yw = 10; yn = int(120/yw)+1
ax.set_yticks(np.linspace(0,yw*(yn-1), yn))
ax.grid(which='both')
ax.legend([ 'Exposed', 'Infected','Recoverd1(normal)', 'Recoverd2(App-based)'])
ax.set_xlabel('date')
ax.set_ylim(0,)
plt.show()
print("R(tmax):{}".format(sim[-1,6]))
# do simulation 1
keys = {'lp':5, 'ip':8, 'Th':7.5, 'al':0.0 }
calcsim(10, keys)
keys = {'lp':5, 'ip':8, 'Th':7.5, 'al':0.1 }
calcsim(10, keys)
keys = {'lp':5, 'ip':8, 'Th':7.5, 'al':0.2 }
calcsim(10, keys)
# simulation 2
def calcAltoRfin(Rp0):
# Rp S E I R1 R2 R
ini_state=[Rp0, 0, 0, 1, 0, 0, 0]
t_max=180
dt=0.01
t=np.arange(0,t_max,dt)
#
lp = 5
ip = 8
keys = {'lp':lp, 'ip':ip, 'Th':7.5, 'al':(0.) }
#
mklist = lambda e, l : np.append(np.array(e),l)
#
rslt = []
for i in np.linspace(0,0.4,20):
keys['al'] = i
sim = my_odeint(seir_eq8, ini_state, t, keys)
r = mklist(keys['al'], sim[-1][4:]) # (i, R(tmax), R1(tmax), R2(tmax))
rslt.append(r)
#
rslt = np.array(rslt)
ymax = max(rslt[:,2])
plt.rcParams["font.size"] = 12
fig, ax = plt.subplots(figsize=(10,5))
#
ax.plot( rslt[:,0], rslt[:,3], 'b')
ax.plot( rslt[:,0], rslt[:,1], 'g')
ax.plot( rslt[:,0], rslt[:,2], 'r')
ax.legend([ 'R(Total infected)', 'R1(normal purge)', 'R2(App-based purge)'], loc='upper right')
ax.grid(which='both')
ax.set_xlabel('application-based purge rate [/day]')
ax.set_ylabel('total infected cases at tmax')
yw = 10; yn = int(120/yw)+1
ax.set_yticks(np.linspace(0,yw*(yn-1), yn))
#
for tat in [0,0.1,0.2,0.3,0.4]:
idx = [i for i in range(len(rslt[:,0])) if rslt[i,0] >= tat][0]
print("R_fin with Al:{} is {}".format(rslt[idx,0], rslt[idx,3]))
#
ax.set_xlim(0,)
ax.set_ylim(0,)
plt.show()
# do simulation 2
calcAltoRfin(10)
Recommended Posts