Si vous vérifiez la transition du nombre de personnes infectées par la nouvelle infection à coronavirus (COVID-19) sur Carte des nouveaux personnes infectées par coronavirus par préfecture etc. Au 7 mars 2020, il y avait un nombre considérable de personnes localement, dont 98 à Hokkaido et 21 à Sagamihara City, 73 à Tokyo, 41 à Osaka et 8 à Kyoto. On a l'impression qu'il y en a relativement peu dans les zones urbaines où il devrait y avoir beaucoup de trafic. Le nombre de personnes infectées est étonnamment faible dans les zones urbaines, même si des centaines de milliers ou des millions de personnes se rendent au travail, vont à l'école ou font du tourisme chaque jour et travaillent en contact les unes avec les autres dans des zones densément peuplées. C'est très étrange, n'est-ce pas? Par conséquent, dans cet article, j'ai fait une hypothèse et testé si la raison pouvait être expliquée à l'aide d'un modèle mathématique. Veuillez vous référer à Article publié l'autre jour pour l'outillage de base.
Comme je l'ai écrit dans Article précédent, je vais passer en revue les termes de base.
Utilisez également les paramètres suivants.
Maintenant, l'hypothèse proposée dans cet article est, en un mot, ** l'effet purificateur de Bedtown **. Tout d'abord, veuillez consulter la figure ci-dessous. Tout d'abord, définissez les mots.
Comme le montre la figure, les personnes S1 des banlieues se rendent au travail et à l'école et les personnes S2 de la zone urbaine rejoignent la même école ou le même lieu de travail. Là, il est transmis par la personne infectée I et devient respectivement E1 et E2. A partir de E1 et E2, transition vers I1 et I2, respectivement, et enfin vers R1 et R2. Cependant, parmi les I1 vivant en banlieue, seuls ceux qui ont un certain pourcentage r $ (0 \ leq r \ leq 1) $ doivent faire la navette pour se rendre au travail ou à l'école à nouveau dans la zone urbaine. Les autres personnes du ratio 1-r ne doivent pas se déplacer vers les zones urbaines en attendant à la maison ou en étant hospitalisées. À partir de ce flux, j'ai fait l'hypothèse suivante.
L'hypothèse ci-dessus est modifiée par le modèle SEIR et exprimée sous forme de formule. Regardons.
\frac{dS_1}{dt}
= - \frac{R_0}{ip} (I_2 + r I_1) \frac{S_1}{S_1 + S_2} , S_1 \geq 0
\\
\frac{dS_2}{dt}
= - \frac{R_0}{ip} (I_2 + r I_1) \frac{S_2}{S_1 + S_2}, S_2 \geq 0
\\
\frac{dE_1}{dt}
= -\frac{dS_1}{dt} - \frac{1}{lp} E_1 \\
\frac{dE_2}{dt}
= -\frac{dS_2}{dt} - \frac{1}{lp} E_2 \\
\frac{dI_1}{dt}
= \frac{1}{lp}E_1 - \frac{1}{ip} I_1 \\
\frac{dI_2}{dt}
= \frac{1}{lp}E_2 - \frac{1}{ip} I_2 \\
\frac{dR_1}{dt}
= \frac{1}{ip} I_1 \\
\frac{dR_2}{dt}
= \frac{1}{ip} I_2
Dans les deux premières formules, la personne infectée secondaire produite par la personne infectée (I2 + rI1) est répartie par S1 et S2. Les autres formules sont les mêmes que le modèle SEIR.
Calculons l'hypothèse ci-dessus en Python. Importez la bibliothèque.
import numpy as np
import matplotlib.pyplot as plt
Définissez une fonction qui calcule R0.
def COVID19R0(er):
if np.random.rand() < er:
# good environment
if np.random.rand() < 0.8:
R0 = 0
else:
R0 = np.random.randint(1,4)*1.0
else:
# bad environment
R0 = np.random.randint(0,12)*1.0
return R0
Définissez ODE.
def seir_eq6(v,t, keys):
er = keys['er']
lp = keys['lp']
ip = keys['ip']
r = keys['r']
#
R0 = COVID19R0(er)
#
s1 = v[0]; s2 = v[1]
e1 = v[2]; e2 = v[3]
i1 = v[4]; i2 = v[5]
r1 = v[6]; r2 = v[7]
#
ds1 = - R0/ip * (i2 + r * i1) * (s1/(s1 + s2)) if s1 >= 0 else 0 # note: s1 >= 0
ds2 = - R0/ip * (i2 + r * i1) * (s2/(s1 + s2)) if s2 >= 0 else 0 # note: s2 >= 0
de1 = -ds1 - (1/lp) * e1
de2 = -ds2 - (1/lp) * e2
di1 = (1/lp)*e1 - (1/ip)*i1
di2 = (1/lp)*e2 - (1/ip)*i2
dr1 = (1/ip)*i1
dr2 = (1/ip)*i2
return [ds1, ds2, de1, de2, di1, di2, dr1, dr2]
Définissez une fonction pour résoudre ODE.
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
Enfin, le code de simulation et d'affichage.
ini_state=[430, 999, 0, 0, 0, 1, 0, 0]
t_max=180
dt=0.01
t=np.arange(0,t_max,dt)
#
keys = {'er':0.5, 'lp':5.5, 'ip':8, 'r':0.01 }
sim = my_odeint(seir_eq6, ini_state, t, keys)
#
plt.rcParams["font.size"] = 12
fig, ax = plt.subplots(figsize=(10,5))
ax.plot(t,sim[:,[4,5]]) # extract Infected1, Infected2
ax.set_xticks(np.linspace(0,t_max,19))
yw = 100; yn = int(500/yw)+1
ax.set_yticks(np.linspace(0,yw*(yn-1), yn))
ax.grid(which='both')
ax.legend(['Infected1(Outside)','Infected2(in City)'])
ax.set_xlabel('date')
plt.show()
Calculons quelques modèles en modifiant les parties S1 et S2 de init_state. Le rapport r est supposé égal à 0,01. De plus, les autres paramètres sont les mêmes que Article précédent.
Nous partirons de l'état où la population de la zone urbaine est de 1 000 habitants et il y a une personne infectée le 0ème jour (S2 = 999, I2 = 1). 1000 personnes est une valeur provisoire pour faciliter le calcul.
Le nombre d'I2 infectés dans les zones urbaines a culminé à environ 320 le 62e jour.
Je suis parti de S1 = 500. Le nombre d'I2 infectées dans les zones urbaines a culminé à environ 260 le 102e jour. En d'autres termes, le pic est retardé d'environ 40 jours et le nombre de personnes infectées au pic est réduit d'environ 19%. À propos, selon Tokyo Metropolitan Press Material, le recensement national de 2015 En conséquence de
Par conséquent, le rapport de S1 et S2 est de 430: 1000 à titre indicatif.
Cela a commencé à partir de S1 = 800. Le nombre d'I2 infectés dans les zones urbaines a culminé à environ 210 le 142e jour. En d'autres termes, le pic est retardé d'environ 80 jours et le nombre de personnes infectées au pic est réduit d'environ 34%. Il semble y avoir beaucoup de chiffres de 80%, mais selon cette page, "En 2018 Le nombre de touristes étrangers visitant Tokyo était d'environ 14,24 millions, et le nombre de touristes japonais était d'environ 536,5 millions. »Ainsi, par simple calcul, 1,5 million de personnes afflueront chaque jour. Je vais.
À partir de ce qui précède, les tendances suivantes peuvent être dérivées de la simulation concernant la fluctuation maximale de l'infection due au fait que la personne infectée reste en banlieue (en attente à la maison / hospitalisée en banlieue) tandis que la population circule de la ville-lit de banlieue vers la zone urbaine.
Par conséquent, il semble que ** l'effet de purification de Bedtown ** soit raisonnable.
Je me suis référé à la page suivante Carte des personnes infectées par le nouveau virus corona par préfecture Aperçu de la population de jour de Tokyo (population par lieu d'emploi / école) Enquête factuelle sur le nombre de touristes visitant Tokyo en 2018 Modèle SEIR Début du modèle mathématique des maladies infectieuses: aperçu du modèle SEIR par Python et introduction à l'estimation des paramètres Vérifiez l'effet du congé comme contre-mesure contre le nouveau virus corona avec le modèle SEIR
Recommended Posts