モデル化とシミュレーションの題材として「感染症の広がり」の簡易的なシミュレータです。条件を変えてシミュレーションをすると結果が大きく変わることが体験できます。シミュレーションの活用や見方を考えるきっかけにしたいと思って作りました。
目次
使い方
生徒の端末(タブレットやPC)で開いて、プルダウンを選んでボタンを押すだけで動くシンプルな作りにしています。
- 画面の見かた:
- 左側(グラフ): 全人口200人の集団の中で、30日間にわたって「未感染者(青)」「感染者(赤)」「回復者(緑)」がどう変化するかを折れ線グラフで表示します。
- 右側(設定と結果サマリー): 3つのパラメータを選ぶプルダウンと、実行後にピーク人数や最終結果が出るカードがあります。
- 基本操作:
- ① 初期感染者数(1人・5人・10人)、② 感染率 β(感染しやすさ)、③ 回復率 γ(治りの早さ・隔離の早さ)の3つをプルダウンから選びます。
- 「シミュレーション実行」を押すと、0日目から30日目までのグラフがアニメーションで描かれます。
- グラフが描かれたあとに線をマウスでなぞったり指でタップしたりすると、その日のそれぞれの人数が表示されます。
- グラフをコピー: グラフ上部の「グラフをコピー」ボタンを押すと、白背景・凡例付きの高解像度PNG画像がクリップボードにコピーされます。スライド作成ソフトやワークシート、提出用レポートにそのまま「Ctrl + V(貼り付け)」できます。
- あえて選択肢を絞っています:
- 数値を自由に手入力できるようにすると「とりあえず99999入れてみよう」となって授業が脱線しがちなので、現実的な対策(「マスク着用」「強い行動制限」「早期隔離」など)をイメージしやすい3段階ずつのプルダウンに絞ってあります。
使用例
授業のなかで5分くらいでさくっと使っています。
まず「すごく単純な計算だけど、感染症の広がり方を表しているモデルなんだよ」と簡単に紹介してから、「パラメータをいろいろいじってみて、感染が爆発しそうなときや、逆にうまく抑え込めそうなときをシミュレーションで確かめてみて」と声をかけて自由に触ってもらっています。
授業での発問例
生徒たちがいろいろなパターンのグラフを出して見比べているタイミングで、こんな風に問いかけています。
「同じシミュレータを使っているのに、人によって結果がぜんぜん違くない?」
「初期感染者を増やしたから」「行動制限ありにしたから」と、自分が選んだ設定の違いを教えてくれます。そこで、もう一歩踏み込んで聞いてみます。
「じゃあ、これってどのシミュレーション結果が『あってる』んだろう?」
生徒からは「え、どれもあってるんじゃない?」「選んだ条件が違うだけだし」といった反応が返ってきます。
ねらい
この5分間の体験で生徒に一番感じてほしいのは、「シミュレーションは設定条件によって結果が大きく変わるし、実は『都合のいい結果』を作ることもできてしまう」ということです。
極端な爆発グラフも、ほとんど広がらないグラフも、それぞれの設定条件のもとではすべて「正しいシミュレーション結果」といえます。だからこそ、次の2つが大事になってきます。
- 自分がシミュレーションを使うとき: どういった条件下でシミュレーションしたいのか、前提条件をよく考えること。
- 人が出したシミュレーション結果を見るとき: 「なぜこの条件で計算したんだろう?」「そこにどんな意図があるんだろう?」と一歩引いて考えてみること。
「コンピュータが出したシミュレーション結果だから絶対正しい!」と鵜呑みにするのではなく、「どういう条件でやったのかな?」と自然に気付けるようになってくれたらうれしいなと思っています。
補足:SIRモデルについて
生徒向けの画面ではややこしいはなしはすっとばして伝えたいメッセージに集中してもらうために、「SIRモデル」という用語や数式記号はあえて伏せていますが、内部の計算ロジックとしては感染症疫学で最も標準的に使われる「SIRモデル(差分方程式)」をそのまま実装しています。主に教員向けの背景知識として、簡単な仕組みをまとめておきます。
1. 3つのグループ(S・I・R)
全体の人口(今回は200人)を以下の3つの状態に分類し、時間の経過とともに人がグループ間を移動していくモデルです。
- S(Susceptible:未感染者): まだ病気にかかっておらず、感染する可能性のある人。
- I(Infectious:感染者): 現在病気にかかっていて、他の人にうつす可能性がある人。
- R(Recovered:回復者・隔離者): 回復して免疫を獲得したか、あるいは隔離されて他の人にうつさなくなった人。
常に S + I + R = 全人口(200人) の保存則が成り立ちます。
2. パラメータ(β・γ)と基本再生産数(R₀)
シミュレータで選択しているパラメータは、それぞれ以下の意味に対応しています。
- 感染率 β(感染しやすさ): 感染者が未感染者と接触してうつす頻度。マスク着用や人流抑制・外出自粛によって値が小さくなります。
- 回復率 γ(回復・隔離の早さ): 1日に感染者が回復または隔離される割合。平均治癒・隔離期間はおよそ
1 / γ日となります(γ = 0.10 なら約10日、γ = 0.20 なら約5日)。
そして、この2つの比率から導かれるのが、感染症対策のニュースでもよく耳にする「基本再生産数(R₀ = β / γ)」です。
- R₀ > 1 の場合: 1人が平均して1人以上に感染を広げるため、感染が急拡大し、はっきりとした山(ピーク)が生まれます。
- 例: β = 0.40, γ = 0.10 のとき → R₀ = 4.0(感染爆発)
- R₀ < 1 の場合: 感染が広がるスピードより回復・隔離されるスピードのほうが速いため、感染は拡大せずに自然収束していきます。
- 例: β = 0.10, γ = 0.20 のとき → R₀ = 0.5(抑え込み成功)
生徒には数式や微分の話をしなくても、「感染しにくくする(βを下げる)」「早く治す・隔離する(γを上げる)」という対策の組み合わせによって、グラフが山を描くか平らなまま収束するかを視覚的に確かめられるようになっています。授業での問いかけの深掘りや、理科・数学との教科横断的な探究のヒントとしてご活用ください。