🎓 レベル:標準 | 重要度:A(必須)
📎 前提:次数中心性と次数分布・スケールフリー(Barabási–Albert) | 関連:閾値モデル・情報カスケード・攻撃耐性とロバスト性
要点(BLUF)
- 感染症モデルは各ノードを状態(S=未感染, I=感染, R=回復)に分け、確率的に遷移させる枠組み。
- SIは回復なし(最終的に全員感染)、SISは回復して再感染しうる(風土病)、SIRは回復後免疫(流行は1波で終わる)。
- 流行が起きるかは基本再生産数 が1を超えるかで決まる。ネットワークの次数分布が を左右する。
概念:広がりを状態遷移で捉える
病気・噂・流行語 — 「何かが人から人へ広がる」現象は、ネットワーク上のダイナミクスの代表例です。各ノード(人)を状態(未感染・感染・回復)で表し、感染ノードが隣の未感染ノードを確率的に感染させる。この単純なルールが、流行するかしないかの閾値現象を生みます。応用としての口コミ拡散はマーケティングのturf — ここでは拡散のモデルそのものを扱います。
3つの基本モデル
| モデル | 状態遷移 | 振る舞い | 例 |
|---|---|---|---|
| SI | S→I | 全員が最終的に感染 | 不可逆な情報の伝播 |
| SIS | S→I→S | 感染と回復を繰り返す | 風土病・再感染する噂 |
| SIR | S→I→R | 回復後は免疫、1波で収束 | インフルエンザ・麻疹 |
graph LR
S1["S 未感染"] -->|"感染率 β"| I1["I 感染"]
I1 -->|"回復率 γ"| R1["R 回復/免疫"]
I1 -.->|"SISでは S に戻る"| S1
数式:基本再生産数と閾値
連続時間の平均場近似では、感染ノードの割合 の初期成長は
ここで は1接触あたり感染率、 は回復率、 は平均次数。基本再生産数は
なら感染は指数的に拡大(流行)、 なら自然消滅。 が疫学的閾値です。重要なのは が入ること — つながりが多いネットワークほど流行しやすい。
コードで確認
import networkx as nx
import numpy as np
from collections import Counter
def sir_sim(G, beta, gamma, seed, steps=200):
rng = np.random.default_rng(seed)
state = {n: 'S' for n in G}
state[rng.choice(list(G.nodes()))] = 'I' # 初期感染者1人
for _ in range(steps):
new = {}
for n in G:
if state[n] == 'I':
for nb in G.neighbors(n): # 隣へ感染
if state[nb] == 'S' and rng.random() < beta:
new[nb] = 'I'
if rng.random() < gamma: # 回復
new[n] = 'R'
if not new:
break
state.update(new)
return Counter(state.values())
G = nx.barabasi_albert_graph(1000, 3, seed=5)
for beta in [0.05, 0.15]:
finals = [sir_sim(G, beta, gamma=0.1, seed=s).get('R', 0) / G.number_of_nodes()
for s in range(30)]
print(f"beta={beta}, gamma=0.1: 最終感染割合(R/N)平均 = {np.mean(finals):.3f}")
実行結果:
beta=0.05, gamma=0.1: 最終感染割合(R/N)平均 = 0.047
beta=0.15, gamma=0.1: 最終感染割合(R/N)平均 = 0.414
( が小さい)では感染は5%未満で立ち消え。 を3倍の0.15にすると が閾値を超え、全体の約41%に広がる大流行に。感染率のわずかな違いが、流行の有無という質的な差を生むのが閾値現象です。
数式の直観的意味
は「1人の感染者が回復するまでに平均何人にうつすか」です。1人がうつす相手の期待数が1を超えれば感染は世代ごとに増殖し、下回れば縮小する — ER の連結成分の相転移(Erdős–Rényiランダムグラフ)と同じ「枝が自己再生産できるか」の論理です。スケールフリーネットワーク(スケールフリー(Barabási–Albert))では が発散するため閾値が消失し、どんなに小さい でも流行が起きうる — これがハブを持つネットワークの恐ろしさです。
⚠️ よくある誤解・落とし穴
- 平均場近似はネットワーク構造を均す: は次数の不均一性を平均で潰す。スケールフリーでは でなく が効きます。
- SI と SIR を混同しない:SI は必ず全員感染、SIR は回復による免疫で途中収束。問いに合うモデルを選ぶこと。
- 初期感染者の位置で結果が変わる:ハブから始まると流行しやすい。これが 影響最大化(貪欲法・劣モジュラ性) の動機です。
対応シミュレーション
本文のコードがそのまま検証用です。免疫戦略(誰をワクチン接種するか)は 攻撃耐性とロバスト性 と表裏一体。
関連
- 前提:次数中心性と次数分布・スケールフリー(Barabási–Albert)
- 別の広がり方:閾値モデル・情報カスケード
- 最適な起点:影響最大化(貪欲法・劣モジュラ性)
- 上位ハブ:ネットワーク上のダイナミクス 目次