更新: 2021/02/25
2020/09/12
2020/08/16
2020/08/01


新型コロナウィルス対策プログラム

目次
  1. 感染者数の観測値から再生産数の推移を確認するプログラム ( RView )
  2. 感染症の伝播をパソコン上でシミュレーションするプログラム (その2 SiR)
  3. 感染症の伝播をパソコン上でシミュレーションするプログラム (その1 epidemic)


感染者数の観測値から再生産数の推移を確認するプログラム ( RView )

動作条件

Windows Xp 〜 Windows 10

概要

任意の感染症の感染者数データをもとに、 新規感染者数を短期間ごとの指数関数で近似して、 その増加率の推移を求める。
これを元に、いくつかの二次感染発症間隔分布に対して再生産数(一人の感染者が生み出す二次感染者数)を求め、 その推移をグラフ表示する。

計算方法

(1) ファイル(In*.dat)またはキーボードから日ごとの累積感染者数を与える。
(2) 日ごとの新規感染者数を前後所定期間について指数関数 $$ y = A e^{r t} $$ で最小 2 乗近似し、 増加率 $r$ の時間推移を求める。
関数近似に用いる日数、および週単位平滑化処理の有無を選択できる。
(3) 二次感染の発症間隔($t$)の分布を表す確率密度関数を $g(t)$ とすると、 感染の指数増加率 $r$ と実効再生産数 $R$ の間には次式の関係が成立する。 $$ \frac{1}{R} = \int_0^\infty e^{-rt} g(t) dt $$ ワイブル分布、ガンマ分布、対数正規分布、指数分布(SIR モデル相当)、SEIR モデル相当分布、 の 5 種類のいずれかを選択し、平均値と標準偏差を指定して、$R$ の時間推移を求める。 これをもとに、新規感染者数と共に $r$ と $R$ の時間推移をグラフィック表示する。
また必要に応じてファイルへ出力する。

使用例

2020 年 2 月 15 日から 7 月 23 日までの 160 日間について、 東京の指数増加率と再生産数の推移を求めた結果を示す。


感染症の伝播をパソコン上でシミュレーションするプログラム (その2 SiR)

動作条件

Windows Xp 〜 Windows 10

概要

任意集団内の感染症伝播について、二次感染の発症間隔分布を考慮したモデル (以降 SiR モデルと略称)を用いてシミュレーションする。
モデルの諸パラメータは COVID-19 を念頭にデフォルト値を与えているが、 初期値その他の条件も含めて任意に変更できる。
感染制御の人為的介入(社会的距離措置)として、
(1) 5 段階のワンタイム介入
(2) 感染者数閾値を基準に ON/OFF する断続的介入
の 2 種類の介入を行うことができる。 得られた 感受性者数(S),感染者数(I)、回復(隔離)者数(R) および日々新規感染者数(B) の時間推移をグラフィック表示する。 ファイル出力も可能。

計算式と計算方法

人口 $N$ の集団を 感受性者($S$)、感染者($I$)、回復者($R$) に分け、 このうち $I(t)$ の区画内で、 を感染後の時間(日) $a$ に応じた感染者分布関数 $i(t,a)$ を考える。 つまり、感染後時間 $a \sim a + \Delta a$ に含まれる人数が $\Delta I(t) = i(t,a) \Delta a$ となるような 関数 $i(t,a)$ を定義する。
このとき、 感染時間 $a$ の一人の感染者が引き起こす二次感染の数を $\beta_0 f_\beta(a) \times S(t)$ と表し、 この感染者が単位時間に発見されて隔離される確率を $\gamma(a)$ とすると、 この感染症が伝播する現象は次式のように表すことができる。 \begin{eqnarray} && \frac{dS(t)}{dt} = - \beta_0 S(t) p(t) \hspace{15mm} \tag{1} \\ && i(t,0) = \beta_0 S(t) p(t) \hspace{15mm} \tag{2} \\ && \frac{\partial ~i(t,a)}{\partial t} + \frac{\partial ~i(t,a)}{\partial a} = - \gamma(a) ~i(t,a) \tag{3} \\ && \frac{dR(t)}{dt} = q(a) \tag{4} \end{eqnarray} ただし、 \begin{eqnarray} p(t) &=& \int_0^\infty f_\beta(a) ~i(t,a) da \tag{5} \\ q(t) &=& \int_0^\infty \gamma(a) ~i(t,a) da \tag{6} \end{eqnarray} である。 式 (2) は式 (3) の境界条件 ($a=0$) であり、 未知関数 $S(t), i(t,a), R(t)$ に適当な初期($t=0$)条件が与えられれば、 解が確定する。 $f_\beta(a)$ が正規化されているとすれば、 $\beta_0 = (基本再生産数)/N$ である。

離散化したうえで式 (1) を時間中心差分で、式 (3) を特性曲線法で反復して解いて、 式 (3)、(6) で隔離される人数を式 (4)で $R(t)$ に積分加算すれば、 数値解が得られる。 詳細は 補足資料 を参照願いたい。

人為的介入措置の導入

下記のプログラム epidemic(v.3b) に同じ。

発症間隔分布 $f_\beta(a)$

ワイブル分布、ガンマ分布、対数正規分布、指数分布(SIR 相当)、SEIR 相当分布 の 5 種類から選択可能で、平均値、標準偏差を指定する。

使用例

2020 年 2 月 15 日から 7 月 23 日までの 160 日間について、 東京都を対象としたシミュレーション結果を示す。


各曲線は人口 10 万人当たりの、感受性者数(青)、感染者数(赤)、 回復者数(緑)、日々の新規感染者数(黒) を示す。


感染症の伝播をパソコン上でシミュレーションするプログラム (その1 epidemic)

動作条件

Windows Xp 〜 Windows 10

概要

任意集団内の感染症伝播について、SEIR モデルを用いてシミュレーションする。
モデルの諸パラメータは COVID-19 を念頭にデフォルト値を与えているが、 初期値その他の条件も含めて任意に変更できる。
感染制御の人為的介入(社会的距離措置)として、
(1) 3 段階(v.3b では 5 段階)までのワンタイム介入
(2) 感染者数閾値を基準に ON/OFF する断続的介入
の 2 種類の介入を行うことができる。 結果は SEIR 各区分内人数の時間推移をグラフィック表示する。 ファイル出力も可能。

計算式と計算方法

人口 $N$ の集団である感染症が伝播する現象は、 近似的に下式の SEIR モデルで表すことができる。 \begin{eqnarray} \frac{dS}{dt} &=& -\beta S I \hspace{15mm} (S: 感受性者数) \tag{1} \\ \frac{dE}{dt} &=& \beta S I - \epsilon E \hspace{10mm} (E: 潜伏者数) \tag{2} \\ \frac{dI}{dt} &=& \epsilon E - \gamma I \hspace{13mm} (I: 感染性者数) \tag{3} \\ \frac{dR}{dt} &=& \gamma I \hspace{23mm} (R: 回復者数) \tag{4} \end{eqnarray} $S$ はその感染症の免疫を持たない人の数、 $E$ は感染後、他への感染性をまだ持たない人の数、 $I$ は、他への感染性を持った人の数、 $R$ は感染後回復して免疫を持っている人の数であり、 集団構成員は、この $S, E, I, R$ の四つの区画を順に \begin{equation} S \xrightarrow{(\beta I)} E \xrightarrow{(\epsilon)} I \xrightarrow{(\gamma)} R \end{equation} のように遷移し、 ある個人がある区画から次の区画へ単位時間に遷移する確率が、 単純に $\beta I$ 、$\epsilon$ 、$\gamma$ に比例すると仮定する。 $R$ が免疫を失って $S$ へ戻るプロセスや、死去や誕生は考えない。
区画 $E$、$I$ に属する人がその区画内に留まる平均継続期間が既知であれば、 \begin{eqnarray} \epsilon &=& \frac{1}{T_E} = \frac{1}{平均潜伏期間} \tag{5} \\ \gamma &=& \frac{1}{T_I} = \frac{1}{平均感染期間} \tag{6} \end{eqnarray} のように与えられる。
基本再生産数 $R_0$ (感受性者 $S$ のみで構成されている集団内で、一人の感染者が他へ感染させる平均人数) が既知であれば、$\beta$ は、 \begin{equation} \label{eq_09} \beta = \frac{\gamma R_0}{N} \tag{7} \end{equation} として与えられるが、$R_0$ 、$\beta$ 共に、 その感染症の伝染しやすさと社会的な交流の多さとの双方に依存する。
式 (5) 〜 (7) の係数を用いて連立微分方程式 (1) 〜 (4) をルンゲ・クッタ法等で解けば、 感染者数等の時間推移が求まる。

人為的介入措置の導入

感染拡大対策として「社会的距離」措置などの人為的な介入を行うことは、 上記の $\beta$ の値を減少させることに等しい。 その社会的接触低減率を $p$ として、 $\beta$ の代わりに \begin{equation} \beta \longleftarrow \beta_1 = (1 - p) \beta \tag{8} \end{equation} とすればよい。 このとき、感受性者数 $S$ の集団で、一人の感染者から新たに感染される平均人数は次式となる。 \begin{equation} 実効再生産数 : R_e = \frac{\beta_1 S}{\gamma} = (1 - p) \frac{S}{N} R_0 \tag{9} \end{equation} 感染者を隔離する措置は社会的接触低減措置と同等であり、 上記の $p$ として「感染者 $I$ のうち隔離できた人の比率」を用いればよい。
プログラムでは人為的介入なしに加えて、次の2種類の介入を導入することができる。
  1. (ワンタイム介入) 所定の期間だけ所定の強さの介入を数回(3 または 5 回まで)行う。
  2. (断続的介入) 感染者数 $I$ があるしきい値を超えた時から 別のあるしきい値に下降する時まで、所定の強さの介入を繰り返し行う。

使用例

接触低減率 80 % の断続的介入として、 感染者数 $I$ が10万人あたり 700 人を超えた時点で介入し、 100 人まで低下して介入を止める措置を反復した場合の結果を、下図に示す。


PDFファイルを見るには,Acrobat Reader が必要です。

ダウンロードはこちらへ


上へ戻る|