モデル(B)の前提情報(これまでのモデル)
・東京都1,400万人を想定
・5,000世帯≒1万エージェントからなるマルチレイヤーネットワーク
・東京都の人口と合わせるため、1エージェントが1,400人分の重み補正
・データは国勢調査の人口構成をベースとしてリサンプリング・合成された関西大学村田教授の人工合成データ
・本データには、世帯構成、年齢、性別、職業、住所等の情報が含まれており、その情報を用いて「家族レイヤー」「学校レイヤー」「職場レイヤー」「ご近所コミュニティレイヤー」「ランダム(旅行・移動等)レイヤー」等のネットワークレイヤーを生成※
※詳細はAppendixをご参照
モデル(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)の拡張計画
・データを日本全国の主要都市に拡大し、「都市ごとの感染パターンの比較」と、「都市間移動を考慮したモデル」へと拡張する予定
・人と人との接触は、「ウィルス交換」という負の側面と同時に「幸福感の発生」という正の効用が生じることを考慮し、行動抑制の負の側面にも視野を拡げたモデルとする
・レイヤーごとに主レイヤーと副レイヤーを想定
◦主レイヤーとして、「世帯」「学校」「職場(同僚)」といった、ほぼm0のみで構成されるレイヤーを設定
◦副レイヤーとしてまずは「職場(クライアント/顧客)」「距離」「ランダム」を設定するが、今後拡張予定
◦副レイヤーは、W-m0の概念である「意図せずたまたま隣り合わせた毎回変わる多数の他人との接触」を再現するため、W-m0のリンク数を増やすとともにリンクのアクティベーション確率を調整する仕様とする
モデル(B)マルチレイヤーマルチSEIRエージェント:設定
・データ: 関西大学村田教授の人工合成データ
・感染伝搬モデル:
✓マルチエージェントベースのワクチン効果考慮後のSEIRSモデルを採用
✓Iの状態を軽症と重症、さらに重症から死亡への推移を考慮
✓各々のレイヤーを独立に間引いたケースで計算を実施
✓オミクロン株の平均潜伏期間を踏まえ1タイムスタンプ1日に変更
・ワクチン: 接種によりS/V1/V2/V3のノードのEへの遷移確率を▲X%低下。ワクチン効果は段階的に減衰
モデルBの結果:新規感染者数
「日常生活シナリオ」の場合、W補正ありのケースでは、新規感染者は再度増加に転じ日間数万人の感染者となる可能性がある。他方、副層での行動抑制があれば、概ね現在の水準が続いた後、収束する計算結果となった。
データ提供元:(株)NTTドコモ、(株)ドコモサイトマーケティング
モデルBの結果:重症(中等症以上レベル)感染者数
いずれのネットワーク特性・レイヤー間引きルールにおいても、重症感染者数はピーク時でも数百名程度と低位水準に収まる見込み。
データ提供元:(株)NTTドコモ、(株)ドコモサイトマーケティング
モデルBの結果:接触シナリオ別平均接触者数比較
シナリオにより、平均して一人当たり1日に1~3名程度と感染しうる接触が生じている計算結果となった。
データ提供元:(株)NTTドコモ、(株)ドコモサイトマーケティング
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したエッジ数} >= industry_m_0
距離
・概要
◦distance_Wとdistance_m_0に基づき距離から制約付きネットワークを形成するレイヤー
・パラメータ
◦distance_W: 他人と繋がる上限数 (distance_W - distance_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 で採用するエッジを決定しグラフを生成