Тема 51 из 91· Рамочные подходы HTA и экономика профилактики
Когортное моделирование Маркова (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 в год, пока Здоров. Моделируются 3 годовых цикла при ставке дисконтирования NICE 3,5 %:
Цикл 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
Состояние каждого цикла — это состояние предыдущего цикла, пропущенное через матрицу переходов: 90 % из 90 %, остающихся Здоров в цикле 1, остаются Здоров в цикле 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/