2021年02月26日

◆新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成



久々のブログ更新です~

ブログタイトルは、「子育て応援」「農家の日記」と掲げていますが、それとはあんまり関係ない話?!が何回か続くかもです。

まあ、「子育て中の農家」にとっても、目が離せない問題ということで、このブログに こんな記事が紛れ込んでしまう点も 大目に見て頂ければヒ・ミ・ツ
  

何に関する記事かと言うと・・・
新型コロナの重症者数の推移をDIYで簡易にシミュレーションしてみた結果について、です。
このところ空いた時間に 結構時間かけて調べていたところで、自分としては だいぶ頭の整理が進んだところです。


医療現場や感染症専門の方から見らた、取るに足る内容かも!?ですが、せっかく調べた結果だし、同様の疑問を抱いている方もいるかもしれないので、ブログに掲載してみることにしました。


読んでいただく際の注意事項としまして、
この記事を書いている私は、医療分野の専門的知識はゼロ、ネットの公開資料以外に参考にした文献なども特にありません。
そういう人物が書いた記事だということを了解の上でお読みください。



今回は、作成したシミュレーションモデルの説明をした後、シミュレーションモデルの条件設定(「1日の感染者数」など)を少しずつ変えながら、重症病症使用数の推移を計算し、シミュレーションを使うメリットなども考えてみたいと思います。
コロナに関する公表資料を拾い集めながら素人がまとめた「個人的な自由研究」ノートを眺める気分で読んでもらえたら♪



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1 超簡易シミュレーションで大まかなイメージをつかむ

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



いきなり現実にピッタリのシミュレーションを行うのはハードルが高すぎるので、
超簡易のシミュレーション用モデルを作って 大まかなイメージをつかもうと思います。

モデルに名前をつけておいた方が文章を書く上で何かと便利なので、最初のバージョンのモデルを「仮想都市モデルA-a15」と呼ぶことにします。「a=0.15という条件が常に満たされている仮想都市A-a15についてのモデル」、という意味です。

仮想都市という言葉をわざわざ使う理由は、このモデルの計算過程で現れる数値はどれも、現実の状況調査を踏まえた公表値とは異なるものだという点を強調するためです。現実の世界には存在しない仮想都市で、モデルの前提条件が完全に満たされている仮想都市で、新型コロナが流行したらどうなるかをシミュレーションしているという点を常に頭の片隅に置きながら、読み進めてくださいね!




「仮想都市モデルA-a15」の説明



こむずかしい説明は嫌い、数式とかもあまり考えたくない、という方のために モデルの中身を超簡略化して説明すると・・・・・
仮想都市モデルA-a15では、「1日の感染者数」のうち、0.15の割合(15%)の人は重症化しやすいと見なされますが、実際に重症化するのは、その15%のうちの常に0.10の割合(10%)の感染者です(例外なし!)、そういう仮想都市A-a15があるものと想像してください。また、重症化する人は例外なく、自身が「1日の感染者数」としてカウントされた日の1週間後(7日後)に重症者となり、その日の「新規の重症者数」としてカウントされます。ベッド(重症病床)の使用は「新規の重症者数」とカウントされた当日からすぐに開始し、14日間にわたってベッド(重症病床)を使用します(これも例外なし!)、そういう規則正しい流れが全ての人々に関して完璧に成立しているのが仮想都市A-a15であるとご理解ください。





上の説明をもうちょっと詳細に説明すると・・・・・・

次の(ア)~(オ)の条件が完全に満たされている仮想都市A-a15があるものと想定します。

「1日の感染者数」
(ア)仮想都市A-a15のコロナ感染者は、もれなく「1日の感染者数」としてデータが公表されているものとする。

「重症化しやすい感染者数」
(イ-1)「重症化しやすい感染者数」は、「1日の感染者数」のうち常に0.15の割合(15%)であるとする。
(イ-2)それ以外の残りの0.85(85%)の重症化しにくい感染者は、決して重症化しないものとする。
(イ-3 )計算式は、「重症化しやすい感染者数」=「1日の感染者数」×0.15 となる。

「新規の重症者数」
(ウ-1)「新規の重症者数」は、「重症化しやすい感染者数」のうち常に0.10の割合(10%)であるとする。
(ウ-2)それ以外の残りの0.90の割合(90%)の重症化しやすい感染者は、決して重症化しないものとする。
(ウ-3)「新規の重症者数」としてカウントされるタイミングは、「1日の感染者数」としてカウントされてから、ちょうど7日後であるとする。
(ウ-4)計算式は、「新規の重症者数」=7日前の「重症化しやすい感染者数」×0.10 =7日前の「1日の感染者数」×0.15×0.10 となる。

「重症病床使用数」
(エ-1)「新規の重症者数」にカウントされた人は、重症者とカウントされた当日から重症者となり、重症病床を使用開始するとする。そして、14日間重症病床を使用し、15日目に重症者ではなくなり、重症病床使用を終了するとする。
(エ-2)重症病床は、重症者がベッドを空けた翌日には別の重症者の受け入れが可能な状態になるものとする。
(エ-2)上記の条件により、「仮想都市A-a15」においては、重症者は必ず重症病床を使用していることになる。よって、ある時点における「重症病床使用数」は「重症者の数」と一致する。
  (※「新規の重症者数」と「重症者の数」は異なります。言葉の使い分けに注意!
   
(オ)仮想都市A-a15では、上記以外には、感染者や重症者は、全く発生しないものとする。





エクセルの計算に慣れた方なら、割と簡単にシミュレーションモデルを作れるのではないかと思います。ご自身でDIYの精神でシミュレーションモデルを作成し、aやbの数値を変更しつつグラフをいくつか書き比べると、感染者数と重症者数の関係についての理解が深まるのでは、と思います。



〈計算例1〉仮想都市モデルA-a15を使って重症病床使用数を計算してみる

《状況設定》
仮想都市A-a15「1日の感染者数」が0人から急に100人という状態になり、そのまま「1日の感染者数」100人がずっと継続した場合の重症病床使用数の推移をシミュレーションすると・・・・

エクセルによる計算の過程・結果をまとめると 表1のようになります。自身で計算もしてみたい方は、表1や表2をじっと眺めて、各列の計算式を考えてみてください。文章ではなかなか説明しづらいので・・・・

新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成
(表をクリックすると拡大されます)


この表1のデータのうち、列D、列F、列Gの3つのデータをグラフで示すと次の図のようになります。

新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成



《シミュレーション結果の説明》
単純なグラフですが、この仮想都市A-a15のような条件の都市で、もし「1日の感染者数」が100人で高止まりとなった状態が続くと、「重症病床使用数」はどんな推移をたどるのかなどが容易にイメージできるかと思います。
1月1日以降、毎日15人の「重症化しやすい感染者」が発生していますが、重症化するのは7日後としているので、「新規の重症者」は1月8日になって初めて1.5人が計上されています。
「重症病床使用数」は1月7日まではゼロが続き、「新規の重症者数」が1.5人となる1月8日以降は毎日1.5人ずつ増え続け、1月21日にピーク(21人)に達し、1月22日以降は、最初の頃の「新規の重症者」がベッド使用を終了するマイナス分と、新たに発生し続けている「新規の重症者」がベッド使用を開始するプラス分とがちょうど釣り合う状態になるので、21人のまま高止まりになります。


《現実とシミュレーションの違い》
一方、現実の都市では、「1日の感染者数」としてカウントされた方が、重症者として計上されるタイミングが1週間であるとは限りませんし、重症病床使用開始のタイミングも、ベッドを使用し続ける日数も、個々の重症者の症状や、受け入れ先病院の事情等で変わってくるようです。「新規の重症者数」の計算値も、このモデルのように単純に、〈7日前の「1日の感染者数」×a×b〉といった簡単すぎる計算式で表わせるものではなく、様々な条件(たとえば、感染者数に占める高齢者の割合など)にも左右されているだろうと思われます。


《シミュレーションモデルを作成するメリット》
そういうことを承知の上で、あえてモデルを使って計算してみることにはメリットもあると思います。
この例のようにシミュレーションでは、知りたい状況を自由に設定することができます。現実の都市では「1日の感染者数」が100人ピッタリで1ヶ月推移する、なんてことは起こったことがないけど、こういう極端かつ単純な状況をひとつずつ確認してみることで、感染者数と重症者数の関係が鮮明にイメージできるようになると思います。
また、現実に公表されている過去~現在のデータと、シミュレーションの計算結果とがある程度一致するようなシミュレーションモデルの作成に予め取り組んでおくと、将来的にこういう状況が起き場合にベッド数はいくつ必要になるか、などの想定をすることにも役立つでしょう。

そんなわけで、この後もシミュレーションの条件設定を少しずつ変更しながら、グラフをいろいろ作成してイメージを膨らませていきます。

計算例2仮想都市モデルA-a15のaの値を変更したモデルを使って計算してみる

《状況設定》
仮想都市A-a15aの値だけを変更した場合 重症病床使用数のシミュレーション結果はどう変わるか・・・・

仮想都市A-a15では、「1日の感染者数」のうち、常に0.15の割合(15%)が「重症化しやすい感染者数」として計上していましたが、このaの値に変更を加えると、シミュレーション結果はどうなるか、グラフを書いて確認しておきます。
a=0.20に変更したモデルを「仮想都市モデルA-a20」、
a=0.25に変更したモデルを「仮想都市モデルA-a25」、
a=0.30に変更したモデルを「仮想都市モデルA-a30」と呼ぶことにして、
それぞれのモデルを使って先ほどと同様に、「1日の感染者数」が100人の状態が継続した場合の重症病床使用数の推移を計算して比較した結果が下の表とグラフになります。


新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成
(表をクリックすると拡大されます)


新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成


計算式を見たら当然と言えば当然なのですが、a=0.15という元々の値を、a=0.30という2倍の値に変更すると、計算される「重症病床使用数」も2倍になることが理解できます。



〈計算例3〉仮想都市モデルA-a15を使ってもう少し複雑な感染状況について計算をしてみます。

《状況設定》
「1日の感染者数」が0人、10人、20人、・・・130人、150人、140人、・・・・20人、10人、0人という推移をした場合 の重症病床使用数を、「仮想都市モデルA-a15」を使ってシミュレーションすると・・・・


エクセルによる計算の過程・結果をまとめると 次の表のようになります。「1日の感染者数」の数値を変更したのみで、計算式などはすべて計算例1の時と全く同じですが、計算例1の表と比較すると、かなり複雑になりました。
なお、計算式1のときは1ヶ月分の計算結果を示しましたが、今回は約2ヶ月分を示しています。


新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成
(表をクリックすると拡大されます)
この記事で使用しているモデルの具体的な計算手順に興味のある方は、こちらの表を拡大してご覧下さい

《表の計算式の補足説明》は、以下を拡大してご覧下さい。
新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成




新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成


《シミュレーション結果の説明》
計算例3も単純な形のグラフですが、この仮想都市A-a15のような条件の都市で、もし「1日の感染者数」が山型に推移すると、「重症病床使用数」はどんな推移をたどるのかなどが容易にイメージできるかと思います。
2020/1/2~1/30までの約1ヶ月間、感染者が発生している設定ですが、重症化するのは7日後としているので、「新規の重症者数」は2020/1/9に初めて計上されています。また、「新規の重症者数」がピークとなるのは、このモデルだと「1日の感染者数」がピークとなる日2020/1/16からちょうど7日後の2020/1/23となります。

「重症病床使用数」の方は、2020/1/8までは0が続き、2020/1/9以降増え続け、2020/1/29~2020/1/30にピークに達し、それ以降は、減少に転じます。0になるのは2020/2/20以降なので、1日の感染者が0になっても重症者はかなり後まで0にはなりません。
報道でも「感染者数が減ったとは言え、まだ重症者数はあまり減っていないので油断はできない」などが言われていますが、こういう単純設定のシミュレーションモデルでも、そうした傾向は表現されています。


〈計算例4〉 同様に、仮想都市モデルA-a15、A-a20、A-a25、A-a30、を使うとどうなるでしょう?

《状況設定》
「1日の感染者数」が0人、10人、20人、・・・130人、150人、140人、・・・・20人、10人、0人という推移をした場合 の仮想都市A-a15、A-a20、A-a25、A-a30 のそれぞれの重症病床使用数をシミュレーションすると・・・・



新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成
(表をクリックすると拡大されます)


新型コロナ調べ(第1回)重症者数の推移を簡易的にシミュレーションするモデルの作成


《シミュレーション結果の説明》
計算例4は、仮想都市A-a15および、仮想都市A-a20、A-a25、A-a30を比較したもので、aの値が倍になれば、計算される「重症病床使用数」の値も倍になるという様子を改めて確認できました。



《第1回目の感想》
自分で計算するだけなら グラフを次々に作るだけでテンポよく作業進むのですが、計算過程や計算結果を 他の人にも分かるように説明しようとか、なるべく誤解を与えないように気をつけながら書こうとすると、こんなに時間がかかるのですね・・・。

一気に終わりまで書けるかと思ったら、まだまだ1合目くらいかも??

まだまだ調べた結果の計算は続きますが、今回はひとまずここまでです。

やりかけてしまったことなので、自分なりに一段落と思えるところまで記事の続きを掲載できるようにがんばります。

同じカテゴリー(その他)の記事画像
新型コロナ調べ(第4回) 実際の感染者数(年代別)データを用いて重症病床使用数をシミュレーションしてみると・・・?
新型コロナ調べ(第3回) 感染者数が再拡大する場合の重症病床使用数の計算例
新型コロナ調べ(第2回) 重症者が重症病床を使用する日数が長期化した場合の計算例
『声の力』 (オススメの本)
美方高原 雪景色
やられたぁ!
同じカテゴリー(その他)の記事
 新型コロナワクチン、反対の声も (2021-12-13 15:30)
 新型コロナ調べ(第4回) 実際の感染者数(年代別)データを用いて重症病床使用数をシミュレーションしてみると・・・? (2021-04-01 21:10)
 新型コロナ調べ(第3回) 感染者数が再拡大する場合の重症病床使用数の計算例 (2021-03-05 19:15)
 新型コロナ調べ(第2回) 重症者が重症病床を使用する日数が長期化した場合の計算例 (2021-03-02 20:41)
 近況報告 (2014-05-23 23:15)
 はじまりの春 (2014-04-01 22:54)

Posted by やまやま at 23:10│Comments(0)その他
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。