ラベル シミュレーション の投稿を表示しています。 すべての投稿を表示
ラベル シミュレーション の投稿を表示しています。 すべての投稿を表示

2020年4月4日土曜日

米国の集団免疫率(1)

韓国の集団免疫率からの続き

ワシントン大学にある研究所のIHME(Institute for Health Metrics and Ecaluation)では,COVID-19 Projections として,米国の新型コロナウイルス感染症についての予測を行っている。入院病床,ICU病床,人工呼吸器などの必要数がシミュレーションされている。それによればこれらは4月の中旬にピークアウトし,ピーク時の必要病床数波26万床(必要ICU病床数は4万床)である。また,7月の初旬には終息するとされている。また7月段階での死亡数は9万人以上に達する。

これは,3月27日付の論文 "Forecasting COVID-19 impact on hospital bed-days, ICU-days, ventilator- days and deaths by US state in the next 4 months"  によるものであり,Githubには彼らのGeneric curve fitting package with nonlinear mixed effects model の説明とそのコードもある

これを我々のSIIDR2モデルで追試してみる。まず米国のデータをWHOのSituation Reportsからとって人口で正規化すると1万人当りの新規感染数累計ykと死亡数累計zkが得られる。なお,新規感染数累計が人口の1ppmを超えた基準日は3/10であり,3/10から4/3までの25日分のデータを与える。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
xa=[0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24]
ya=[0.014,0.021,0.030,0.038,0.051,0.051,0.051,0.106,0.107,0.215,
0.317,0.462,0.462,0.958,1.28,1.58,1.93,2.07,2.59,3.14,
3.72,4.27,4.95,5.68,6.48]
za=[0.06,0.08,0.09,0.11,0.12,0.12,0.12,0.18,0.18,0.30,
0.46,0.61,0.61,1.22,1.43,2.04,2.68,3.01,3.77,5.06,
6.41,7.28,8.65,11.7,14.6]/100
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SIIDR2モデル計算の下図の結果は次のパラメタで与えられる。
$\beta = 0.72, \nu = 0.03, \lambda = 21, \tau = 14, \alpha_1 = 5.0/0.80 ,\alpha_2 = 5.0/0.20, \gamma_1 = 15/0.87, \gamma_2 = 15/0.13$
これまでの韓国や湖北省の計算では,$\gamma_1 = 15/0.96, \gamma_2 = 15/0.04$に固定していたが,それでは死亡数が再現できなかったので約3倍の値に設定していることに注意する。これによって1万人当たり(米国の人口は3.27億人なので下記を3270倍すると実人数になる)の値が得られる。

図1 米国の感染カーブ(u3=重症感染数,u4=死亡数,u6=新規感染数累計)

図2 米国の感染カーブ(同上,u5=回復(免疫獲得)数)

我々のモデルでもIHME予測の定性的な振る舞いを再現することができる。
① 4月の中旬(t=35)に重症感染数はピークアウトする(図1u3のピーク位置)。
② ピーク時の必要病床数は26万床に達する(図1 u3のピーク値)。
③ 7月上旬(t=110)段階の死亡数は9万人に達する(図1のu4の収束値)。
④ 7月上旬(t=110)には終息している。
終息後の米国の集団免疫率は1%にすぎない(図2のu6の値100/1万=1%)

[1]基本再生産数と集団免疫率(2020.3.27)
[2]倍加時間と基本再生産数(2020.3.29)
[3]新規感染数累計の増倍率(2020.3.31)
[4]湖北省の集団免疫率(2020.3.28)
[5]韓国の集団免疫率(2020.4.3)


2020年4月3日金曜日

韓国の集団免疫率

湖北省の集団免疫率からの続き

中国以外の多くの国では感染拡大が終息していないが,韓国では中国に続いて感染拡大が収まりつつあるように見える。そこで,韓国では現在どの程度の集団免疫が獲得されたかを,前回と同様にSIIDR2モデルで推定してみよう。

まず,データはいつものようにWHOのSituation Report(South Korea)を用いる。新規感染数累計(Confirmed)と死亡数累計(Deaths)の日次統計を韓国の人口5180万人でわったものから,1万人当りの人口比データを取り出した。新規感染数累計が人口の1ppm(百万分の一)を越えた時点を基準日とすると,韓国の基準日は2020年2月19日となる。このデータを示しておく。xkが基準日からの日数(2/19〜4/2までの44日間),ykがConfirmedの人口比(/万人),zkがDeathsの人口比(/万人(zk全体を100で割っていることに注意する)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
xk=[0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,
40,41,42,43]
yk=[0.010,0.020,0.039,0.067,0.116,0.147,0.189,0.243,0.341,0.451,
0.608,0.721,0.813,0.929,1.029,1.113,1.213,1.306,1.377,1.425,
1.450,1.497,1.519,1.540,1.561,1.576,1.590,1.606,1.606,1.624,
1.670,1.699,1.718,1.730,1.745,1.764,1.784,1.802,1.830,1.850,
1.865,1.889,1.909,1.926]
zk=[0.00,0.02,0.02,0.04,0.10,0.14,0.19,0.23,0.25,0.25,
0.33,0.35,0.42,0.54,0.62,0.68,0.81,0.85,0.97,0.98,
1.04,1.16,1.27,1.27,1.39,1.45,1.45,1.56,1.56,1.62,
1.81,1.97,2.01,2.14,2.32,2.43,2.53,2.68,2.78,2.93,
3.05,3.13,3.19,3.26]/100
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SIIDR2モデルのパラメタを次のようにとると韓国の上記データがおおむね再現できる。
$\beta=0.95, \nu=0.03, \lambda=8, \tau=5, \alpha_1=5.0/0.80, \alpha_2=5.0/0.20, \gamma_1=15.0/0.96, \gamma_2=15.0/0.04$
なお,下記の図では,u3が重症感染者,u4が死亡数累計(Deaths),u5が回復(免疫獲得)者,u6が新規感染数累計(Confirmed)を与えている。
図1 韓国の感染カーブ

もちろん他のパラメタセットの範囲でも同じ結果を与えるが,その場合でも最終的な目標値の集団免疫率の推定値は同じオーダーに収まっている。集団免疫率は集団全体に対する回復(免疫獲得)者の割合なので,現時点での図からわかるように,韓国における集団免疫率は10人/1万人〜0.1%のオーダーに過ぎない

なお,最近(25〜40日)のu6は落ち着いているとはいうものの完全な収束ではなく,直線状に増加しているようにみえるので,我々のモデルではこの定性的な振る舞いを説明できていない。これは毎日,人口の0.2%程度にあたる一定数の感染者が引き続き発生していることを意味している。

参考のため,このモデルの結果を与えている実効再生産数(パラメタセットで定まる)$R_{\rm eff} = \alpha*\beta(t)$を以下に示しておく。

図2 韓国の実効再生産数カーブ


2020年4月2日木曜日

「オーバーシュート」の見分け方

新型コロナウイルス感染症対策本部は2020年1月30日に閣議決定により内閣官房に設置された。内閣総理大臣を本部長とし,官房長官や他の国務大臣が構成員である。その後3月26日に改めて,「新型インフルエンザ等対策特別措置法(平成24年法律第31号) 第15条第1項の規定に基づいて新型コロナウイルス感染症対策本部を設置した」とされた。

2月16日には,この対策本部のもとに,国立感染症研究所の脇田隆字所長を座長として医学・医療関係者からなる新型コロナウイルス感染症対策専門家会議が設置され第1回の会合が開かれている。なお,テレビでよくみかける感染症数理が専門の北海道大学の西浦博教授は座長が出席を求める関係者だった。

3月19日開催の第8回会議における「新型コロナウイルス感染症の対策の状況分析・提言」において,第1回から第7回までまったく登場していなかった「オーバーシュート」というキーワードが突如として次の文脈で デビューした(強調は筆者)。
特に,気付かないうちに感染が市中 に拡がり,あるときに突然爆発的に患者が急増(オーバーシュート(爆発的患者急増))す ると,医療提供体制に過剰な負荷がかかり,それまで行われていた適切な医療が提供でき なくなることが懸念されます。
SNSでは理系の人々を中心に違和感ありまくりでブーイングが起こっている。
 ○オーバーシュートは指数関数的増大でなく過渡現象の振れ過ぎ部分を指すものだ。
 ○爆発的患者急増はアウトブレイクというのではなかったのか(図1)。
 ○手元の辞書にはそんな意味が載っていない。
 ○何故一般向けにわかりにくい英語の専門用語を使うのか。
 ○そもそもこれは学術専門用語ではない(日本環境感染学会用語集に存在しない)。
 ○欧米の感染症情報にもほとんど出てこないしあってもまったく意味が違う。
 ○指数関数的増大のどこからがオーバーシュートなのかわからない。

図1 outbreak(赤) と overshoot(青) の google serarch trend (30日)
上は世界全体,下は日本

それにもかかわらず,マスコミや政治家によってオーバーシュートは我が国に定着することになった。さすがにちょっと気が引けたのか,専門家会議は4月1日の専門家会議の後の会見で,オーバーシュートの定義を次のように説明することになった
副座長の尾身茂氏(地域医療機能推進機構・理事長)は「オーバーシュートは欧米で見られるように爆発的な患者数の増加を示すが,2日ないし3日のうちに累積患者数が倍増し,しかもそのスピードが継続的にみられる状態を指すと私たちは定義した」と述べた。
実は,「医療提供体制に過剰な負荷がかかり,それまで行われていた適切な医療が提供できなくなる」ことが彼らの強調したいことであって,そのためにあえて新しい用語の選択によって注意喚起したのではないかとも推察できるが,これをグダグダいっても仕方がないので, 2から3日のうちに累積患者数が倍増しという定義を受け入れた場合のオーバーシュートの見分け方について考える。

前提として,SIR的なモデルを仮定し感染期間(感染者数の崩壊定数)を$\gamma$=5日とする。累積患者数は 新規感染数累計,$J(t)=\int_{0}^{t} I(t') dt'$のことであるとして,感染者数が非常に少ない状態から指数関数的に増大する場面を設定する。すでに基本的な関係式は下記参考資料で導出しているので,ここでは結果のみ整理する。時刻$t$日の$J(t)$に対する$\tau$日後の$J(t+\tau)$の比率を$r$とおく。なお,$R_0$は基本再生産数(あるいはその時点での実効再生産数)とする(図2)。
\begin{equation}
\begin{aligned}
r &= \dfrac{J(t+\tau)}{J(t)} = \dfrac{e^{\frac{R_0-1}{\gamma}(t+\tau)}-1}{e^{\frac{R_0-1}{\gamma} t}-1} =  \dfrac{e^{\frac{R_0-1}{\gamma}\tau}-e^{-\frac{R_0-1}{\gamma} t}}{1 - e^{- \frac{R_0-1}{\gamma} t}} \approx e^{\frac{R_0-1}{\gamma}\tau}\\
R_0 &= 1 + \dfrac{\gamma}{\tau} \log r
\end{aligned}
\end{equation}
① 3日で2倍すなわち$\tau=3, r=2$とすると,$R_0$=2.15となる。
② $R_0$=2.15の場合,7日で何倍かというと,$r=e^{7 * 1.15 /5}$=5.00倍になる。
③ 東京では,7日で3倍になっているので,$R_0$=1.78となる。

図2 1週間での$J(t)$の増倍率$r$と基本再生産数$R_0$

つまり,日次報告されている新規感染数累計(Confirmed)$J(t)$が 1週間で5倍程度になる状況が続けば,いわゆる「オーバーシュート」の状態であるということになる。東京ではこれが3倍程度でありそこまでは至っていない。欧州や以前の韓国や湖北省ではオーバーシュートの状態が生じていたが,現在は収まっており$r$も減少している。北米ではオーバーシュート近傍にあるが,$r$は減少傾向にある。日本や東京ではオーバーシュート状態ではないが,$r$は増加傾向にあって予断を許さない(下記の各国の感染者比で$r$を確認)。

$r$は比率なので,報告されている感染数の把握度が不十分であっても(見逃している感染数がかなり存在しているかもしれないとしても),把握度の時間依存性が大きくない限りこの結論には影響しない。

[1]新規感染数累計の増倍率(2020.3.31)
[2]倍加時間と基本再生産数(2020.3.29)
[3]基本再生産数と集団免疫率(2020.3.27)
[4]感染症の数理シミュレーション(8)(2020.3.15)
[5]各国の感染者比(2)(2020.3.12)
[6]各国の感染者比(1)(2020.3.10)
[6]感染症の数理シミュレーション(2)(2020.2.25)
[7]感染症の数理シミュレーション(1)(2020.2.24)


2020年3月31日火曜日

新規感染数累計の増倍率

ある集団の単位時間(1日)当りの新規感染数を$f(t)$,新規感染数累計(Confirmed)を$g(t)=\int_{t_0}^t f(t') dt'$とする。$t_0$は基準日である。このとき,$r(t)=g(t+\tau)/g(t)$は期間$\tau$の間に新規感染数累計が何倍に増えたかを示す増倍率を表す。感染が終息すれば
$f(t)$は0となり,$g(t)$は一定に近づくので$r(t) \rightarrow 1$となる。

新規感染数が指数関数的に増大する場合は,$f(t)= a e^{t/\lambda}$となるので,$g(t) = a \lambda (e^{t / \lambda} - 1)$ となる。この場合,$r(t) = \dfrac{e^{(t+\tau)/ \lambda}-1}{e^{ t/\lambda}-1}$であることから,$\lim_{t \to \infty} r(t) = e^{\tau / \lambda}$ に漸近する。

そこで,WHOが毎日報告しているCOVID-19のSituation Reportsの各国の新規感染数累計(Confirmed)の日次統計から $\tau$=7日間としたときの$r(t)$を求めてその特徴を比較する。日次統計には揺らぎがあるので,$\bar{r}(t) = \frac{1}{5} \int_{t-2}^{t+2} r(t') dt'$という5日移動平均をExcelによって求めてグラフを描いた。なお基準日はWHOの統計が始まった2020年1月21日をt=1(日)とする。図1のアジア・太平洋地域の国々はt=41(3月1日)〜t=68(3月28日)を,図2の欧州・北米の国々はt=47(3月7日)〜t=68(3月28日)の範囲で計算した。

図1 アジア・太平洋地域の$\bar{r}(t)$

図2 欧州・北米地域の$\bar{r}(t)$

① アジア・太平洋地域の直近で,オーストラリアの4倍〜韓国の1倍までに対して,欧州・北米地域でアメリカ合衆国の6倍〜イラン・イタリアの2倍の範囲にあり,それぞれ漸減中である。ただし,東京・日本は増加傾向にあり,カナダはっきりした減少傾向が見えない。

② 初期にインフレーションを起した韓国・イラン・イタリアはその後単純な減少カーブを描いている。それ以外の国で複数の山が観測される。例えば,当初収束しているといわれていた台湾,香港,シンガポールに第二の緩やかなピークが生じ,マレーシアやオーストラリア,スペインやアメリカにも大きな第二のピークが現れている。

2020年3月29日日曜日

倍加時間と基本再生産数

マスコミを巧妙に活用した情宣作戦というのか,"やってる感パフォーマンス"の演出が大好きなのは維新と安倍だが,土曜日の夕方にまたまた"記者会見もどき"の宣伝工作を行っていた。内容はないようだったが,いつものように滑舌が悪くて"指示"が"Siri"になってしまうため,どこでもDIGA視聴中のiPadがよけいな応答をして画面が止まってしまうのだった...orz

さて,あいかわらず醜悪なポエムに包まれた左右首振りプロンプター官僚作文の中で,一点だけ定量的な発言として興味を引いたのが,感染者数が2週間で30倍以上になるというくだりだった。さっそく前回のメモ基本再生産数と集団免疫率の式を使って考えてみよう。

とりあえず,簡単のためここで登場した感染者数はSIRモデルの$I(t)$のことだとしよう。初期条件が,$S(0) = N, I(0) \ll 1, R(0)=0$の場合,$t=0$近傍の方程式は,次のように近似される。
\begin{equation}
\begin{aligned}
\dfrac{dI}{dt} &=\beta \dfrac{S}{N} I -\dfrac{I}{\gamma} \\
& \approx \bigl( \beta -\dfrac{1}{\gamma} \bigr) I \\
&= \dfrac{R_0 - 1}{\gamma} I
\end{aligned}
\end{equation}
ただし,$R_0 = \beta \gamma $を用いた。これから次の解が得られる。
\begin{equation}
I(t) = I(0) \ e^{\frac{R_0 - 1}{\gamma} t}
\end{equation}
$k$倍加時間を$\tau_k$として,
\begin{equation}
\begin{aligned}
k &= \dfrac{I(\tau_k)}{I(0)} =  e^{\frac{R_0 - 1}{\gamma} \tau_k} \\
\log k &= \frac{R_0 - 1}{\gamma} \tau_k \\
\therefore R_0 &= 1 + \dfrac{\gamma \log k}{\tau_k}
\end{aligned}
\end{equation}
そこで,2週間で30倍≒2倍加時間が3日であることから,$k=2, \gamma=5, \tau=3$をあてはめると,この場合の$R_0=1+ \dfrac{5*0.6931}{3} = 2.15$となる。

付録A:
感染者数というのが$I(t)$でなく,通常示されている新規感染数累計(Confirmed)(→$J(t)$と定義)のことだと解釈するとどうなるだろうか。
\begin{equation}
J(t) = \int_0^t I(t') dt' \approx  \int_0^t I(0) e^{\frac{R_0 - 1}{\gamma} t'} dt' = \dfrac{I(0) \gamma}{R_0-1} \Bigl\{ e^{\frac{R_0-1}{\gamma} t } - 1 \Bigr\}
\end{equation}
2週間で30倍ということは,$30 = \frac{J(t_0+14)}{J(t_0)}$であるが,これを数値計算すると$t_0$=3.8日となる。まあ,そういう解がありうるという以上の情報はないので,これは$R_0$に対する制約条件にはならないということか。

追伸(2020.4.1)
 付録B:
新規感染数累計の増倍率では,感染数の指数関数的な増大$f(t)= a e^{t/\lambda}$が観測される場合の一定期間における累計の増倍率$r(t)$を次のように定義した。
\begin{equation}
r(t) = \dfrac{e^{(t+\tau)/ \lambda}-1}{e^{ t/\lambda}-1} =  \dfrac{e^{\tau/ \lambda}-e^{-t/\lambda}}{1-e^{ -t/\lambda}} \approx e^{\tau/ \lambda}
\end{equation}
これを上記の$J(t)$と組み合わせると,$\lambda=\dfrac{\gamma}{R_0-1}$とすればよい。
したがって,
\begin{equation}
\lim_{t \to \infty}r(t) =  e^{\frac{\tau (R_0-1)}{ \gamma}}
\end{equation}

2020年3月28日土曜日

湖北省の集団免疫率

基本再生産数と集団免疫率からの続き

昨日の基本再生産数と集団免疫率のところで,湖北省(武漢以外)における集団免疫率をSIIDR2モデルで推定したところ,0.2%という結果が得られた。ところで湖北省の感染中心である武漢はどうだろうか。そこで,武漢を含む湖北省について同様の計算を行った。

パラメタを決定するための新規感染数累計と死亡数累計のデータとしては,WHOのSituation Reportを使う。ただし,データが存在しているのは,2月1日のNo.12から3月15日のNo.55までであり,死亡数データはNo.25からNo.55までに限定されている。また2月13日のNo.24から2月14日No.25以降の新規感染数累計のデータには,確定感染者(Confirmed)の定義変更に伴うギャップが存在する。そこで,次のようにデータを加工した。

①定義変更ギャップについては変更前後のデータ倍率を古いデータにも当てはめて新しい定義にそろえる。
②欠落している初期部分については指数関数的な振る舞いを仮定して,未欠落部分につががるように補完する。こちらの方は,データ数もそれほど多くないので,後のモデルパラメタ推定にはそれほど大きな影響を与えない。

2月1日を基準日0として50日分の以下のjuliaコード用のデータが得られた。xhは時間(日)
yhは新規感染数累計,zhは死亡数累計である。なお湖北省の人口を5900万人として,1万人当りの数に換算している。

xh=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,
43,44,45,46,47,48,49]
yh=[0.370,0.478,0.612,0.777,0.979,1.223,1.517,1.944,2.420,2.957,
3.684,4.387,4.982,5.677,6.225,6.872,7.428,7.885,8.318,8.811,
9.221,9.534,9.861,10.168,10.455,10.514,10.621,10.755,10.862,
10.896,10.981,11.049,11.118,11.172,11.244,11.340,11.373,11.393,
11.412,11.435,11.456,11.469,11.476,11.482,11.485,11.487,11.488,
11.489,11.490,11.491]
zh=[0.028,0.031,0.035,0.039,0.043,0.049,0.054,0.060,0.067,0.075,
0.084,0.094,0.105,0.117,0.130,0.145,0.162,0.181,0.202,0.223,
0.247,0.271,0.287,0.303,0.326,0.344,0.363,0.381,0.398,0.423,
0.434,0.443,0.448,0.455,0.462,0.468,0.475,0.480,0.487,0.492,
0.497,0.502,0.506,0.510,0.513,0.516,0.518,0.519,0.521,0.523]

SIIDR2モデルのパラメタを次のようにとると,上記データがほぼ再現できる。
$\alpha_1=5/0.80, \alpha_2=5/0.20, \gamma_1=15/0.96, \gamma_2=15/0.04, \beta=0.88, \nu=0.30, \lambda=7, \tau=5$。もちろんパラメタには不定性があるが,データの再現性を制約条件とした場合に,感染数や回復数(免疫獲得数)などの結果が大きく変わることはない。以下の図では,u2:軽症感染数(無症状含む),u3:重症感染数(隔離済),u4:死亡数累計=Deaths,u5:新規感染数累計=Confirmed,u6:回復数(免疫獲得数)である。

図1 湖北省(2/1〜3/15)の1万人当り感染状況

つまり,人口5900万人の湖北省では1万人当り約60人の水準(0.6%)で免疫獲得数が飽和している。これを前回の結果(武漢以外の湖北省で1万人当り約20人)と組み合わせると,武漢市の免疫獲得者は5900*60-4800*20=258,000人となり,武漢市の集団免疫率は2.6%になる。これでもまだ少ないのでいつでも再燃する可能性がある。

このパラメタにおける実効再生産数 $R_{\rm eff}= \alpha \beta(t)  = \alpha \dfrac{\beta}{15}\{8+7 \tanh(-\frac{t-\tau}{\lambda}) \} $は次のようになる。$t$=20日までの平均で$R_{\rm eff}=1.415$,$t$=30日までの平均は$R_{\rm eff}=1.044$となる。


図2 湖北省データを再現する実効再生産数 R_eff(t=0〜49)

2020年3月27日金曜日

基本再生産数と集団免疫率

感染症数理の基本的なモデルであるSIRモデルについて自分は十分理解できていなかった。奈良女子大の高須さん[1]や神戸大の牧野さん[2]や京大の門さん[3]の資料が大変わかりやすくて勉強になった。

きっかけはツイッター@nagayaさんの次のコメント
R0=2なら国民の50%、3なら66%、逆に1.5なら33%の免疫獲得で理論上は収束に向かいます(この理論値を超えて免疫獲得した分が「オーバーシュート」)。日本は自粛とクラスター追跡、検査を絞って1.2程度にして医療崩壊を避けようとしたんでしょう。無理です。長期化しますし、指数関数的に潜在します。
基本再生産数$R_0$と集団免疫率に関係あったっけ?ということで高須さんの資料で学び直し。

SIRモデルは,感受性保持者(Susceptible,$S(t)$)・感染者(Infected,$I(t)$)・免疫保持者(Recovered,$R(t)$ )からなる力学系モデルであり次の微分方程式を満たす($\beta, \gamma$の定義に注意 )。ここで$t$は時間であり,最も単純なバージョンでは集団の人数を$N$として$S(t)+I(t)+R(t)=N$は保存量である。なお,$\beta$は感染率(1人単位時間当りの感染数),$\gamma$は感染期間である。
\begin{equation}
\begin{aligned}
\dfrac{dS}{dt} &= -\beta \dfrac{S}{N} I\\
\dfrac{dI}{dt} &= \beta \dfrac{S}{N} I  - \dfrac{I}{\gamma} \\
\dfrac{dR}{dt} &=  - \dfrac{I}{\gamma}\\
\end{aligned}
\end{equation}
これからわかること。集団中の感受性保持者(免疫非保持者)の割合を$p(t)=\dfrac{S}{N} $とすると,$p(t) > \dfrac{1}{\beta \gamma}$で感染拡大,$p(t) < \dfrac{1}{\beta \gamma}$で感染縮小となる。そこで,基本再生産数を$R_0 = \beta \gamma$と定義すると,$p(0)=1$の初期状態において,$R_0>1$で感染拡大,$R_0<1$で感染縮小となる。なお,実効再生産数が$R_{\rm eff}=R_0 p(t)$  と定義される。

また集団免疫率を$\pi(t) = 1-p(t)$と定義すると,感染拡大と縮小の分岐点$\tau$では,$1-\pi(\tau) = \dfrac{1}{R_0}$である。これが@nagayaさんの示した関係式だった。

次に十分時間がたって$I(\infty)=0$となるときの集団免疫率$\pi(\infty)$と$R_0$の関係を求めてみよう。もとの微分方程式系の第1式と第3式から次の微分方程式が得られる。
\begin{equation}
\begin{aligned}
\dfrac{dS}{dR} &= -R_0 \dfrac{S}{N}\\
\dfrac{dS}{S} &= -R_0 \dfrac{dR}{N}\\
\log S + C &= -R_0 \dfrac{R}{N} = -R_0 (1-\dfrac{I}{N} - p(t) ) = -R_0 (\pi(t) - i(t) )\\
\end{aligned}
\end{equation}
ただし,$i(t)=\dfrac{I}{N}$であり,$i(\infty)=0$。そこで,$S(0)=N$として$\pi(\infty)=\pi$とすると,
\begin{equation}
\begin{aligned}
\dfrac{S(t)}{S(0)} &= e^{-R_0\{ \pi(t) - i (t) \}} \\
p(t) = 1-\pi(t) &=  e^{-R_0\{ \pi(t) - i (t) \}} \\
1- \pi &= e^{ -R_0 \pi } \\
R_0 &= - \dfrac{1}{\pi}\log (1- \pi )
\end{aligned}
\end{equation}
図1 t=∞における集団免疫率π(横軸)と基本再生産数R0(縦軸)

分岐点における$\pi(t)$と$R_0$の関係式とは異なった関係を与えていることに注意しよう。

付録:juliaにおける上記プロットのコード
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using Plots
gr()
x = 0.05:0.05:0.95
f(x) = .- 1 ./ x .* log.(1 .- x)
y = f(x)
plot(x, y, label="")
savefig("sir.png")
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

追伸:
以上は簡単なSIRモデルの場合だが,湖北省(武漢以外)をおおむね説明したSIIDR2モデルにたいして,十分な時間がたったときの湖北省(武漢以外)の集団免疫率はどのように推定できるだろうか。パラメタセット,$\alpha_1=5/0.80, \alpha_2=5/0.20, \gamma_1=15/0.96, \gamma_2=15/0.04, \beta=0.915, \nu=0.025, \lambda=7, \tau=7$について計算すると,Recovered $u_5$は1万人当り19程度に収束し,集団免疫率はたかだか0.2%にどどまる
図2 湖北省(武漢以外)のSIIDR2モデルよる集団免疫率の評価

[1]伝染病のモデル−大域情報学(高須夫悟)
[2]コロナウィルス(SARS-CoV-2)の(単純な) 数学モデル(牧野淳一郎)
[3]この感染は拡大か収束か:再生産数 R の物理的意味と決定(門信一郎)

2020年3月24日火曜日

翔んで兵庫

先日,大阪府の吉村知事は,春分の日を含む三連休に大阪府と兵庫県の間での不要不急の往来自粛を要請した。法的根拠を指摘されると,厚生労働省から非公開の文書が出ていたのでそれを重視して府知事の判断で要請を発したと弁明した。

ところがこの「大阪府・兵庫県における緊急対策の提案(案)(3月16日,北海道大学西浦博教授)」が公開されるとSNS上ではさっそく突っ込みが入り,危険区域は大阪府・兵庫県であり,「大阪府・兵庫県内外の不要不急な往来の自粛を呼びかける」とは大阪府と兵庫県の間だけの遮断を意味するのではないだろう,読解力はないのかという声があがった。

吉村知事の判断は,半分はリーズナブルで,半分はいつものような維新の粗っぽい決断力顕示欲(パフォーマンス)が見られるような気がする(本気ならば関西広域連合の定例会にも出席し,兵庫県と打ち合わせした上で決断するべきだろう)。それはさておき,ここではシミュレーションによってその判断の合理性を検討する(ただし,吉村も大阪府もまともに分析・吟味はしていないだろう,していれば説明できるはず)。

問題を,「感染者が急増している地域とそれほどでもない地域の間の交流の遮断が,感染者の増加率やピーク日にどのような影響があるのか」というふうに設定しよう。簡単のためにSIRモデルを用いる。大阪府の人口は880万人,兵庫県への移動人口は11万人(1.25%→pとおく),兵庫県の人口は550万人,大阪府への移動人口は33万人(6.00%→qとおく)であり,感染確率は大阪府的A地域で$\beta_a$=0.20,兵庫県的B地域で$\beta_b$=0.25とし,B地域の方がより感染が拡大していると仮定する(本当のところは,大阪府のPCR検査拒否率がトップであることを考えるとよくわからない)。なお,3/22現在の感染者数は,大阪府125人(14ppm),兵庫県107人(19ppm)であるが,初期条件はともに10ppmから計算をはじめる。(注:この移動人口は平日の場合だろうと思われるが,これを適用する。)

2つの地域A,Bに対して,SIRモデルをあてはめ,感染者の移動人口分も感染に寄与すると仮定すると次式が成り立つ。計算はExcelで1000人を1単位,時間は1日を1単位として差分(以下では微分方程式で表現)により実行する。したがって,人口の初期値はA地域で$n_a$=8800,B地域で$n_b$=5500とする。また平均回復日数を$\gamma$=10とする。$p,q$は各地域の移動人口の割合である。

\begin{equation}
\begin{aligned}
\dfrac{dS_a}{dt} &= - \beta_a \dfrac{S_a}{n_a} \{ I_a - (1-p) q I_b \} \\
\dfrac{dI_a}{dt} &= \beta_a \dfrac{S_a}{n_a} \{ I_a - (1-p) q I_b \} - \dfrac{I_a}{\gamma} \\
\dfrac{dR_a}{dt} &= \dfrac{I_a}{\gamma} \\
\dfrac{dS_b}{dt} &= - \beta_b \dfrac{S_b}{n_b} \{ I_b - (1-q) p I_a \} \\
\dfrac{dI_b}{dt} &= \beta_b \dfrac{S_b}{n_b} \{ I_b - (1-q) p I_a \} - \dfrac{I_b}{\gamma} \\
\dfrac{dR_b}{dt} &= \dfrac{I_b}{\gamma}
\end{aligned}
\end{equation}

図 SIRモデルシミュレーションの対数プロット

その結果,次のことがわかった。なお,感染ピークは感染者数 $I(t)$ のピーク日,感染倍率は $I(t)$ を等比級数に近似した場合の公比/日である。ピーク日が前倒しされ,感染倍率が増えるほうが危険度が増すということになる。

①両地域($\beta_a$=0.20, $\beta_b$=0.25)を分離した場合はそれぞれ次のようになる。
(感染ピークA 94日,感染倍率A 1.099,感染ピークB 68日,感染倍率B 1.148)
②①の両地域がp=1.25% q=6.00%で結合した場合は次のようになる。
(感染ピークA 81日,感染倍率A 1.116,感染ピークB 67日,感染倍率B 1.151)
③②の条件で地域Bの感染率が低い場合($\beta_b=0.15$)は次のようになる。
(感染ピークA 93日,感染倍率A 1.102,感染ピークB 130日,感染倍率B 1.066)

したがって,自分の地域よりも感染率の高い地域は遮断したほうがよい(感染者数が倍増する日数が7.5日から6.5日になる程度)。感染率の低い地域を遮断してもあまり影響はない(それでも若干危険度は増大する)。ただし現実の大阪・兵庫がこのモデルのケースに当てはまっているかどうかは断定できない。モデルが単純すぎるかもしれないし,基礎データの信頼度が低いと思われることによる。

2020年3月17日火曜日

感染症の数理シミュレーション(9)

感染症の数理シミュレーション(8)からの続き

湖北省(武漢以外)を説明するSIIDR2モデルができたので,これを用いて典型的な2つのイメージを定量化して表現してみたい。以下の計算ではモデルを単純化して特徴を表わすために,感染確率の$\beta$は一定だと仮定する。なお,次のパラメタは固定しておく($\alpha_1=\dfrac{5}{0.80}, \alpha_2=\dfrac{5}{0.20}, \gamma_1=\dfrac{15}{0.96}, \gamma_2=\dfrac{15}{0.04}$)。また,重篤な患者に対して必要な設備(病床)数を,発症して隔離されている感染者数$u_3$の$\dfrac{1}{20}$と想定する。これは,厚生労働省の専門家会議における「新型コロナウイルス感染症の流行シナリオ」に準拠している。

A.短期集団免疫シナリオ
SARS-CoV-2の感染者が完全に免疫を獲得できるのかどうかがよく知らないのだけれど(まれに再感染するのか,単なる変異したウイルスへの感染か),英国のジョンソンドイツのメルケルが,国民の6〜7割が感染する可能性について言及しているようだ。果たしてそれが可能なのだろうか。SIIDR2モデルで$\beta=0.6,\ \nu=0.01,\ \lambda=10000,\ \tau=0,\ T=180$とする。$\lambda$を十分大きくとったのは$\bar{\beta} \approx \dfrac{8}{15}\beta$(一定)になるようにするためだ。


図1 短期集団免疫シナリオ(1万人当り)

グラフの基点は新規感染者累計が人口の1ppmに達した時点であり,感染者が増大している多くの国では条件を満足している。日本に当てはめると,ピークは3〜4ヶ月後(5〜6月)$u_1$:未感染数,$u_2$:軽症感染数(含む未発症),$u_3$:重症感染数(ピーク時400万人),$u_4$:死亡数(終期は60万人),$u_5$:免疫獲得回復数(終期は7000万人),$u_6$:重症感染数累計(終期は1400万人)である。したがってピーク時の重篤用必要設備(病床)数は20万床となり,完全に国内のキャパシティを越えてしまうものと思われる。当然オリンピックは不可能だ。

B.ピークシフトシナリオ
医療崩壊の本質は,PCR検査の数の問題でも,病床数の問題でもなく,重篤患者に対応するための設備と医者の数の問題であるといわれている。日本の厚生労働省がNHKを通じて広めている図も,ピークを低くしてその頂上の位置を先送りにする必要があるというものだった。SIIDR2モデルで$\beta=0.42,\ \nu=0.01,\ \lambda=10000,\ \tau=0,\ T=750$としたものが次の図である。図1とスケールのオーダーやファクターが違うことに注意しよう。

図2 ピークシフトシナリオ(1万人当り)

感染数のピークは10〜16ヶ月後,$u_2$:軽症感染数(含む未発症)(ピーク時50万人),$u_3$:重症感染数(ピーク時30万人),$u_4$:死亡数(終期は10万人),$u_6$:重症感染数累計(終期は300万人)である。したがってピーク時の重篤用必要設備(病床)数は1.5万床となり,かろうじて対応できるのかもしれないがよくわからない。大きな問題は2年にわたる長期の対応が必要なことである。ピークシフトを考える場合は,感染率$\beta$の抑制策との合わせ技が必須だ。

[1]ピークカット戦略(集団免疫戦略)地獄への道は善意で舗装されている(Sato Hiroshi)

2020年3月15日日曜日

感染症の数理シミュレーション(8)

感染症の数理シミュレーション(7)からの続き

中間まとめ
いろいろと書き散らしてきたので,ここまでに得られた結果を整理してみる。

感染症の数理シミュレーション(3)において,感染対策時間因子を修正した図1のSIIDR2モデルで,湖北省(武漢以外)の新規感染者数累計と死亡数累計説明できるパラメタセットを得ることができた
図1 SIIDR2モデルの概念図,$n=u_1+u_2+u_3+u_4+u_5$, $p+q=1$

\begin{equation}
\begin{aligned}
S: \dfrac{du_1}{dt} &= -\dfrac{\beta(t)}{n} u_1 u_2\\
I_1: \dfrac{du_2}{dt} &= \dfrac{\beta(t)}{n} u_1 u_2 -\dfrac{u_2}{\alpha_1} -\dfrac{u_2}{\alpha_2}\\
I_2: \dfrac{du_3}{dt} &= \dfrac{u_2}{\alpha_2} - \dfrac{u_3}{\gamma_1} -\dfrac{u_3}{\gamma_2}\\
D: \dfrac{du_4}{dt} &= \dfrac{u_3}{\gamma_2}\\
R: \dfrac{du_5}{dt} &= \dfrac{u_2}{\alpha_1} + \dfrac{u_3}{\gamma_1}\\
I_a: \dfrac{du_6}{dt} &= \dfrac{u_2}{\alpha_2}\\
\beta(t)&= \dfrac{\beta}{15}\{8+7 \tanh(-\frac{t-\tau}{\lambda})
\end{aligned}
\end{equation}
湖北省(武漢以外)のデータを再現するパラメタセットは以下のとおりであり,これを用いたシミュレーション結果は図2のように与えられる。
$\alpha_1=5/0.80, \alpha_2=5/0.20=25$, $\beta=0.915$, $\gamma_1=15/0.96, \gamma_2=15/0.04=375$,  $\lambda=\tau=7, \nu=0.025$,$u_2$が軽症感染者数(発症無),$u_3$が重症感染者数(発症有),$\dfrac{u_2}{\alpha_2}$が新規重症感染者数$f(t)$,$\dfrac{u_3}{\gamma_2}$が新規死亡数$h(t)$,$u_4$が死亡数累計$i(t)=\int h(t) dt$,$u_6$が新規重症感染者累計$g(t)=\int f(t) dt$,である。WHOで報告されているデータ[1]では,感染者累計(Confirmed)が$g(t)$,死亡数累計(Deaths)が$i(t)$に対応している。


図2 湖北省(武漢以外)のSIIDR2モデルによるシミュレーション
(○はConfirmedとDeathsの観測値,WHOとtencentニュースサイトのデータ)

半分パラメタフィッティングなので,$\nu,\tau,\lambda$を調整して勝手に象の鼻を描いている感は否めないのが微妙なところである

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using DifferentialEquations
using ParameterizedFunctions
using Plots; gr()

sky = @ode_def SIIDR2_model begin
  du0 = 1 # u0:time
  du1 = -β/15*(8+7*tanh(-(u0-τ)/λ))*u1*u2/n # u1:Noimmunity(Susceptible)
  du2 = β/15*(8+7*tanh(-(u0-τ)/λ))*u1*u2/n -u2/α1 -u2/α2 # u2:Mild(Infected-a)
  du3 = u2/α2 -u3/γ1 -u3/γ2 # u3:Serious(Infected-b)
  du4 = u3/γ2 # u4:Dead
  du5 = u2/α1 +u3/γ1 # u5:Recovered
  du6 = u2/α2 # u6:Accumulated Infected-b
end n α1 α2 β γ1 γ2 λ τ

function epidm(β,ν,λ,τ,T)
n=10000.0 #total number of population
α1=5.0/0.80 #latent to recovery (days/%)
α2=5.0/0.20 #latent to onset (days/%)
#β=0.45 #infection rate (/day・person)
γ1=15.0/0.96 #onset to recovery (days/%)
γ2=15.0/0.04 #onset to death (days/%)
u0 = [0.0,n-11ν,4ν,2ν,0.0,5ν,ν] #initial values
p = (n,α1,α2,β,γ1,γ2,λ,τ) #parameters
tspan = (0.0,T) #time span in days
prob = ODEProblem(sky,u0,tspan,p)
sol = solve(prob)
return sol
end

β=0.915 #infection rate
ν=0.025 #inital value of accumulated infected-b
λ=7 #pandemic supression range (days)
τ=7 #pandemic supression start (day)
T=40 #period of simulation

xc=[0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48]
yc=[0.003,0.03,0.23,0.67,1.27,2.00,2.52,2.88,
3.44,3.58,3.71,3.69,3.71,3.71,3.71,3.71,3.71]
zc=[0.0,0.0,0.0,0.01,0.02,0.03,0.04,0.05,
0.07,0.09,0.10,0.11,0.11,0.12,0.12,0.13,0.13]

# kohoku-bukan model
# β=0.915,ν=0.025,λ=7,τ=7,α2=5.0/0.20,γ2=15.0/0.04
@time so=epidm(β,ν,λ,τ,T)
#plot(so,vars=(0,2))
plot(so,vars=(0,3))
plot!(so,vars=(0,4))
plot!(so,vars=(0,5))
plot!(so,vars=(0,6))
plot!(so,vars=(0,7))
plot!(xc,yc,st=:scatter)
plot!(xc,zc,st=:scatter)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

[1]Coronavirus disease (COVID-2019) situation reports
[2]新型環状病毒肺炎疫情動態(tencentニュースサイト)
[3]新型コロナウイルス感染症対策専門家会議(第5回)(3月2日)
[4]特設サイト:新型コロナウイルス(NHK)
[5]新型コロナウイルス感染速報(Su Wei)
[6]Coronavirus Disease (COVID-19) – Statistics and Research(Our World in DATA)
[7]Databrew's COVID-19 data explorer(Databrew)
[8]COVID-19情報共有(佐藤彰洋)
[9]時間遅れを考慮した確率 SIR モデルの安定性解析(石川昌明)
[10]分布的時間遅れをもつ確率感染症モデルの安定性解析(石川昌明)

P. S. [6]のように,プロがシミュレーションをすると遅延SIRモデルみたいなことになるのか。感染率にステップ関数を導入しているので鋭い構造が出現しているようだ。遅延確率SIRモデルになるとちょっとついていけません(3/17/2020)。


感染症の数理シミュレーション(9)に続く

2020年3月14日土曜日

感染症の数理シミュレーション(7)

感染症の数理シミュレーション(6)からの続き

動機
岩田健太郎さんが,新型コロナウイルス感染症対策専門家会議(第5回)の参考資料「新型コロナウイルス感染症の流行シナリオ(2 月 29 日時点)」を紹介していた。そこでは,基本再生産数$R_o=1.7$として,発病間隔を4日としていた。$\beta=1.7/4=0.42$であり,これらはこれまでの想定と矛盾しない。ところが入院期間や重症期間を15日と設定しており,これまでの$\gamma=5$という想定とは異なっている。そこで,前回の考察を見直したところ,導出根拠が不正確な部分があったので再検討する。

方針
中国の湖北省(武漢以外,人口4800万人)の感染データは感染者数が最も大きくほぼ収束しているデータである。新規確定感染者数 , 累計 $f(t) , g(t)=\int f(t) dt$と新規死亡数 , 累計 $h(t) , i(t)=\int h(t) dt$ が観測値として得られており,武漢のような特異性(突出した致死率)をもたない。そこで,これのデータを簡単な関数で近似して,SIIDR2モデルにあてはめることにより,モデルのパラメタである$\beta, \gamma_1, \gamma_2$を観測値から推定しようというものである。なお,前回の議論から$\alpha_1 = \dfrac{5}{0.8} = 6.25,\ \alpha_2 = \dfrac{5}{0.2} = 25,\ \dfrac{\alpha_2}{\alpha_1}=4$は前提とする。

SIIDR2モデル式($u_1 \approx n$, $\beta$=一定とした場合)
\begin{equation}
\begin{aligned}
u_1 &= n - \int \beta u_2 dt = n - 25 \beta g\\
u_2 &= 25 \beta g -5 g\\
u_3 &= \gamma_2 h\\
u_4 &= i\\
u_5 &= 4 g + \dfrac{\gamma_2}{\gamma_1} i \\
u_6 &= g
\end{aligned}
\end{equation}
これを$u_1+u_2+u_3+u_4+u_5=n$に代入して次式が得られる。
\begin{equation}
g(t) = \gamma_2 h(t) + (1+ \dfrac{\gamma_2}{\gamma_1}) i(t)
\end{equation}
この左辺と右辺がほぼ等しくなる$\gamma_1, \gamma_2$を探す。

観測値の近似式
湖北省(武漢以外)の観測値(1万人当りに換算)を再現するものとして前回と同様に次の近似関数を採用する。ただし,$h(t)$は前回から修正した。
\begin{equation}
\begin{aligned}
f(t) = t^4 \exp(-t/3) / 1600\\
g(t) = \int f(t) dt ; g(0)=0\\
h(t) = 1.4 t \exp(-(t - 20)^2/12^2) /4800\\
i(t) = \int h(t) dt ; i(0)=0
\end{aligned}
\end{equation}
$h(t), i(t)$を24倍($\gamma_2/\gamma_1$)したグラフを$f(t), g(t)$と重ねたものを図1に示す。

図1 ピークと変曲点の時点が$t=12$の$f(t),\ g(t)$及び$t=24$の$h(t),\ i(t)$

最適値の検討
$r(t) = \{ \gamma_2 h(t) + (1+ \dfrac{\gamma_2}{\gamma_1}) i(t) \}/g(t)$を$t=10$から$t=30$の範囲でプロットして$r(t)$の値がほぼフラットであり平均して1前後になる$\gamma_1, \gamma_2$を探す。上記専門家会議の議論を踏まえて,$\frac{1}{\gamma}=\frac{1}{\gamma_1}+\frac{1}{\gamma_2}=\frac{1}{15}$とする。なお,これまでの$\gamma=5$を用いると$r(t)$が0.6あたりまで減ってしまう。結局,
\begin{equation}
\gamma_1 = \dfrac{15}{0.96}, \quad \gamma_2 = \dfrac{15}{0.04}
\end{equation}
このとき,$r(t)$の平均値として$\dfrac{1}{20} \int_{10}^{30} r(t) dt = 1.05$が得られるので,条件を満足している。

図2 $t=10$から$t=30$における$r(t)$の振る舞い

また前回の,$\beta(t)=\dfrac{df}{dt} / f + \dfrac{1}{\alpha}$についての議論はそのままであり変更されていないことに注意する。SIIDR2モデルを採用すれば,武漢(湖北以外)では$\beta(t)$を急速に小さくしたことが考えられる。なお,基本再生産率$R_o$と$\alpha$の値から$\beta$を一定とした場合の平均値は$\bar{\beta}=0.4 \sim 0.5$である。

まとめ
湖北省(武漢以外)の1/20/2020から2/29/2020のデータを再現するSIIDR2モデルのパラメタとしては,次のセットが推奨される。
\begin{equation}
\alpha_1 = \dfrac{5}{0.8} ,\quad \alpha_2 = \dfrac{5}{0.2} ,\quad \bar{\beta}=0.4 \sim 0.5 ,\quad  \gamma_1 = \dfrac{15}{0.96} ,\quad \gamma_2 = \dfrac{15}{0.04}
\end{equation}


付録 初期値$\nu$の取り扱い
これまでは,$u_2$の初期値を$\nu$としてきた。ところで,各国の感染者比(1)各国の感染者比(2)から新規感染者数累計が人口の1ppmを越えた$t_0$を始点とするモデル化が必要があることがわかった。そこで,$t_0$における初期条件を再度検討する。はじめに$h(t_0)=i(t_0)=0$と近似した上で,上記関係式より,$u_2(t_0)=25 f(t_0), u_5(t_0)=4 g(t_0) , u_6(t_0)=g(t_0)$となる。ここで,$g(t_0)=\nu$と再定義する。$\nu$=1ppmが始点になる。

ところで,$f(t)=k t^m$と仮定すると
\begin{equation}
\begin{aligned}
g(t) &=\int f(t) dt = \dfrac{k t^{m+1}}{m+1}=\dfrac{t f(t)}{m+1}\\
\therefore f(t_0) &= \dfrac{m+1}{t_0} g(t_0) =  \dfrac{m+1}{t_0} \nu
\end{aligned}
\end{equation}
したがって,$u_2(t_0)=\dfrac{25}{t_0}(m+1) \nu \approx 4\nu$となる。ただし,日本の1ppmに至るまでの観測値から,$t_0 \approx 25, m \approx 3$とおいた。

追加(3/17/2020)
次に,$u_3(t_0)$について考える。これは次の微分方程式を満たす。
\begin{equation}
\dfrac{du_3}{dt}=f -\dfrac{u_3}{\gamma}
\end{equation}
ここで,$u_3(t)=k t$と仮定して代入すると,$k = f -\dfrac{k t}{\gamma}$である。そこで,
$k=\dfrac{f(t_0)}{1+t_0/\gamma}$となる。上の結果から,$u_2(t_0)=25 f(t_0)$,したがって,次式が成り立つ。
\begin{equation}
u_3(t_0)= \dfrac{f(t_0)}{1+t_0/\gamma} t_0 = u_2(t_0) \dfrac{25}{t_0 (1+t_0/\gamma)}
\approx u_2(t_0) \dfrac{1}{(1+t_0/\gamma)} \sim \dfrac{1}{2} u_2(t_0) = 2\nu
\end{equation}

さらに$h(t_0)=i(t_0)=0$という条件をゆるめてみる。$u_3=\dfrac{u_2}{2}=375 h$より,$\int u_2 dt = 750 \int h dt = 750 i$,一方,$g = \int f dt = \dfrac{1}{25} \int u_2 dt$。したがって,$i = \dfrac{1}{30} g$となる。これから,$u_5(t_0)=4 g(t_0) + \dfrac{24}{30} g(t_0) \approx 5 \nu$となる。なお,$u_4(t_0)=i(t_0)= \dfrac{g(t_0)}{30} = \dfrac{\nu}{30} $なので,これはゼロのままとする。

この結果$u_1(t_0)=n-u_2(t_0)-u_3(t_0)-u_4(t_0)-u_5(t_0)=n-4\nu-2\nu-5\nu=n-11\nu$となり,新規感染者数累計が1ppmになる時点には,約11ppmの軽症感染者・重症感染者・死亡者・免疫獲得回復者が存在することになる。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
まとめると,$\nu$=1ppm時点の初期値を次のように設定する。
\begin{equation}
u_1(t_0)=n-11\nu, \quad u_2(t_0)=4\nu, \quad u_3(t_0)=2\nu, \quad u_4(t_0)=0, \quad u_5(t_0)=5\nu, \quad u_6(t_0)=\nu
\end{equation}


感染症の数理シミュレーション(8)に続く


2020年3月12日木曜日

各国の感染者比(2)

各国の感染者比(1)からの続き

新型コロナウイルス感染症の話。
感染者数が一定の数あるいは人口比になった日時とその値を共通の原点として,各国の感染者数や人口比を対数グラフに表して観察する方法についてSNS上であれこれ話題になっている。最初の指摘は「他国と比べて日本だけが特異な振る舞いを示しているのは人為的な要因(検査の絞り込み等)の結果ではないか」というものであった。

これに対して,感染者数基準のプロットではほとんど重なって見えた他国・地域については,人口比にすれば分離して見えることを指摘した。それにもかかわらず,中国,湖北省(武漢以外),韓国,日本,イタリア,イランの比較では日本だけが異なった傾向を見せた(緩慢な指数関数型増加)。一方,症例の少ない多くの国を含めて比較すれば,日本だけが特異なのではないというクレームがついていた。ただし,無原則にあれもこれも混ぜてしまうのは問題の本質を見失う危険性があるので正しくない方法論だ。

そこで,アジア太平洋地域で一定の感染者が報告されている国々と日本,韓国について前回と同様の分析を行った。対象は,韓国,日本,台湾,香港,シンガポール,オーストラリアの6カ国とした。なお,今回の追加データは,ジョンズ・ホプキンズ大学のアーカイブから取得している。各国の人口,1ppm達成日,3/9時点での新規確定感染数累計(Confirmed)/人口(Population)は,オーストラリア(2460万人,2月29日,3.7ppm),日本(12600万人,2月22日,4.1ppm),韓国(5180万人,2月19日,140ppm),シンガポール(560万人,1月27日,15ppm),台湾(2360万人,2月20日,1.9ppm),香港(740万人,1月26日,8.1ppm)である。


図 各国の感染者比(基準日は1ppm時点,縦軸はppmの常用対数)

(1)韓国と台湾は,それぞれ異なった水準ではあるが収束に向かう様子が窺える。

(2)欧州の感染者急増国の多くは韓国と相似形の振る舞いをしている。

(3)取り上げたアジア太平洋諸国(韓国,台湾以外,日本を含む)は対数グラフでおおよそなだらかな1次関数で増加している(すなわち,底の小さな指数関数的増加)。したがって,まだ収束の様子はみられない。

(4)香港とシンガポールは1次関数のスロープが原点から2週目以降でよりゆるやかに変化している。なんらかの抑制策が効果を発揮したのかもしれない。シンガポールは0日から18日まで平均15.5%,18日から42日まで平均3.5%で増加,香港は0日から15日まで平均11.0%,15日から43日まで平均4%で増加している。なお,日本は,0日から16日まで平均9%とその中間になっている。

2020年3月10日火曜日

各国の感染者比(1)

各国の新規確定感染者数の累計(Confirmed)が100名または200名となった時点を1としてその前後の感染者数累計を対数プロットしたものがtwitter上でいくつか紹介され,日本だけが異なった振る舞いを示していることが指摘されている。日本の感染者数の統計が不自然ではないかということはこれまでも話題になってきた。

ところで国によって人口は大きく異なるのにもかかわらず基準を100名などの固定した人数にするのはどうかと思う。そこで,新規確定感染者数の累計(Confirmed)を各国/地域の人口で割った感染者比が1ppm(百万分の一)となるところを基準にしてそれらの時間経過を比較してみよう。データはWHOのCoronavirus disease (COVID-2019) situation reportsを用いる。感染者数が多い次の6つの国や地域(日本を含む),(1) 中国(13億9500万人)(2) 湖北省(武漢以外)(4800万人),(3) 韓国(5200万人),(4) 日本(1億2700万人),(5) イタリア(6000万人),(6) イラン(8100万人)を選んだ。

それぞれの国の現在(グラフの終端 3/9/2020)の感染者比と感染者が1ppmになる日時はおおむね次のようになっている。(1) 中国(58ppm,1月25日),(2) 湖北省(武漢以外)(370ppm,1月21日*),(3) 韓国(140ppm,2月19日),(4) 日本(3.8ppm,2月23日),(5) イタリア(120ppm,2月27日),(6) イラン(81ppm,2月25日)その結果は次の図で示される。

図 各国の感染者比(基準日は1ppm時点,縦軸はppmの常用対数)

(1)各国の1ppm以下のデータはバラつきが大きく,感染症の数理シミュレーションの基礎データとして用いるには不適当である。今後,さらに各国の比較を行う場合は感染者比1ppm以上のデータで議論することが望ましい。

(2)感染者数が多い国おける1ppm以上の感染者比の増加カーブの様子はこれまでのところよく似ている。韓国では中国と同様の飽和が始まっているようだ。韓国,イタリア,イランは現在まで湖北省と中国全土に挟まれたデータ領域で推移している。

(3)感染源近傍の湖北省(武漢以外)に比べ中国全土の感染者比の飽和値は約1/6となっている。中国における湖北省の封じ込めが成功しているのだと考えられる。各国や地域の社会構造(政治・経済・文化)や感染対策効果に依存して感染者比の飽和値が定まっていく。

(4)この中では日本のデータだけが他の国や地域と異なった振る舞いをしている。しかしまだ飽和に達している様子は見られない。なお,1ppmに達していない国のデータを混ぜて議論するべきではない。人口密度の低いオーストラリアなども日本と同様の傾向ではないかとの指摘があり,引き続き原因の分析が必要である。


(注1)日本のデータはWHOのデータの扱いと同様で,ダイヤモンド・プリンセス号の部分は除かれている。

(注2)湖北省(武漢以外)はWHOのデータからは直接得られないので,湖北省(武漢以外)のデータによる考察とモデル計算に基づいている。

(注3)WHOの日本のデータ2月5日分には奥村晴彦さんのCOVID-19が指摘するような誤記があるので修正した。なお,中国のデータも奥村さんのcsvファイルを利用させていただいた。

(注4)中国全土のデータの2月17日の段差は集計方法の変更によるものである。

(注5)1/30 -> 1/21 に訂正(グラフにはまだ反映されていない 3/15/2020)

[1]感染症の数理シミュレーション(6)

各国の感染者比(2)に続く

2020年3月9日月曜日

fudan-CCDCモデル

中国の上海にある復旦大学の研究グループが,新型コロナウイルス感染症(COVID-19)の流行を推測するために,統計的な時間遅延力学系モデル(fudan-CCDCモデル)を考案した。CCDC(中国疾病予防センター)は中国の防疫拠点であるがそこで得られたデータを再現している。彼らはこのモデルを用いて [1] の論文を2月21日に報告した。

日本でも,このモデルによる感染予測が始まった [2][3][4]。いずれも厚生労働省のデータをもとにしてパラメタを推定している。KEN_KEN2さんのpythonを使った計算によれば,3/10ごろに確定感染者が2000人となりそうだ。3月のはじめの数日の新規感染者数については厚生労働省の報告値の2倍以上の推計値を与えており,モデルが原因なのかデータが原因なのかはわからない。また,林祐輔さんのpythonを使った計算によれば,政府の観測にかからない潜在感染者数が 3月9日時点で約2万人あり,ピークアウトするのは4月末〜5月初旬という結果を得ている(注:この潜在感染者数は我々のSIIDR2モデルでは$u_2(t)$に対応する)。いずれもソースコードが公開された貴重な資料となっている。

ところで,復旦大学グループの論文[1]の結論部分には次のようなコメント「上海と同じ防疫措置を2/20までに実行すれば潜在感染者数は15万人に押さえられるが,2/29にのびれば45万人になるだろう」がある。彼らは日本の感染者数の初期データとしてダイヤモンド・プリンセス号を含めたものを採用し,武漢とほぼ同じ値で増加していることを冒頭で示している。また,これを用いて複数のシナリオに基づくシミュレーションを行っている。残念ながら,これにはダイヤモンド・プリンセス号という特異事例の感染者数の値,すなわち2月10日に135人(日本国内のみ26人)から2月19日に542人(日本国内のみ73人)を含んでおり,第5節のPossible future scenarios for COVID-19 in Japanのシミュレーション部分はミスリーディングである。

[1]CoVID-19 in Japan: What could happen in the future(Fudan University)
[2]中国の最新論文の方式で日本のコロナウイルスの感染者を予想してみた(KEN_KEN2)
[3] Fudan_CCDC_Japan_Optuna.ipynb(林祐輔)
[4]COVID-19 in Japan(林祐輔)
[4]Coronavirus disease (COVID-2019) situation reports(WHO)

2020年3月8日日曜日

感染症の数理シミュレーション(6)

感染症の数理ミュレーション(5)からの続き

湖北省(武漢以外)のデータでは,新規/累計感染者数 f(t), g(t) と新規/累計死亡数 h(t), i(t) を簡単な近似関数で表現した。これを用いると,感染症の数理シミュレーション(3)のSIIDR2モデルにおけるパラメータを絞り込むことができるのではないだろうか。

そこで,前回示したSIIDR2の方程式系と今回の実測データ近似関数の関係を整理してみよう。
\begin{equation}
\begin{aligned}
S: \dfrac{du_1}{dt} &= -\dfrac{\beta}{n} u_1 u_2 = -\dfrac{\beta}{n}\alpha_2 f u_1 \\
I_1: \dfrac{du_2}{dt} &= \dfrac{\beta}{n} u_1 u_2 -\dfrac{u_2}{\alpha_1} -\dfrac{u_2}{\alpha_2} = \dfrac{\beta}{n}\alpha_2 f u_1 - (1 + \dfrac{\alpha_2}{\alpha_1}) f \\
I_2: \dfrac{du_3}{dt} &= \dfrac{u_2}{\alpha_2} - \dfrac{u_3}{\gamma_1} -\dfrac{u_3}{\gamma_2} = f - (1 + \dfrac{\gamma_2}{\gamma_1}) h \\
D: \dfrac{du_4}{dt} &= \dfrac{u_3}{\gamma_2} = h\\
R: \dfrac{du_5}{dt} &= \dfrac{u_2}{\alpha_1} + \dfrac{u_3}{\gamma_1} = \dfrac{\alpha_2}{\alpha_1} f + \dfrac{\gamma_2}{\gamma_1} h\\
I_a: \dfrac{du_6}{dt} &= \dfrac{u_2}{\alpha_2} = f
\end{aligned}
\end{equation}
これから次の関係式が得られる。
\begin{equation}
\begin{aligned}
u_1 &= n - u_2 - u_3 - u_4 - u_5\\
u_2 &= \alpha_2 f\\
u_3 &= \gamma_2 h\\
u_4 &= \int h dt = i\\
u_5 &= \dfrac{\alpha_2}{\alpha_1} g + \dfrac{\gamma_2}{\gamma_1}i \\
u_6 &= \int f dt = g
\end{aligned}
\end{equation}
さらに,次の前提条件が成り立つとする。
①感染者の2割が発症する[1]。
②致命率(発症者の死亡率)は0.7%である[2]。
③発症までの平均潜伏期間は$\alpha=5$とする$(1/\alpha=1/\alpha_1+1/\alpha_2)$ [3]。
④基本再生産数$R_o$=2.2(1.4〜3.9)より,$\beta=R_o/\lambda=0.46\pm0.12$  である [2]。
⑤湖北省(武漢以外)の新規死亡数h(t)は20日のピークに0.006/日,40日目の累計で0.12人(1万人当り)[4]。
⑥同上の新規感染者数f(t)は12日のピークに0.25/日,40日目の累計で3.70人(1万人当り)[4]。

$I_2$の$u_3$に対する微分方程式$du_3/dt + u_3/\gamma = f$を解いて求めた$u_3$の関数形が$\gamma_2 h$に近づくように定めると,$\gamma=5,\   \gamma_1=5/0.965,  \gamma_2=5/0.035$が得られる。ただし,$(1/\gamma=1/\gamma_1+1/\gamma_2)$である訂正有り 3/13/2020)→感染症の数理シミュレーション(7)

各関数のT日目の値がわかれば,非感染者の減少分$\Delta u_1$は次式で与えられる。
\begin{equation}
\Delta u_1=n-u_1(T)=u_2(t)+u_3(T)+u_4(T)+u_5(T)
\end{equation}
さらに湖北省(武漢以外)のT=40日のデータを代入して,$u_2(T)=\alpha_2 f(T)≒0$, $u_3(T)=\gamma_2 h(T)≒0$より,$\Delta u_1= \dfrac{\alpha_2}{\alpha_1} g(T) + \dfrac{\gamma_2}{\gamma_1}i(T)+i(T) =14.8+3.4=18.2 $である。ここで,$\alpha_1=5/0.8, \alpha_2=5/0.2$という①の仮定を用いた。

$u_1(t)$において,$\beta$が定数であると仮定して微分方程式を解けば,$u_1(t)=n \exp (-\frac{\beta}{n} \alpha_2 g(t))$となることから,$\beta$と$\alpha_2$を与えれば,$u_1(T)=9982$が得られる。先ほどの式と組み合わせると$\beta=0.2$となる。

まとめると,湖北省(武漢以外)のデータを再現するSIIDR2モデルのパラメタのセットは次のようになる。訂正有り 3/13/2020)→感染症の数理シミュレーション(7)
\begin{equation}
\alpha_1=\dfrac{5}{0.8},\  \alpha_2=\dfrac{5}{0.2},\  \beta=0.2,\  \gamma_1=\dfrac{5}{0.965},\   \gamma_2=\dfrac{5}{0.035}
\end{equation}

SIIDR2モデルでは,感染率を時間の関数$\beta(t)$として感染対策が行われることを表している。上記の$\beta$はそれを平均したものと考えることができる。ところで,上記の$I_2$の$u_2$に対する微分方程式は,$du_2/dt + u_2/\alpha = \beta u_2$と近似できる($\therefore u_1/n ≒ 1$)ことから,次のように与えられる。
\begin{equation}
\beta(t) = \dfrac{du_2/dt}{u_2} + \dfrac{1}{\alpha}
\end{equation}
$u_2(t)=\alpha_2 f(t)$を上式に代入したものと,感染症の数理シミュレーション(5)で考えたモデル感染対策時間因子で$\beta=0.91, \lambda=7, \tau=7$と置いたものを下記の図に示す。


図:湖北省(武漢以外)のデータからSIIDR2で導いたβ(t)(下)とモデル化したβ(t)(上)

また,このモデル化された感染対策時間因子$\beta(t)$をt=0からt=40まで積分したものを40日で割って平均すると($T=40, \beta=0.91, \lambda=7, \tau=7$),
\begin{equation}
\bar{\beta} = \dfrac{1}{T} \int_0^T \dfrac{\beta}{15} (8 + 7 \tanh (-(t-\tau)/\lambda ) dt = 0.24
\end{equation}
となって,先ほど湖北省(武漢以外)のデータからSIIDR2モデルを経由して導いた$\beta=0.2$と矛盾しないような感染対策時間因子のパラメタセットが存在することがわかる。

[1]新型コロナウイルス感染症対策の見解(厚生労働省)
[2]新型コロナウイルス(COVID-19)感染症(川名・三笠・泉川)
[3]新型コロナウイルス肺炎COVID-19(下畑享良)
[4]tenetニュースサイト
[5]Coronavirus disease (COVID-2019) situation reports(WHO)
[6]COVID-19(奥村晴彦)

感染症の数理シミュレーション(7)へ続く

2020年3月7日土曜日

感染症の数理シミュレーション(5)

感染症の数理シミュレーション(4)からの続き

ここ1,2週間が瀬戸際といわれ続けて,2週間を迎えようとしている。そこで,対策の効果や時期を感染率$\beta(t)$という1つの時間依存のパラメタに代表させ,これが感染者の増加にどのような影響を及ぼすかを見えるようにしたい。

感染症の数理シミュレーション(3)では,SIIDR2モデルとして,感染対策によって感染率を下げる効果を,感染シミュレーション開始時を基点とする指数関数的な因子$\beta(t) = \beta \exp(-t/\lambda) $によって導入した。これは,感染対策時間$\lambda$の数倍で感染率をほとんどゼロに近づけてしまうが,それは難しいのではないだろうか。

そこで,感染率を1桁程度減少させるとともに,対策導入日$\tau$を新たなパラメータとして加えた新しい対策時間因子を含む感染率を定義する。
\begin{equation}
\beta(t) =\dfrac{\beta}{15} \{ 8 + 7 \tanh \dfrac{-(t - τ)}{\lambda} \}
\end{equation}
感染対策の前後にはそれぞれ$\beta$及び$\beta/15$という一定の感染率を与える(15にはとくに根拠はない,パラメータの定量的な精度は求めておらず,オーダやファクターの評価ができればよいという立場である)。もし,対策開始日が$\tau=0$であれば,シミュレーション開始日の$t=0$の$\beta(0)=8\beta/15$となるので,これまでの$\beta$の定義の半分の値になっていることに注意する。

$\beta(t)$を$\beta$で割って,感染対策時間因子だけを取り出したものをグラフにすると次のようになる。横軸はシミュレーション開始からの日数を表す。
図1 感染対策時間因子β(t) λ=5 左からτ=5,10,15

図2 感染対策時間因子β(t)  τ=20 急峻な方からλ=5,10,15

どうやら政府は情報公開に力を入れるのではなく,マスコミやインターネットにおける情報抑制に全力を投球し始めた。ますます,正確な情報が見えなくなってしまう。






2020年3月5日木曜日

湖北省(武漢以外)のデータ

新型コロナウイルス感染症の事例数が最も多い地位は中国の湖北省であるが,武漢のデータは特異的な値を示している(高い死亡率)。そこで,モデルの妥当性を検討するためには湖北省(武漢以外)のデータを用いるのが適当だ。tencentのニュースサイトには湖北省(武漢以外)のデータが報告されている。

湖北省(武漢以外)の新規感染者数データの実測値 K(t) にはバラつきがあるが,次のような傾向を持っている。
・K(t)は40日の範囲で0から増加してその後減衰して0に近づく。
・そのピークはt=14日のK(t)=1200人である。
・この40日間の感染者数の累計数は$\int K(t) dt$ = 17,800人である。

この性質をみたす簡単な近似関数を求めておけば,感染モデルとの比較が容易になる。K(t)の解析的な近似関数をf(t)(一日に報告される新規感染者の数)とし,その積分をg(t)(新規感染者の累計数)とする。

目の子で探すと,tを報告開始からの日数として次のようになる。
$f(t) = 3 t^4 \exp(-t/3)$
f'(12)=0, f(12)=1140, g(40)=17400 など,観測データをおおむね再現している。

感染症の数理シミュレーション(3)で用いたSIIDR2モデルでは,$u_6$がg(t)に対応する。なお,$u_6(t)$は重症感染者数$u_3(t)$の変化分から減少項を除いたものを積分したものである。


図1 湖北省(武漢以外)の新規/累計感染者数の近似関数,上がg(t),下がf(t)(横軸は日,縦軸は1万人当たり)

湖北省(武漢以外)での1万人当りの累計感染者数(t=40)は3.7人,新規感染者数(t=peak)は0.25人,死亡数(t=40)は0.12人である。

P. S.
なお,死亡数についても20日をピークとする滑らかな関数となっているので,新規/
累計死亡数の近似関数を求めることができる。それぞれh(t), i(t)とすると,
$h(t) = 30 \sin^2[ \pi / 40 t]$で与えられる。ピーク時の一日あたりの死亡数は30人であり,40日目にはおおむね収束に近づいている。これをグラフにすると次のようになる。

図2 湖北省(武漢以外)の新規/累計死亡数の近似関数,上がi(t),下がh(t)(横軸は日,縦軸は1万人当たり)

2020年3月2日月曜日

全国の小中高等学校の休業の効果

新型コロナウイルス感染症の感染が拡大する中,2月27日(木)の夕方,安倍首相は全国すべての小学校・中学校・高校・特別支援学校等に,3月2日から春休みまでの期間,臨時休業とするよう要請する考えを表明した。そして今日からその休業が始まった。

ここではその是非ではなくて,感染機会を減少させる上で休業の効果がどの程度ありうるかについて考えてみたい。人間の1日の生活時間において感染の機会は,その活動における他人との接触による(間接的なモノを通しての感染もあるとは思う)。このとき,人との距離が近い密集した空間のほうがその危険性は大きいとNHKでも宣伝していた。そこで,1日の活動時間とその活動時の単位面積当りの他者の人数の積和を全国民に渡って平均すれば,感染機会の大きさを定量的に評価できるのではないかと考えた。

まず,生活時間を調べよう。5年おきに実施している最新の平成28年社会生活基本調査のデータをみよう・・・うーん。面倒なので勝手に考えることにする。睡眠7時間,家庭・食事5時間,通勤・通学等1時間,仕事・学校・塾8時間,その他活動3時間。

また,次に平成27年国勢調査学校基本調査を参考にしよう・・・うーん。まあだいたい,1億2700万人の国民が,幼稚園・幼保連携型認定こども園・保育園に400万人(3%),学校(小〜大)に1700万人(13%),職場に5900万人(47%),老人・乳幼児等が4500万人(35%),病院・介護施設等に200万人(2%)となる。国勢調査によれば世帯数は5300万世帯で,世帯人数が1人(34%),2人(28%),3人(18%),4人(13%),5人以上(7%)となっている。

まず,家庭での時間を考える。15㎡の部屋に家族が集まって食事や団欒の時間を過ごす。その時間が3時間として,睡眠時間を含め9時間は1人でいるものとする。そこで感染機会Cに寄与するのは複数で過ごす時間である。
C(家庭) = 0人/㎡*9時間 + (0*0.34 + 1*0.28 + 2*0.18 + 3*0.13 + 4*0.07)人/15㎡*3時間 = 0.21

次に,学校と職場である。教室の面積を9*7=60㎡として,平均収容人数を30人とすると,
C(幼保+学校) = (0.03 + 0.13)*30人/60㎡*8時間 = 0.64
職場は非常に多様な環境であり,えいやっと1人1坪のオフィスや工場を考える。
C(職場) = 0.47*1人/3.3㎡*8時間 = 1.14

通勤通学時間は,NHKによる2015年の国民生活時間調査と国勢調査が参考になる。徒歩(7%),自転車等(15%),自家用車(47%),電車バス等(31%)である。また,電車の1人当り立席専有面積は0.3㎡らしいので,3.3人/㎡を用いることにする。
C(通勤+通学) =(0.03+0.13+0.47){ (0.07+0.15+0.47)*0人/㎡*1時間 + 0.31*3.3人/㎡*1時間 }= 0.64

その他はよくわからないので,ざっくりと職場と学校の平均0.4人/㎡をとる。
C(その他) = 0.98* 0.4人/㎡ *3時間 = 1.18

病院・介護施設もよくわからないが2%なので家庭に含めてしまった。したがって,
C(全体) = C(家庭) + C(幼保+学校) + C(職場) + C(通勤通学) + C(その他) = 0.21+0.64+1.14+0.64+1.18 = 3.81

学校が休業になるとC(学校)とC(通学)の分は減るが,半分は学童保育などで残るだろう。
なお,小中高等学校だけなので,全人口に対する寄与率は0.13ではなく,高等教育機関などを除いた0.10である。そこで学校一斉休業による減少項は,
C(休校) = {0.10*30/60*8 + 0.10*0.31*3.3 } * 0.5 = 0.25

つまり,この度の全国一斉学校休業による感染機会Cの減少効果は,0.25/3.81≒7%ということになる。まあこんなものだろうか。これからみると,さらに努力することができる部分は家庭や仕事以外のその他の部分である。

P. S. 時差出勤やテレワークなどによって,通勤時の混雑緩和をはかり,乗車率が50%になれば,C(通勤)= {0.47*0.31*3.3 } = 0.24 だけ減少するので,ほぼ全校休校措置と同程度の効果をもたらすことになる。かもしれない。

[1]新型コロナウイルス感染症対策本部(首相官邸)
[2]新型ウイルス研究者試算 対策組み合わせで入院患者6割以上減(NHK)


2020年3月1日日曜日

感染症の数理シミュレーション(4)

感染症の数理シミュレーション(3)からの続き

新型コロナウイルス感染症に対するWHOなどの共同調査報告書[1]が公表された。同時に,新型コロナウイルス感染症の世界的なリスクは4段階のHighからVery Highに引き上げられた

報告書によれば,感染すると平均で5〜6日後に症状が出る。感染者のおよそ80%は症状が比較的軽く,肺炎の症状がみられない場合もあり,呼吸困難などを伴う重症患者は全体の13.8%,呼吸器の不全や敗血症,多臓器不全など命に関わる重篤な症状の患者は6.1%だとされた。

逆に子どもの感染例は少なく,症状も比較的軽い。19歳以下の感染者は全体の2.4%にとどまり,重症化する人はごくわずかだ。子どもの感染について報告書では主に家庭内で大人から感染しており,子どもから大人への感染例は調査をした中では確認されていないとしている。

ということは,安倍が週末にある世論調査の支持率回復を念頭に慌てて実施した小中高等学校の全国一斉休校要請は十分な根拠がないということだろう。危機的な状況を避けるための適切な判断だという説も多いが,適切な分析やシミュレーションには裏付けられていない(危機感の喚起には一定の意味があるかもしれないが,他がじゃじゃ漏れな状態で一部だけに注力するとよけいな混乱と感染拡大を招きかねない)。

2月20日までのデータによれば,5万5924人の感染者のうち死亡したのは2114人で,全体の致死率は3.8%である。ただし,感染拡大が最も深刻な湖北省武漢だけが致死率が5.8%であり,1月の最初の10日間に発病した患者の致死率は17.3%に達しているので,ここは特異的状況として除いて考えるべきだ。その他の地域の最近の致死率は0.7%である。疫学における致死率(致命率=case fatality rate)とは,特定の疾患に感染した母集団に対する死亡数の割合である。ここで,疾患に感染していることが判明している必要があるので,今回のようにほぼ無症状や他の疾患と区別できない軽症の感染者がいる場合には取り扱いに注意がいる。

感染症の数理シミュレーション(3)では,東大の黒田産業医のデータをもとにパラメタを定めたが,今回のWHO報告とほぼ整合している。ウイルスの伝搬可能な感染者全体のうち症状があって報告に計上される感染者が1/3である(残りの2/3はほぼ無症状や他の疾患と区別できない軽症の感染者)と仮定すれば,上記の13.8%の1/3の4.6%が重症な感染者であり,モデルの$\alpha_2 / \lambda$=5%とほぼ一致する。また,致死率0.7%もウイルスの伝搬可能な感染者全体を分母にすると1/3になるので0.23%であり,$\gamma_2 / \lambda $=5%としたときの,$\alpha_2 /\lambda  \cdot \gamma_2 / \lambda $ = 0.25%とほぼ一致する。

前回のSIIDR2のシミュレーションでは,武漢を除く湖北省のデータに近くて日本に妥当するモデルとして,$\beta=0.20, \lambda=100$を例示した。これは,感染者の初期値が1万人に1人という仮定を含んでいた。感染者が急増した武漢を取り巻く湖北省全体では,それぞれの地域に飛び火した数千人の初期感染者から計算を開始することは,一定の合理性があるが,日本に換算すると,全国で1万人の初期感染者を仮定することになって不自然である。

つまり,SIIDR2を用いた日本の現状のモデルシミュレーションには,1万人当りの感染者の初期値$u_2(0)$,感染率の初期値$\beta$,対策による感染率の減少係数$\lambda$の3要素が必要である。いずれにせよ,合理的な判断ができなくて肝腎の検査がシステマティックに行われず,感染状況に関するデータが完全に欠落している日本では推定が難しい。

[1]Report of the WHO-China Joint Mission on Coronavirus Disease 2019 (COVID-19)

2020年2月28日金曜日

感染症の数理シミュレーション(3)

感染症の数理シミュレーション(2)からの続き

一昨日のニュース。2020年2月26日,基本方針が全く具体的でないと厳しく指摘されてあせる政府の要請により,PerfumeやEXILEのコンサートが中止になった。また,3月11日まで国立劇場の公演は延期や中止,国立博物館・美術館が閉館となり,社会の空気が相転移した。一方,大阪でただ1名の感染報告者のガイドさんが,回復・退院後再び症状が現れてしまった。さらに,昨日は安倍官邸が全国の小中学校の休校を要請するに至った。SNSでは根拠が不確かな情報がひろがっているということなので,このblogもあまり信用しないほうがいい(ソースコードは提供しており反証は可能だ)。

さて,パラメタが4つあれば象の絵が描けるといわれているので,5つもパラメタを含んだモデルで遊ぶのは慎んだほうがよいのだ。しかし,精緻な理論化に取り組む前に,現象の本質につながるトイモデルであれこれ試すのは,物理学あるいはコンピュータ・シンキング(プログラミング的思考じゃないダス)のキモである。前回のモデルにおけるパラメタセットの問題点を指摘し,それを除く修正モデルを提案して今後の感染状況の推移の全体像の可能性を探りたい。

前回のSIIDRモデルには6つのパラメタが現れる。このうち集団の人口$n$は固定されており,これは問題ない。感染率(1人1日あたりの感染人数)$\beta$や軽症感染者からの平均離脱日$\alpha_1, \alpha_2$,重症感染者からの平均離脱日$\gamma_1, \gamma_2$の5つの範囲をどのように合理的に推定するかがポイントだ。

東京大学の黒田玲子産業医が個人的な見解としてまとめたメモによれば,新型コロナウイルス感染症の潜伏期は1〜12.5日(多くは5〜6日)で,感染力は1人→2〜3人,予後はほぼ治癒だが,ICU入院が5%弱で致死率が0.7%とある。したがって,軽症感染者の平均離脱日を7日とするのはまあまあだ。また,重症感染者への移行率は5%とした。黒田メモの分母は感染者だが,我々のモデルの感染者には発症していないものも含む(5%より小さくなる)。その一方でICUまで至らない重症感染者も考えられる(5%より大きくなる)ので,とりあえず5%を採用する。そこで,$\alpha_1=7/0.95, \alpha_2=7/0.05$とする。また,重症感染者についても同じ7日を仮定し,重症感染者からの死亡率を5%とした。つまり,$\gamma_1=7/0.95, \gamma_2=7/0.05$である。その結果,このモデルの感染者致死率は0.25%となるが,ここでの軽症感染者には発症していないものを含めているので,上記の致死率0.7%とは矛盾しない。こうして4つのパラメタは合理的な範囲で収められる。

最も重要な不確定因子は感染率$\beta$である。これは,ウイルスとホストの生物学的な特性でほぼ決まるが,同時に,ホストである人間集団の社会構造(人口密度,経済活動,生活習慣,文化的要因)にも強く影響されるので,想定する集団によって大きく変わりうる。一方で,感染力(基本再生産数 Ro)は2.2と報告されているため,軽症感染者の平均離脱日数7日で割れば,$\beta=0.3$あたりがこの値の想定範囲となる。

とりあえず,前回のモデルをダイヤモンドプリンセスに当てはめて計算してみた。初期値として5%が感染したところから初めた(2/28/2020日経朝刊の対談より)。$\beta=0.3$のときに3700人あたり4人の死亡数(30日目)が再現できる。このときの累積重症感染者は3700人に換算して590人であり,報告されている700人とほぼ対応している。

次に,このパラメタセットで中国の湖北省の状況を説明できるかどうかを確認したい。モデルの軽症感染者には感染力を持つ非発症者を含んでいるため,報告されている感染者数とは直接比較できない。一方,軽症感染者数の時間構造と重症感染者数の時間構造は1週間ほどのタイムラグがあるがほぼ同形である。また,死亡者数についてもあいまいさが少ない。そこで,我々は,(1)モデルの重症感染者数(1万人当り)の感染者数飽和時期と(2) 現時点の死亡数(1万人当り)の2要素を湖北省のデータと比較する。2019年12月8日に最初の報告があってから,ほぼ3ヶ月たった現時点で湖北省の感染者数は飽和しそうである。また,湖北省の死亡数は約2700人だ(湖北省総人口は5900万人で人口密度は日本と同程度。また,死亡数の8割が集中する武漢は人口が1100万人で人口密度は愛知県なみ)。湖北省の感染者数飽和時の1万人当りの死亡数は0.5人のオーダーと推定される(特異的な武漢を除く湖北省では0.1人)。

図1 β=0.3(左の山/丘)とβ=0.2(右の山/丘)の重症感染者数(u4)と死亡数(u4)

図1のように,上記のパラメタで3ヶ月後(90日目)に感染者数飽和を与える$\beta$は0.30前後だが,このときの死亡数は20人となり1桁以上違う。一方,$\beta=0.20$として,3ヶ月後の死亡数を0.5人あたりに近づけると感染者数飽和時期(右の山の累積値の飽和)が7ヶ月後になり,このモデルでは湖北省データをうまく説明できない。その原因は,中国の強力な対策によって感染率$\beta$を制御できたことにあるのではないかと考え,$\beta$が時間$t$の関数として減少する図2のSIIDR2モデルを導入する。パラメタ数をなるべく減らしたいので,ここでは,$\beta(t)=\beta \exp(-t / \lambda)$という1パラメタの指数関数を導入する。$\lambda$は感染対策時間因子であり1〜数ヶ月のオーダーだ。短期間の変化は1次関数で近似される。

図2 感染率がβ(t)として時間に依存するSIIDR2モデル

図3のように,$\beta=0.30, \lambda=65$で,湖北省データと矛盾しない結果が得られる。これは感染初期に3ヶ月で感染率を1/4まで減らしたことに対応し,実際中国は武漢封鎖などの強力な措置によってこれを達成したのかもしれない。このときの飽和感染者数は70人(1万人当り)であり,武漢に換算すると8万人となる(非発症者を含む)。なお,この感染対策時間因子が$\lambda=100$にとどまれば,重症感染者数の飽和数は数倍に跳ね上がる。

図3 小さな山/丘(λ=65)が湖北省データに対応,大きな山/丘はλ=100の場合

この湖北省で得られたパラメタをこのまま日本に当てはめると,30日目の現在の重症感染者数は0.65人/1万人,0.05人/1万人である。つまり現時点における全国の重症感染者数はu3=6500人,死亡数はu4=500人に達することになる。しかし,たいへん残念なことに日本には正確なデータがない。通常の肺炎の死亡者は,年間10万人(日平均300人)なので,埋もれて観測されていない可能性も排除できないがそれはないと思いたい。例えば,$\beta=0.20, \lambda=100$とすると(武漢を除く湖北省に近いケース),30日目の現時点においてそれぞれu3=1000人とu4=100人となり(観測されていないものがあるという考え),よりマイルドな結果を与える。この場合,3〜4ヶ月後に飽和する重症感染者数は全国で7〜8万人,最終死亡数は500人のオーダーとなる(パラメタ次第で,結果を象の鼻を動かすように変えられるのがいたい・・・orz)。

P. S. 下記の参考文献[6][7][8]のように,中国からはよりまともな遅延ダイナミカル・シミュレーションの結果が報告されている。日本では誰か計算していないのだろうか・・・

[1]緊急寄稿新型コロナウィルス(COVID-19)感染症(川名明彦・三笠桂一・泉川公一)
[2]2019-nCoVについてのメモとリンク(中澤港)
[3]人口と感染症の数理(稲葉寿)
[4]数理モデルによる感染症流行制御の検証(大森亮介)
[5]新興感染症の国際的伝播を予測する数理モデル(西浦博・木下諒)
[6]CoVID-19 in Japan: What could happen in the future?(medRxivから)
[7]The reproductive number R0 of COVID-19 based on estimate of a statistical time delay dynamical system(medRxivから)
[8]A Time Delay Dynamical Model for Outbreak of 2019-nCoV and the Parameter Identification(arxivから)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using DifferentialEquations
using ParameterizedFunctions
using Plots; gr()

sky = @ode_def SIIDR2_model begin
  du0 = 1 # u0:time
  du1 = -β*exp(-u0/λ)*u1*u2/n # u1:Noimmunity(Susceptible)
  du2 = β*exp(-u0/λ)*u1*u2/n -u2/α1 -u2/α2 # u2:Mild(Infected-a)
  du3 = u2/α2 -u3/γ1 -u3/γ2 # u3:Serious(Infected-b)
  du4 = u3/γ2 # u4:Dead
  du5 = u2/α1 +u3/γ1 # u5:Recovered
  du6 = u3 # u6:Accumulated Infection
end n α1 α2 β γ1 γ2 λ

n=10000.0 #total number of population
α1=7.0/0.95 #latent to recovery (days/%)
α2=7.0/0.05 #latent to onset (days/%)
β=0.3 #infection rate
γ1=7.0/0.95 #onset to recovery (days/%)
γ2=7.0/0.05 #onset to death (days/%)
λ=65 #pandemic supression time (days)

function epidm(n,α1,α2,β,γ1,γ2,λ)
u0 = [0.0,9999.0,1.0,0.0,0.0,0.0,0.0] #initial values
p = (n,α1,α2,β,γ1,γ2,λ) #parameters
tspan = (0.0,30.0) #time span in days
prob = ODEProblem(sky,u0,tspan,p)
sol = solve(prob)
return sol
end

β=0.20
λ=100
@time so=epidm(n,α1,α2,β,γ1,γ2,λ)
plot(so,vars=(0,4))
plot!(so,vars=(0,5))
#plot!(so,vars=(0,7))
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

感染症の数理シミュレーション(4)に続く