トピック 51 / 91· HTA枠組みと予防経済学
マルコフコホートシミュレーション
マルコフコホートモデルは、効果が一度ではなく複数の期間(サイクル)にわたって現れる介入に対する、HTAの標準的なモデリング手法です。仮想的なコホートはすべて1つの健康状態から始まり、各サイクルで固定された遷移確率の集合がコホートの一部を状態間で移動させます。費用とQALYは、各状態にコホートがどれだけ存在するかに比例して各サイクルに発生し、現在価値に割り引かれます。複数年にわたるデジタルヘルスのビジネスケースをモデル化するソフトウェアエンジニア(ユーザーや患者が時間とともに「エンゲージ中」「離脱」「解約」といった状態間を移動する場合)は、同じ構造を構築しています。
なぜ重要か
実際の医療技術の意思決定の大半は、単一期間の費用とアウトカムの一回限りの比較ではありません。慢性疾患は何年もかけて進行し、再発し、治療に反応し、あるいは死に至ります。単一期間の費用効果分析ではそれを表現できません。医療技術評価を通じて審査される、慢性疾患の介入に対するNICE、ICER、CADTHへの提出資料は、ほぼ例外なく生涯の時間軸を持つマルコフコホートモデルとして構築されます。代替案、つまりあらゆる個々の患者の経路をモデル化することは、大規模には扱いきれないためです。コホートレベルのマルコフモデルは、個人レベルの現実性の一部(過去の状態の記憶を表現するのが難しい。ゆえに「マルコフ」であり、未来は現在の状態のみに依存する)を、透明で監査可能であり、確率的感度分析で数千回実行できるほど高速なモデルと引き換えにします。
数式
1サイクルのコホート更新(行ベクトル × 遷移行列):
新しい状態[j] = Σ_i 状態[i] * 遷移行列[i][j]
1サイクルの費用:
サイクル費用 = Σ_s 状態[s] * サイクルあたり費用[s]
1サイクルのQALY:
サイクルQALY = Σ_s 状態[s] * 効用値[s] * サイクル長_年
`サイクル数`のサイクルにわたる完全なシミュレーション(`割引率`で割引):
割引後総費用 = Σ_{t=0}^{サイクル数-1} サイクル費用(状態_t) / (1 + 割引率)^t
割引後総QALY = Σ_{t=0}^{サイクル数-1} サイクルQALY(状態_t) / (1 + 割引率)^t
ただし 状態_0 = 初期分布, 状態_{t+1} = コホート前進(状態_t, 遷移行列)
各サイクルを現在価値に割り引く際は、割引と時間選好の式をそのまま、年単位ではなくサイクル単位で適用します。
計算例
臨床: 健康と死亡の2状態モデルで、各サイクルでコホートの10%が死亡し、死亡は吸収状態です(その自己遷移確率は1.0で、この自己ループを省くと、死亡に入ったコホートの質量は1サイクルで消えてしまいます)。コホートはすべて健康から始まり、健康の間は1サイクルあたり£1,000かかり(死亡後は£0)、健康の間は年0.8QALYを得ます。NICEの割引率3.5%で年次サイクル3回をシミュレートします。
サイクル0: 状態 = [1.00, 0.00] (100% 健康)
費用 = £1,000.00, QALY = 0.800, 割引係数 = 1.000000
割引後: 費用 = £1,000.00, QALY = 0.8000
サイクル1: 状態 = [0.90, 0.10] (90% 健康, 10% 死亡)
費用 = £900.00, QALY = 0.720, 割引係数 = 0.966184
割引後: 費用 = £869.57, QALY = 0.6957
サイクル2: 状態 = [0.81, 0.19] (81% 健康, 19% 死亡)
費用 = £810.00, QALY = 0.648, 割引係数 = 0.933511
割引後: 費用 = £756.14, QALY = 0.6049
割引後総費用 ≈ £2,625.71
割引後総QALY ≈ 2.1006
各サイクルの状態は、前のサイクルの状態を遷移行列に通したものです。サイクル1でまだ健康の90%のうち90%がサイクル2でも健康にとどまり(0.9 × 0.9 = 0.81)、残りの19%はすでに死亡しています(0.9 × 0.1 + 0.1 × 1.0 = 0.19)。コホートが健康を完全に空にすることは決してない点に注意してください。サイクルあたり一定の10%の死亡率で再参入がなければ、健康の割合は有限のサイクル数のどこかでゼロになるのではなく、幾何級数的に減衰します。
ソフトウェア工学との関連
複数サイクルのHTAモデルが実際の審査でどう使われるかについては、医療技術評価を参照してください。提出されるマルコフモデルが使用すべき割引率、効用値の出典、時間軸を定めるリファレンスケースです。
マルコフコホートモデルは構造的に、確率的な遷移を持つ状態機械であり、固定数のティックにわたって実行され、各ティックの価値を割り引きます。同じ形が、ユーザーコホートのリテンション/状態遷移を時間にわたってシミュレートします。運用の信頼性版である「この期間にシステムのどれだけが劣化状態にあり、それにいくらかかるか」については、DORAメトリクスを参照してください。具体的には次のとおりです。
- リテンション/解約のモデリングは、「アクティブ」「離脱リスク」「解約」のような状態を持つマルコフコホートモデルです。固定の月次遷移行列を12または24の月次サイクルにわたって実行すると、
健康/死亡が期待生存者数を教えてくれるのと同じように、将来の任意の月における期待アクティブユーザー数(と収益)がわかります。 - 信頼性とインシデントの経済学: システムの状態(正常、劣化、停止)も同じようにモデル化でき、劣化/停止状態にある間にダウンタイムの被害が発生する「サイクルあたりコスト」を持たせられます。インシデント頻度の議論を、遷移確率を変える信頼性向上の作業のコストと比較できる、割引後コストの議論に変えます。
- 終端状態としての吸収状態: 臨床モデルの
死亡は、ソフトウェアモデルの「解約済みサブスクリプション」や「恒久的にオフライン」と全く同じです。どちらも自己遷移確率を明示的に1.0とする必要があり、そうしないとシミュレーションは黙って質量を失います。
落とし穴
- 各行の遷移確率の合計が1にならないこと。 合計が1より大きいか小さい行は、各サイクルでコホートが黙って質量を「漏らす」または「増やす」原因になります。モデル構造自体はその誤りを知らせないため、モデルの出力を信頼する前に必ず行の合計を確認してください。
- 疾患の実際のダイナミクスに対してサイクル長が粗すぎること。 数週間で大きく状態が変わる病態に年次サイクルを使うと、サイクル内で起きる遷移を過小評価します。モデル化する過程が実際に動く速さに比べて短いサイクル長を選んでください。
- 吸収状態の自己ループを忘れること。 吸収状態(死亡、恒久的な中止)には、ちょうど1.0の自己遷移確率が必要です。省くと、その状態のコホートの質量は1サイクルで蒸発し、累積費用やQALY損失を過小評価します。
- 動くからといってモデルを検証済みとみなすこと。 もっともらしい遷移確率を持つマルコフコホートモデルでも、構造的に誤っていることがあります(状態の欠落、誤った吸収の挙動など)。出力を信頼する前に、既知の疫学的基準(例: モデル化した5年生存率が、公表されている生存曲線と一致するか)で検証してください。
出典
- Sonnenberg FA, Beck JR. "Markov models in medical decision making: a practical guide." Medical Decision Making. 1993;13(4):322-38. https://pubmed.ncbi.nlm.nih.gov/8246705/
- Briggs A, Sculpher M. "An introduction to Markov modelling for economic evaluation." PharmacoEconomics. 1998;13(4):397-409. https://pubmed.ncbi.nlm.nih.gov/10178664/