感染症SIRモデルシミュレーター 戻る
感染症モデル・数理生物学

感染症SIRモデルシミュレーター — 集団免疫と感染拡大

β・γを動かしてR₀が変わる瞬間を見よう。ワクチン接種率を上げて集団免疫が成立する条件を体感。COVID-19・インフルエンザ・麻疹のプリセットで感染力の違いを比較。

プリセット
モデル選択
基本パラメータ
総人口 N
初期感染者 I₀
感染率 β(/日)
回復率 γ(/日)
基本再生産数 R₀ = β/γ 3.50
ワクチン・オプション
ワクチン接種率 V(%)
%
シミュレーション日数
d
季節性変動 ε
主要指標
計算結果
ピーク感染率
最終感染率
ピーク到達日
集団免疫閾値
時系列グラフ(S/I/R vs 日数)
理論・主要公式
$$\frac{dS}{dt}= -\frac{\beta S I}{N}$$ $$\frac{dI}{dt}= \frac{\beta S I}{N}- \gamma I$$ $$\frac{dR}{dt} = \gamma I$$

N = S + I + R = 一定(保存則)

感染症SIRモデルシミュレーターとは

🙋
SIRモデルって何ですか? 聞いたことはあるけど、具体的に何を計算してるんですか?
🎓
大まかに言うと、感染症がどのように広がり、収束していくかを予測するための「計算レシピ」だよ。人口を「感染する可能性がある人(S)」「現在感染している人(I)」「回復して免疫を持った人(R)」の3グループに分けて、時間とともにどう移り変わるかを数式で追跡するんだ。このシミュレーターでは、上のスライダーで「感染率β」や「回復率γ」を変えると、グラフの曲線がリアルタイムでどう変わるかがすぐにわかるよ。
🙋
え、そうなんですか! で、よく聞く「基本再生産数R₀」って、このシミュレーターのどこに関係してるんですか?
🎓
良いところに気づいたね。R₀は「感染率β」を「回復率γ」で割った値、$R_0 = \beta / \gamma$ で計算されるんだ。これが感染拡大のカギ。例えば、右のプリセットで「COVID-19初期」を選ぶとR₀≈2.5に、「麻疹」を選ぶとR₀≈15に設定される。R₀が1を超えるとピークが発生して流行するけど、1を下回るとすぐに終息する。実際にパラメータを動かして、R₀の表示が1を境にグラフがどう変わるか確かめてみよう。
🙋
「集団免疫閾値」ってのも出てきますけど、ワクチン接種率のスライダーを動かすと関係あるんですか?
🎓
その通り!集団免疫閾値は、流行を止めるために必要な免疫保持者の割合で、だいたい $(1 - 1/R_0) \times 100\%$ で計算される。R₀=2.5なら60%だね。このシミュレーターでは、「ワクチン接種率V」を上げると、最初から免疫を持っている人が増えるから、ピークの感染者数が大きく減るのがわかるよ。実務では、このシミュレーション結果を見て「何%の人にワクチンを打てば医療崩壊を防げるか」を議論するんだ。

よくある質問

R₀は感染率βを回復率γで割った値(β/γ)で計算されます。本シミュレーターではβとγのスライダーを動かすとR₀の値がリアルタイムで表示され、R₀が1を超えると感染拡大、1未満で収束に向かう様子を視覚的に確認できます。
ワクチン接種率を上げると感受性人口Sが減り、実効再生産数が低下します。集団免疫が成立するには接種率が1−(1/R₀)以上である必要があります。例えばR₀=3なら約67%以上の接種率が必要で、シミュレーターでスライダーを調整しながらその閾値を体感できます。
各プリセットは実際の疫学データに基づき、COVID-19はR₀約2.5(β=0.5, γ=0.2)、インフルエンザはR₀約1.5(β=0.45, γ=0.3)、麻疹はR₀約15(β=1.5, γ=0.1)に設定されています。プリセットを切り替えることで感染力の違いによる流行曲線の変化を比較できます。
対策の効果(ワクチン接種や隔離によるβ低減)を数値で試行でき、ピーク時期や最終的な感染者数の目安を得られます。ただし、本モデルは年齢構造や空間的広がりを考慮しない単純化されたモデルです。実際の政策判断には、より詳細なモデルや専門家の助言と併用してください。

実世界での応用

パンデミック対策の政策評価: COVID-19の際、各国政府がロックダウンや行動制限の効果を予測するためにSIRモデルが多用されました。感染率βを下げる(接触機会を減らす)介入をモデル化し、ピークの感染者数や医療キャパシティを超えるかどうかをシミュレーションしました。

ワクチン接種キャンペーンの計画: 麻疹や風疹などの定期接種において、集団免疫を達成し流行を防ぐために必要な接種率を算出するのに使われます。シミュレーターでワクチン接種率Vを変えて、流行曲線がどう抑制されるかを確認できます。

新興感染症のリスク評価: 新しい病原体が出現した際、その感染率と重症化率から、医療システムへの負荷や最終的な死亡者数を大まかに推定し、リソース配分の優先順位を決定する基礎データとして利用されます。

CAE・数値解析との関連: SIRモデルの方程式は、流体の移流拡散や化学反応の速度方程式と同じく、連立常微分方程式(ODE)の形をしています。実務では、このシミュレーターの背後で動いているのと同じ4次ルンゲ・クッタ法などの数値解法が、CAEソフトウェアで広く使われています。

よくある誤解と注意点

このシミュレーターを使い始めるとき、いくつか気をつけてほしいポイントがあるよ。まず、「基本再生産数R₀は絶対的な定数ではない」という点。例えばCOVID-19のR₀≈2.5というのは、人々が普段通りに接触する環境での値だ。実際には、人込みを避けたりマスクをしたりすれば実効再生産数R_tは下がる。このツールで「感染率β」を下げる操作が、まさにその対策効果のシミュレーションにあたるんだ。

次に、パラメータ設定の現実性。例えば「回復率γ」を1/5(=0.2)に設定すると平均感染期間は5日になるけど、これは症状がある期間全体を指すことが多い。実際の「感染力がある期間」はもっと短いかもしれない。パラメータを動かして非現実的な曲線(例えば、感染者数Iが総人口Nを超えるなど)が出たら、設定を見直すクセをつけよう。

最後に、「集団免疫閾値はゴールではない」という認識。閾値の60%に達すれば流行は止まるが、それまでにどれだけの感染者ピーク(医療負荷)が発生するかが重要だ。例えば、ワクチン接種なしで自然感染に任せると、ピーク時には人口の20%以上が同時に感染する可能性もあり、医療崩壊を招く。シミュレーションでは、ワクチン接種率を上げることで、「ピークの圧迫」をいかに緩和するかを読み取ることが実務的な使い方なんだ。

使い方ガイド

  1. 初期条件を設定:人口N(例:100万人)、初期感染者I0(例:100人)、ワクチン接種率を入力
  2. 感染パラメータを入力:基本再生産数R0(COVID-19は2.0~3.0、インフルエンザは1.3)、感染率β、回復率γ(平均感染期間の逆数)を指定
  3. シミュレーション実行後、ピーク感染率・到達日・最終感染率・集団免疫閾値(1-1/R0)をリアルタイム可視化で確認

具体的な計算例

人口1000万人、初期感染者100人、ワクチン接種率30%の設定でCOVID-19をモデル化した場合:R0=2.5、感染率β=0.5/日、回復率γ=0.1/日(平均10日の感染期間)と設定。シミュレーション結果はピーク感染率が約18%(180万人)、到達日が45日目、最終感染率が約60%となり、集団免疫閾値1-1/2.5=60%に達する。ワクチン効果90%を適用すると、ピーク感染率は12%に低下、到達日が55日に遅延し医療負荷が軽減される。

実務での注意点

  1. 感染率βは接触頻度と感染確率の積:通勤・学校環境で大きく変動するため、地域データに基づく補正が必須
  2. 回復率γの設定誤りは致命的:インフルエンザ(3~7日)とCOVID-19(7~14日)で大きく異なり、γ値が小さいほどピーク感染率が低下する
  3. ワクチン接種率と有効率を区別:接種率50%・有効率80%の場合、実質免疫率は40%であり、過度な楽観的予測を避ける
  4. 時間経過による媒介変数変化:非医療行為(社会距離)や流行株変異によるR0変化を定期的に反映させる