2020年3月24日火曜日

Visualizing the progress of virus infection (No.1)

Notice:On 2020-3-25, the following content was released as an Android app to the MIT App Inventor Gallery.
ai2.appinventor.mit.edu/?galleryId=4888454785269760
This article is written in Japanese. If you want to read in English, please use Google Translate, Microsoft Translator, and so on.
Click here for a description of the new version (on 2020-4-4).

【要旨】新型コロナウイルス感染症対策専門家会議の報告を理解するために、マルチエージェントを用いて、感染状況の可視化を試みました。

感染症流行の基礎知識を得る
 今回の新型コロナウィルスを含む感染症流行の詳細な予測数理モデルは、文献[1]等にあります。微分方程式を用いた難しい説明もありますが、「基本再生産数」「実効再生産数」など基礎知識は得られると思います。また、資料[3]には、「集団免疫」の考え方の解説や、感染状況のビジュアル化が示されており、非常に参考になりました。資料[4]には、現状のとらえ方と今後の警戒の引き締め等が分かりやすく書かれています。

日本国内の状況の理解
 上記から基礎知識を得たとはいえ、小生は全くの素人なので、以下の記述には誤解や間違いがあるかも知れません。それを前提で書かせていただきます。「新型コロナウイルス感染症対策専門家会議」の報告[2]とそれに関する優れた解説[3]を読んで、小生が理解したポイントは以下のとおりです。

(1)なんとか持ちこたえている。この感染症を一定の制御下に置くことができている。
(2)国内で感染が確認された人のうち約80%の人は、他の人に感染させていない。
(3)このウィルス実効再生産数は現在0.7程度に抑えられており、これまでの対策が一定の効果を発揮している。
(4)今後、どこかの地域を発端とした感染爆発の可能性もある。継続した警戒、対策が不可欠。

 図1に、上記項目(2)と項目(3)の状況をビジュアル化しています。ある集団に、感染者が3名が発生したとします。このうち、例えば感染者(A)は、近隣の3名に感染させ、そのうちの1名はさらに他の人へ感染を広げています。残りの2名はその後他人に感染させることはありませんでした。感染者(A)、(B)、(C)とも、最大でも数名の第三次感染者を出したところで拡大は停止しています。これは、発症に対して、隔離や治療が適切に行われた効果を反映しています。
 この図では、感染者のうちで他人へ感染させなかった人の割合は83%になります。また、実効再生産数は0.78であり、上記項目(2)、項目(3)の数値にほぼ合致しています。したがって、本図は、現在の実際の感染状況を理解するのに役立つのではないかと思います。


感染爆発する状況もビジュアライズ
 感染の本格的なシュミレータなど([5][6])も様々作成されています。ここでは、もっと単純に感染状況を可視化したいので、自作することにしました。それには、かって利用していたNetLogo(マルチエージェントモデリング開発環境)[7]を使います。ある大学の情報工学科のブログ記事[8]に、「ないものは作るしかない、ということで(似て非なるものはありますが)、作りました」という言葉があり、それに触発されて作りました。

 図1は、作成したプログラムを使ったものです。このプログラム(モデル)の仕組みは非常に単純であり、以下のような枠組みです。

(a)感染者の発したウィルスは、近隣(N,NE,E,SE,S,SW,W,NW)の人に一定の確率(Th1)で達する。
(b)ウイルスが到着した場合、その人は一定の確率(Th2)で感染する。
(c)感染した場合でも、一定の確率(Th3)でそれ以上他人に感染させることはない。
(d)感染までの期間、持続期間や移動による影響などは考慮していない。
 (ただし、改訂版アプリ-2020-4-4では、感染者の移動も考慮しました。)
(e)単位時間毎に、感染するかしないかは、単純にパラメータ(a),(b),(c)で決まる。

 この図1は、感染対策が行き届いている状況を反映するように、パラメータ(Th1, Th2, Th3)を設定して実行した結果です。つまり、上記で理解した項目(2)と項目(3)の数値に近づくようにパラメータ調整したものです。その結果が妥当であれば、次に、感染対策を怠った(あるいはかなり緩和させた)場合の感染爆発も、これらのパラメータ調整で表現できるのではないでしょうか。あまり確信はありませんが。

シミュレーションの実行例
 以上の検討にもとづき、2つのケースのシミュレーションを行いました。図2は、両方に共通の開始時点の様子です。人口834名の集団に6名の感染者が発生している状態から出発します。


 図3は、感染対策が功を奏している場合であり、上に示した図1は、この図の一部です。短いビデオも添付しました。


図4は、不運にも感染爆発してしまったケースです。資料[3]によれば、ドイツのメルケル首相は、「対策を取らなかった場合、ドイツ国民の60%〜70%が新型コロナウイルスに感染する可能性がある」と述べたとのことです。メルケル首相は物理学者でもあったので、その発言には根拠があるはずです。実際、基本的な計算式に当てはめると、基本再生産数3の場合(新型コロナウィルスがこれに該当)、初期に免疫を持った人がおらず、何も対策をとらない場合、感染者が集団免疫となり収束するまでに、全人口の67%が感染するとのことです。図4の結果は、感染爆発が収束するまでに、69%の人が感染することを示しおり、(偶然でしょうが)この数値に良く合致します!?


以上、極めて単純なシミュレーション(というよりも状況の可視化)ですが、ご参考になる点があれば幸いです。

参考資料
[1]西浦博、稲葉寿:感染症流行の予測:感染症数理モデルにおける定量的課題、数理統計第54巻第2号、pp. 461-480、統計数理研究所(2006)
[2]「新型コロナウイルス感染症対策の状況分析・提言」(2020/3/19)
新型コロナウイルス感染症対策専門家会議
https://www.mhlw.go.jp/content/10900000/000610566.pdf
[3]浦島充佳:日本で新型コロナが「感染爆発」しない理由(2020/03/19
https://forbesjapan.com/articles/detail/33158/1/1/1
[4]忽那賢志:新型コロナのオーバーシュート(感染者の爆発的増加)を起こさないために我々にできることは?
https://news.yahoo.co.jp/byline/kutsunasatoshi/20200322-00169120/
[5]Marco J. de Vries:Virus2
http://ccl.northwestern.edu/netlogo/models/community/Virus2
[6]Yang, C. and Wilensky, U: epiDEM Travel and Control
https://ccl.northwestern.edu/netlogo/models/epiDEMTravelandControl
[7]山本富士男:マルチエージェントシステム構築のためのNetLogoを学ぶ
https://sites.google.com/site/yamlabnetlogo/
[8]神奈川工科大学情報工学科ブログ記事「ただいま、仕込み中」
http://blog.cs.kanagawa-it.ac.jp/2020/03/blog-post_19.html


0 件のコメント:

コメントを投稿