주제 51 / 91· HTA 프레임워크와 예방 경제학
마르코프 코호트 시뮬레이션
마르코프 코호트 모델은 효과가 한 번에 나타나지 않고 여러 기간(주기)에 걸쳐 전개되는 개입을 위한 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%이고 재진입이 없으면, 건강 비율은 어떤 유한한 주기 수에서도 0에 도달하지 않고 기하급수적으로 감쇠합니다.
소프트웨어 공학과의 연관성
다주기 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/