第 51 個主題,共 91 個· 衛生技術評估框架與預防經濟學
馬爾可夫佇列模擬 (Markov Cohort Simulation)
馬爾可夫佇列模型是 HTA 中的標準建模技術,適用於其效果不是一次性出現、而是跨多個時期(週期)展開的介入。一個假想的佇列全部從某一健康狀態開始,每個週期由一組固定的轉移機率在狀態之間移動佇列的各部分;成本和 QALY 在每個週期按佔據各狀態的佇列比例累積,然後折現到現值。任何為多年期數位健康商業案例建模的軟體工程師——使用者或病患隨時間在“已參與”“已流失”“已取消”等狀態之間移動——建置的都是同樣的結構。
為什麼重要
大多數真實的衛生技術決策並不是單個時期的成本與結果的比較。慢性病會在多年中進展、復發、對治療產生反應或致命,而單時期的成本效果分析無法表示這一點。透過衛生技術評估評估的慢性病介入,其向 NICE、ICER 和 CADTH 提交的材料幾乎總是建置成具有終身時間範圍的馬爾可夫佇列模型,因為替代方案——對每一條可能的個體病患路徑建模——在大規模下無法求解。佇列層面的馬爾可夫模型用一部分個體層面的真實性(它難以表示對先前狀態的記憶,這就是“馬爾可夫”的由來:未來只取決於當前狀態)換取一個透明、可審計、且快到足以在機率敏感性分析中運作數千次的模型。
計算方法
一個週期內的佇列更新(行向量 × 轉移矩陣):
新狀態[j] = 求和_i 狀態[i] * 轉移矩陣[i][j]
一個週期的成本:
週期成本 = 求和_s 狀態[s] * 每週期成本[s]
一個週期的 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,000(死亡 時為 £0),處於 健康 時每年獲得 0.8 QALY。按 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 的停留自身機率。若省略,佇列品質在一個週期後就會從該狀態蒸發,累計成本或 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/