Math World Lab

感染症数理モデル(SIRモデルと集団免疫の数理)

感染率 β と回復率 γ の比率から、パンデミックの山とワクチン接種の必要割合を予測する微分方程式

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
SIRモデルは人口を未感染者(S)・感染者(I)・回復/免疫者(R)の3群に分け、非線形連立微分方程式でパンデミックの推移を記述するモデル
2
基本再生産数 R0=β/γR_0 = \beta / \gamma が 1.0 を超えると感染が爆発的(指数関数的)に拡大し、1.0 を下回ると自然消滅する
3
集団免疫の達成閾値は 1−1/R01 - 1/R_0 で計算され、これを超える割合の人々がワクチンや既感染で免疫を持つと、社会全体で感染拡大がストップする

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

1927年にペストやコレラの感染爆発を予測するため、人口を「未感染・感染・免疫」に分割して微分方程式で解き明かした公衆衛生の数理革命。

身につく武器・思考力

基本再生産数 R0 から「何%の人間がワクチンを打てば感染がストップするか(集団免疫閾値)」を自ら数式で計算し、感情論に惑わされない科学的判断ができる。

実社会・ITでの活躍現場

  • •WHOや厚生労働省によるパンデミック時の感染ピーク予測と医療病床確保計画
  • •新型コロナやインフルエンザワクチンの有効性・必要接種率のシミュレーション
  • •SNS上の情報拡散(バズ)やフェイクニュース伝播のエージェントモデル解析
  • •コンピュータウイルスの社内ネットワーク感染遮断プロトコル設計

Layer 1 — 直感・シミュレーター

「感染率 β\beta」や「ワクチン接種率」のスライダーを動かしてみよう。接種率を引き上げて集団免疫閾値を超えると、感染者数(赤線)の山が消滅し、医療崩壊ラインを下回る劇的な効果をシミュレーションで体感できる。

感染率 $\beta$0.40
0.1 (マスク・隔離)0.8 (ノーガード)
回復率 $\gamma$ (感染期間)10 日
20日 (長期)4日 (迅速回復)
ワクチン接種率0%
0%閾値: 75%85%
【医療危機】感染ピークが医療許容量を超過
基本再生産数 $R_0 = 4.00$ | 実効 $R_t = 4.00$ | ピーク感染者: 415人(23日目)
100日間の感染推移(SIRダイナミクス)
未感染者 S 感染者 I 回復/免疫 R 医療限界
直感チェック!ミニクイズ

あるウイルスの基本再生産数が R0=4.0R_0 = 4.0 であるとき、感染の自然拡大を阻止して「集団免疫」を達成するために必要な免疫保有者の割合(閾値)は何%か?

Layer 2 — 定義・受験・証明

定義

総人口を N=S(t)+I(t)+R(t)N = S(t) + I(t) + R(t)(一定)とする。時刻 tt における未感染者数 SS、感染者数 II、回復・免疫者数 RR の時間変化は、ケンドリックとマッケンドリックによるSIR方程式で定義される。

dSdt=−βSIN\frac{dS}{dt} = -\frac{\beta S I}{N}

dIdt=βSIN−γI=(βSN−γ)I\frac{dI}{dt} = \frac{\beta S I}{N} - \gamma I = \left( \frac{\beta S}{N} - \gamma \right) I

dRdt=γI\frac{dR}{dt} = \gamma I

ここで β\beta は感染率(接触頻度×感染確率)、γ\gamma は回復率(平均感染期間は 1/γ1/\gamma 日)である。

公式・数理モデル

R0=βγ,H=1−1R0R_0 = \frac{\beta}{\gamma}, \quad H = 1 - \frac{1}{R_0}

証明・導出

集団免疫閾値(Herd Immunity Threshold)の導出:

感染が拡大するか収束するかは、感染者数の時間微分 dIdt\frac{dI}{dt} の正負で決まる。

dIdt=γ(βγSN−1)I=γ(Rt−1)I\frac{dI}{dt} = \gamma \left( \frac{\beta}{\gamma} \frac{S}{N} - 1 \right) I = \gamma (R_t - 1) I

ここで Rt=βγSN=R0SNR_t = \frac{\beta}{\gamma} \frac{S}{N} = R_0 \frac{S}{N} は「実効再生産数(時刻 tt で1人の感染者が新たに感染させる平均人数)」である。

1. Rt>1R_t > 1 のとき、dIdt>0\frac{dI}{dt} > 0 となり感染者は指数関数的に増加する(流行発生)。 2. Rt<1R_t < 1 のとき、dIdt<0\frac{dI}{dt} < 0 となり新規感染は減少に向かい収束する。

社会の中でワクチン接種などにより免疫を持つ人の割合を pp とすると、未感染者の割合は最大でも S/N=1−pS/N = 1 - p となる。 感染拡大を防ぐ(Rt<1R_t < 1 を維持する)ための条件は、

R0(1−p)<1 ⟹ 1−p<1R0 ⟹ p>1−1R0R_0 (1 - p) < 1 \ \Longrightarrow \ 1 - p < \frac{1}{R_0} \ \Longrightarrow \ p > 1 - \frac{1}{R_0}

これより、集団免疫を達成するために社会全体で必要な免疫獲得割合の理論的下限値 pcrit=1−1R0p_{\text{crit}} = 1 - \frac{1}{R_0} が導かれる。

押さえておきたいポイント

  • 感染拡大の初期段階では、感染者数は I(t)≈I0e(β−γ)tI(t) \approx I_0 e^{(\beta - \gamma)t} という急激な指数関数的増殖(感染爆発)を示す
  • 全員が感染しなくても、免疫保持者が一定割合を超えることで未感染者への感染経路が遮断される現象が「集団免疫」である
  • 現実の公衆衛生では、行動制限(ロックダウンやマスク)で接触率 β\beta を下げつつ、ワクチンで感受性人口 SS を減らす複合政策が取られる
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

公衆衛生政策におけるパンデミック予測とワクチン配分最適化

厚生労働省やWHOの感染症対策タスクフォースでは、年齢層別接触マトリクスや地域移動データを組み込んだ拡張SIRモデル(SEIRモデルやエージェントベースモデル)を用いて病床逼迫度を予測し、緊急事態宣言の発令やワクチン重点供給の意思決定を行っている。

1// SIRモデルの数値解法(4次ルンゲクッタ法)
2function simulateEpidemic(
3 totalPop: number,
4 initialInfected: number,
5 beta: number, // 感染率
6 gamma: number, // 回復率
7 days: number = 60
8) {
9 let s = totalPop - initialInfected;
10 let i = initialInfected;
11 let r = 0;
12 const dt = 0.2; // 0.2日刻み
13
14 const r0 = beta / gamma;
15 const herdImmunityPct = (1 - 1 / r0) * 100;
16 let peakInfected = i;
17
18 for (let t = 0; t <= days; t += dt) {
19 const ds = (-beta * s * i) / totalPop;
20 const di = (beta * s * i) / totalPop - gamma * i;
21 const dr = gamma * i;
22
23 s += ds * dt;
24 i += di * dt;
25 r += dr * dt;
26
27 if (i > peakInfected) peakInfected = i;
28 }
29
30 return {
31 r0: r0.toFixed(2),
32 herdImmunityThreshold: `${Math.max(0, herdImmunityPct).toFixed(1)}%`,
33 finalRecovered: Math.round(r),
34 peakInfected: Math.round(peakInfected),
35 };
36}
37
38// 例: R0 = 3.0 の感染症シミュレーション
39const result = simulateEpidemic(100000, 10, 0.6, 0.2);
40console.log(`基本再生産数 R0: ${result.r0}`);
41console.log(`集団免疫に必要な接種率: ${result.herdImmunityThreshold}`);
42console.log(`最大同時感染者数: ${result.peakInfected} 人`);

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

VmaxE + S ⇄ ES → E + PMichaelis-Menten Kinetics
関連度高大学数学

化学反応速度論と連立微分方程式(ミカエリス・メンテン機構)

分子の衝突確率から導く質量作用の法則と、酵素触媒による代謝・飽和現象の数理解析

関連度高大学数学

微分方程式の基礎(振動・減衰)

ばね・質量・ダンパー系の運動方程式から学ぶ常微分方程式と、その数値解法(オイラー法)

関連度高大学数学

正規分布と中心極限定理

あらゆるランダムなばらつきが最終的に収束する「釣鐘型の山」

同じレベルで次に挑戦したいトピック

同レベル推薦工学応用

勾配降下法

谷底を探すAIの基本アルゴリズム

同レベル推薦工学応用

ニューラルネットワークの数学(順伝播と活性化関数)

入力に重みを掛けて足し合わせ、非線形関数で発火させるAIの基本素子

同レベル推薦工学応用

レコメンドの仕組み(コサイン類似度とベクトル検索)

ユーザーの好みと商品の近さを「ベクトルのなす角」で判定するアルゴリズム

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

平均値・中央値・データの活用

棒グラフを動かして、平均と中央値の違いを体で覚えよう

工学・実践連携中学数学

四分位範囲・箱ひげ図

データを並べて4等分すると、散らばり具合が一目でわかる

✨1% 排出100連ガチャ当選 63.4%爆死 36.6%1/e の法則
工学・実践連携中学数学

ガチャ確率と大数の法則(確率の心理バイアス)

「確率1%を100回引けば当たる?」余事象と二項分布が暴くスマホゲームの現実

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。