いろいろなことを考察する

(インストール不要で)SIR モデルを計算できるスクリプト


私がネット上でしていることの まとめ は、こちらに。
https://sarkov28.hatenablog.com/entry/2022/03/29/160915
スプレッドシートによる計算については、こちらに。
https://sarkov28.hatenablog.com/entry/2023/02/27/090000



  • gmail のアカウントがあれば、
  • 特になにもインストールなどをしなくても、
  • SIR モデルを計算して、
  • グラフを描けるスクリプト

を公開しています。
ブラウザ上で実行されます。
実行するのは簡単で、(たぶん)小学生でも楽しんで(?)頂けると思います。

SIR の微分方程式を、python数値計算モジュールで計算しています。
この他に、SIR の微分方程式をスプレッドシート上で計算するもの も公開しています。

私は、以前から西浦氏のグラフの問題を指摘しています。
特に、こちら https://twitter.com/sarkov28/status/1350101975753318405 の連ツイに書いた、私が個人的に「量産型」と名付けている一群のグラフの誤りは特に大きな問題です。
今後、この「量産型」のグラフを、それぞれ google colab で再現していこうと思っています。

公開している google colab のスクリプトは以下です。
今のところ、以下は全て西浦氏が公開したグラフ(など)に関連するものです。
元のグラフが公開された日付の順に並べてあります。


目次


(使い方)スクリプトのパラメータなどの変更方法

スクリプトのパラメータなどの変更方法です。

gmail のアカウントを持っている人は、(google によって自動的に)自分の google drive を持っています。
google colab スクリプトを自分の google drive にコピーすれば(=やり方は こちら)、パラメータなどを改変して保存することもできます。
スクリプトのパラメータを変えて実行することは、どなたにでもできると思います。
例えば、基本再生産数 R0 を設定している箇所の数値を変更できます。


[2020-03-02 a] 「2020-03-02 専門家会議資料」で西浦氏が使ったパラメータの推計

「2020-03-02 専門家会議資料」で西浦氏が使ったパラメータを推計します。

この項目の内容にご関心がある方はさほど多くないかも知れません。
より一般的な事項は、下の 2020-04-15 a などをご参照下さい。

この項目のスクリプトは、グラフを描画しません。
「SIR モデルの計算を、パラメータを変えながら何度も繰り返し(=100回程度)、計算結果を比較し、予め指定しておいた条件に適合する計算結果になるパラメータを探索する」という処理(=Nelder-Mead法、アメーバ法)を行っています。


[2020-04-11 a] 日経の 2020-04-11 記事のグラフを再現する

2020-04-11 の日経記事
「「接触7割減」では収束まで長期化 北大教授が警鐘」
https://www.nikkei.com/article/DGXMZO57961860R10C20A4CZ8000
のグラフを再現します。

これは、西浦氏が twitter で「接触8割減」が必要な理由として示した [2020-04-15 f] と同じグラフです。
2020-04-11 の日経記事「「接触7割減」では収束まで長期化 北大教授が警鐘」のグラフ


[2020-04-15 a] 西浦氏の「42万死亡推計」を再現する

西浦氏の「42万死亡推計」を再現します。

本項の情報でも、この計算を再現できますが、少し下の [2020-04-15 e]Newsweek 記事のグラフを再現します。なお説明の連ツイは、こちらにしか書いてないこともあります。
西浦氏が Newsweek 2020-06-09 号の記事で示したグラフ


[2020-04-15 b] 西浦氏の「42万死亡推計」の情報開示のパラメータが不適切であることを示す

西浦氏が「42万死亡推計」に関して情報開示したパラメータが不適切であることを示します。


[2020-04-15 c] 西浦氏の「42万死亡推計」のパラメータのうち、平均世代時間 T を変更した場合の計算

西浦氏の「42万死亡推計」のパラメータのうち、平均世代時間 T を変更した場合の計算を示します。


[2020-04-15 d] 西浦氏の「42万死亡推計」のパラメータのうち、基本再生産数 R0 を変更した場合の計算

西浦氏の「42万死亡推計」のパラメータのうち、基本再生産数 R0 を変更した場合の計算を示します。


[2020-04-15 e] 西浦氏の「42万死亡推計」の再現と、関連する Newsweek グラフの再現

西浦氏の「42万死亡推計」を再現し、関連する Newsweek 2020-06-09 号の記事のグラフを再現します。
西浦氏が Newsweek 2020-06-09 号の記事で示したグラフ

同じ計算を、少し上の [2020-04-15 a] でも行っています。Newsweek 記事のグラフは再現しませんが、説明の連ツイには、ここの連ツイに書かなかった事項もあります。


[2020-04-15 f] 西浦氏が twitter に「社会全体で8割の接触減が必要である理由」として示したグラフを再現する

西浦氏が、twitter https://twitter.com/ClusterJapan/status/1250639295674634240 に「社会全体で8割の接触減が必要である理由」として示したグラフを再現します。
西浦氏が、2020-04-15 に tiwtter に「社会全体で8割の接触減が必要である理由」として示したグラフ

このグラフは、2020-04-11 に日経記事が示したグラフと同じなので、「[2020-04-11 a] 日経の 2020-04-11 記事のグラフを再現する」の項目をご参照下さい。
このグラフは、新型コロナクラスター対策専門家 @ClusterJapan の twitter アカウントから投稿されたものです。


[2020-11-10 a] 日本内科学会雑誌 第109巻第11号 の西浦氏らの論文の全3グラフの再現と、3グラフの縦軸の誤りの指摘

西浦氏らの 日本内科学会雑誌 第109巻第11号 の論文の全3グラフの再現し、この3グラフが全て間違っていることを示します。


上に挙げたスクリプトに関連するグラフを加え、別のスクリプトとして公開しました。
- スクリプトgoogle colab, python)はこちら
https://colab.research.google.com/drive/1MznAf_DXaIsznXbALcx19CAff2gF38dC?usp=sharing - 説明の twitter 連ツイはこちら
(3)のグラフが西浦氏の論文のグラフであり、(3)のグラフについての補足がこのツイの下にあります。
https://twitter.com/sarkov28/status/1647235552587182082


[特定の日付けに関連しない事項 a] 「免疫や感染症対策が、最終的な感染者数に与える影響」に関する計算

ブログエントリ「免疫や感染症対策が、最終的な感染者数に与える影響」 https://sarkov28.hatenablog.com/entry/2023/04/11/180000 を書きました。

「免疫による実効再生産数の低下」と「感染症対策での実効再生産数の低下」の違いを検討しました。
この2つは、どちらも実効再生産数を低下させます。
この2つによって感染拡大時の実効再生産数が等しく低下した2つの状況を想定し、そこからの感染状況を計算すると、最終的な感染者数(final size 最終規模)は一般に一致しません。
このエントリでの計算やグラフ描画を行うスクリプトgoogle colab, pythonhttps://colab.research.google.com/drive/1XUk08QtkniHMoYI7z_YbfYC3MhDauDv6?usp=sharing を作成しました。


(使い方)開いている google colab スクリプトのコピーを、自分の google drive に作成する方法

開いている google colab スクリプトのコピーを、自分の google drive に作成する方法です。

  • google にログインしているとします。
    gmail のアカウントを持っていれば、ログインできます。)
  • 何らかの google colab のスクリプトを、何らかのブラウザ(Microsoft Edgegoogle Chrome など)で開いているとします。
  • 以下に [メニュー] と書きますが、画面には2つのメニューがあるかも知れません。
  • [ブラウザのメニュー] と [google colab のメニュー] です。([ブラウザのメニュー] は、設定などによっては表示されていない場合もあります。)
  • 2つのメニューはいずれも画面の上の方にあると思います。通常は、[ブラウザのメニュー] の方が上にあります。[google colab のメニュー] は、「ランタイム」という項目を含んでいる方です。
  • [google colab のメニュー] の [ファイル] の [ドライブにコピーを保存] を選ぶと、自分の google drive の、[Colab Notebooks] フォルダに、「今開いている google colab スクリプトのコピー」が作成されます。
  • 自分の google drive フォルダを開く方法については、こちら に少し書きました。

(使い方)自分の google drive を開く方法

自分の google drive を開く方法です。

  • google にログインしているとします。
    gmail のアカウントを持っていれば、ログインできます。)
  • 2023-02 の時点では、https://drive.google.com/drive/my-drive?ths=true を開くと、自分の google drive が開きます。
  • これで開かない場合は、すいませんが別途 google などで調べて頂いた方がいいと思います。
    (すぐに見つかると思いますが、ご不明であれば twitter の sarkov28 までお問い合わせください。)

修正履歴

大きく修正したら、ここに書いておきます。

  • 2022-04-01
    公開
  • 2023-02-27
    [2020-04-15 e] を追加しました。
    「SIR を計算するスプレッドシート」の件を加筆しました。この他、全体を修正しました。
  • 2023-04-20
    [2020-04-11 a] [2020-04-15 f] を追加しました。
    [2020-04-15 e] に加筆、[2020-11-10 a] に「別のスクリプト」の件を加筆しました。
  • 2023-04-21
    [特定の日付けに関連しない事項 a] を追加しました。