モデル(A) SEIR 回路格子モデルに、接種による状態遷移を加味
SEIRS回路格子による、オミクロン株 新規感染者数試算
(感染率:δ株の2倍, ワクチン効果:30%に減少)
SEIRS回路格子による、オミクロン株 重症者数試算
(感染率:δ株の2倍, ワクチン効果:30%に減少)
モデル(B)マルチレイヤーの考え方
想定したレイヤーの特徴
●世帯 :世帯内で全結合し、他世帯とは完全に分離されたネットワーク
●職業 :同一職業の人々がW-m0関係を遵守しつながったネットワーク
●学校 :同一地域・同一学年の子供たちがW-m0関係を遵守しつつ
つながったネットワーク
●ご近所 :距離の近いエージェント同士がW-m0関係を遵守しつつ
つながったネットワーク
●ランダム:特段のルールなくランダムにn人とつながるようルール化し
つながったネットワーク
レイヤーを分ける理由
●人と人のつながり方のコンテクストによって、ネットワークの疎・密結合の関係性および接触の濃度・頻度が異なる
●コンテクストごとに取り付け・取り外しが可能で、また間引き・増幅することで、緊急事態宣言実施や景気浮揚政策の検討を行う材料として活用しやすい
●こういった事象をモデリングする上で、マルチレイヤー形状は非常に便利
モデル(B)マルチレイヤーマルチSEIRフロー
※1. v1_det = min(v1, v1 – 1回目ワクチン接種後経過週数 * v_det_rate / v_det_term)
※2. v2_det = min(v2, v2 - 2回目ワクチン接種後経過週数 * v_det_rate / v_det_term)
※3. v3_det = min(v3, v3 - 3回目ワクチン接種後経過週数 * v_det_rate / v_det_term)
モデル(B)マルチレイヤーマルチSEIRエージェント:設定
●データ :関西大学村田教授の人工合成データ
●感染伝搬モデル:
✔マルチエージェントベースのワクチン効果考慮後のSEIRSモデルを採用
✔Iの状態を軽症と重症、さらに重症から死亡への推移を考慮
✔各々のレイヤーをそれぞれ半分に間引いたケースで計算を実施
●ワクチン :接種によりS/V1/V2/V3のノードのEへの遷移確率を▲X%低下。ワクチン効果は段階的に減衰
※Betweeness centralityベース
モデルBの結果:新規感染者数 (重症化リスク中シナリオ)
感染力がデルタ株の1.5倍でも、ブースター実施有無、V/T実施シナリオごとに、新規感染者数をKPIとした場合、ブースター接種開始が2月以降では大規模な感染者増との結果。ただし、m0https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0242766 )結果となっている。
モデルBの結果:新規感染者数 (重症化リスク中シナリオ。ブースター1月開始のみ)
ブースター1月実施シナリオを拡大すると、V/T実施により新規感染者数はかなりの程度抑制することができる見込み。
モデルBの結果:重症感染者数
オミクロン株が重症化リスク大(デルタ株と同程度の重症化リスク)と仮定すると、ブースター接種がない場合最大1万床程度の病床確保が必要となる恐れがある重症化リスクが小ならブースター無しでV/Tにより抑えられる可能性あり
モデルBの結果:重症感染者数 (ブースター1月開始シナリオのみ)
ブースター1月開始シナリオのみ拡大してみると、V/T実施も加われば重症患者数の拡大(=医療ひっ迫)はほぼ抑制できると思われる。
Appendix: MLNの各レイヤーの生成ロジック
・世帯
・職業
・学校
・距離
・ランダム
※データのサンプリングは、指定した世帯数をランダムサンプリングするので世帯数の指定は出来るがノード数の指定は出来ない
世帯
・概要
・世帯ごとにクリークを形成するレイヤー
・パラメータ
・なし
・生成ロジック
・同一のhousehold_idを全結合
世帯
・概要
・industry_Wとindustry_m_0に基づき制約付きネットワークを形成するレイヤー
・パラメータ
・industry_W: 他人と繋がる上限数 (industry_W - industry_m_0だけ他人の手を受け入れる)
・industry_m_0: 自ら伸ばす手の本数
・生成ロジック (擬似コード)
for node_i in {ノードの集合(ノード番号で昇順)}:
for node_j in {node_iと同じindustry_type_idであるノードから、node_iを除いた集合 (ランダム順)}:
if industry_degree(node_j) <= industry_W - industry_m_0:
{エッジの集合}.append((node_i, node_j))
break if {appendしたエッジ数} >= industry_m_0
学校
・概要
・児童がschool_Wとschool_m_0に基づき制約付きネットワークを形成するレイヤー
・パラメータ
・school_W: 他人と繋がる上限数 (school_W - school_m_0だけ他人の手を受け入れる)
・school_m_0: 自ら伸ばす手の本数
・生成ロジック (擬似コード)
for node_i in {年齢15歳以下のノードの集合(ノード番号で昇順)}:
for node_j in {node_iと同じ年齢かつ同じ地区であるノードから、node_iを除いた集合 (ランダム順)}:
if school_degree(node_j) <= school_W - school_m_0:
{エッジの集合}.append((node_i, node_j))
break if {appendしたエッジ数} >= shcool_m_0
距離
・概要
・distance_W: 他人と繋がる上限数 (distance_W - distance_m_0だけ他人の手を受け入れる)
・パラメータ
・school_W: 他人と繋がる上限数 (school_W - school_m_0だけ他人の手を受け入れる)
・distance_m_0: 自ら伸ばす手の本数
・生成ロジック (擬似コード)
for node_i in {ノードの集合(ノード番号で昇順)}:
for node_j in {node_i以外のノードの集合 (ランダム順)}:
if distance_degree(node_j) <= distance_W - distance_m_0:
if 1/(ε + distance(node_i, node_j)) >= random(0, 1):
{エッジの集合}.append((node_i, node_j))
break if {appendしたエッジ数} >= distance_m_0
ランダム
・概要
・ランダムグラフから成るレイヤー
・パラメータ
・p: エッジを選択する確率
・生成ロジック (擬似コード)
・n(n - 1) / 2 通りのエッジから確率 p で採用するエッジを決定しグラフを生成