СПб МСИ
САНКТ-ПЕТЕРБУРГСКИЙ
МЕДИКО-СОЦИАЛЬНЫЙ ИНСТИТУТ
Кафедра естественно-научных дисциплин
им. профессора А.Г. Шлейкина

Практическое занятие
«ROC-анализ диагностических маркеров»

Информационные технологии в медицине · 1 курс · 4 ак. часа

🚫 В этом поле нужно писать своими словами — вставка отключена
САНКТ-ПЕТЕРБУРГСКИЙ
МЕДИКО-СОЦИАЛЬНЫЙ ИНСТИТУТ
Кафедра естественно-научных дисциплин
им. профессора А.Г. Шлейкина

ROC-анализ диагностических маркеров

Вариант —
⏱ —
Прогресс выполнения0 / 20 заданий
1
Чувствительность, специфичность, ROC-кривая
⏱ 30 мин
ROC-анализ (Receiver Operating Characteristic) оценивает способность диагностического теста различать больных и здоровых при разных пороговых значениях маркера.
📌 Четырёхпольная таблица и базовые формулы
Болен (реально)Здоров (реально)
Тест положителенTP (истинно положительный)FP (ложноположительный)
Тест отрицателенFN (ложноотрицательный)TN (истинно отрицательный)
Чувствительность (Se) = TP / (TP + FN) — доля больных, правильно выявленных тестом
Специфичность (Sp) = TN / (TN + FP) — доля здоровых, правильно исключённых тестом
ROC-кривая — график зависимости чувствительности (ось Y) от (1 − специфичность), т.е. доли ложноположительных (ось X), при переборе всех возможных порогов
AUC (площадь под кривой) — интегральная мера качества теста: 0,5 — тест не лучше случайного угадывания; 0,7–0,8 — удовлетворительное качество; 0,8–0,9 — хорошее; >0,9 — отличное
📌 Задание 1.1. Разминка (общее задание)

В исследовании из 50 больных тест дал положительный результат у 40 (TP=40, FN=10), а из 60 здоровых — положительный результат у 12 (FP=12, TN=48). Вычислите Se и Sp.

📌 Задание 1.2. Данные вашего варианта
Ситуация (вариант ):
Данные пациентов

Возьмите маркер и порог (тест считается положительным, если значение маркера ≥ порога). Вручную посчитайте по таблице TP, FP, TN, FN и вычислите Se и Sp.

Как это работает: двигайте ползунок — порог маркера меняется, точка на ROC-кривой перемещается, а чувствительность/специфичность/предсказательные ценности пересчитываются в реальном времени по данным вашего варианта (те же 20 пациентов, что и в Блоке 1).
Порог:
Se
Sp
PPV
NPV
Индекс Юдена
📌 Задание 2.1. Найдите оптимальный порог

Подвигайте ползунок и найдите порог, при котором индекс Юдена (Se + Sp − 1) максимален. Зафиксируйте найденное значение кнопкой выше.

✍ Задание 2.2. Компромисс чувствительности и специфичности

Объясните, почему повышение чувствительности теста (снижение порога) обычно снижает его специфичность, и в каких клинических ситуациях стоит жертвовать специфичностью ради чувствительности (и наоборот).

AUC — точечная оценка по конкретной выборке, поэтому для неё, как для любой статистики, рассчитывают доверительный интервал (ДИ). Один из способов — формула Хэнли-МакНила.
📌 Формула стандартной ошибки AUC (Hanley & McNeil, 1982)
SE(AUC) = √[ AUC(1−AUC) + (n₁−1)(Q₁−AUC²) + (n₂−1)(Q₂−AUC²) ] / √(n₁·n₂) где Q₁ = AUC / (2 − AUC) Q₂ = 2·AUC² / (1 + AUC) n₁ = число больных (положительных случаев) n₂ = число здоровых (отрицательных случаев) 95% ДИ = AUC ± 1.96 × SE(AUC)
Автоматический расчёт по данным вашего варианта (маркер )
AUC
SE (Hanley-McNeil)
95% ДИ
✍ Задание 3.1. Интерпретация

Оцените качество маркера по шкале из Блока 1 (0,5 / 0,7–0,8 / 0,8–0,9 / >0,9) и укажите, исключает ли 95% ДИ значение 0,5 (то есть является ли дискриминационная способность теста статистически значимой).

📌 Задание 3.2. Ручной расчёт AUC методом трапеций (общий пример)

ROC-кривая задана точками (1−Sp; Se): (0; 0) → (0,1; 0,4) → (0,3; 0,7) → (0,6; 0,9) → (1; 1). Вычислите AUC как сумму площадей трапеций между соседними точками: S = Σ (x₂−x₁)(y₁+y₂)/2.

Чтобы сравнить два маркера статистически, а не «на глаз», сравнивают их AUC через z-статистику. Упрощённая (приближённая) формула для независимых выборок:
z = (AUC₁ − AUC₂) / √(SE₁² + SE₂²) p-значение — по стандартному нормальному распределению для |z| Внимание: эта формула не учитывает корреляцию между маркерами, измеренными у одних и тех же пациентов (парные данные). Точный расчёт с учётом корреляции даёт тест DeLong (реализован прямо в браузере — см. Блок 5).
Сравнение маркеров вашего варианта: vs
AUC
AUC
z
p-значение
✍ Задание 4.1. Интерпретация сравнения

Какой маркер обладает более высокой диагностической точностью в вашем варианте? Является ли различие AUC статистически значимым (p < 0,05)? Как бы вы обосновали выбор маркера для клинической практики?

В Блоке 4 вы сравнили маркеры приближённой формулой, которая не учитывает корреляцию между маркерами, измеренными у одних и тех же пациентов. Точный метод — тест DeLong: он строится на попарном сравнении значений маркеров у каждого больного с каждым здоровым (статистика Манна-Уитни) и корректно учитывает эту корреляцию через ковариацию AUC. Обычно его считает функция roc.test() пакета pROC в R — здесь тот же алгоритм посчитан прямо в браузере на JavaScript, поэтому устанавливать R не требуется.
Точный тест DeLong для вашего варианта: vs
AUC
AUC
Ковариация AUC₁,AUC₂
z (DeLong)
p-значение (DeLong)
✍ Задание 5.1. Сравните точный и приближённый результат

Сравните z и p-значение теста DeLong (выше) с приближённым z-тестом из Блока 4. Совпадает ли вывод о статистической значимости различия AUC? Если числа отличаются — объясните почему, опираясь на то, что именно учитывает DeLong и не учитывает приближённая формула.

✍ Задание 5.2. Когда разница особенно важна

В каких клинических ситуациях (при каком типе выборки и корреляции между маркерами) расхождение между приближённым и точным методом сравнения AUC может привести к разным клиническим выводам?

📌 Задание 6.1. Клиническое заключение

Напишите короткое (4–6 предложений) заключение: какой из двух маркеров вашего варианта вы бы рекомендовали для диагностики, с указанием AUC, ДИ и оптимального порога.

📌 Задание 6.2. Рефлексия
✍ Что было сложнее всего понять в ROC-анализе — саму идею ROC-кривой, доверительный интервал AUC или сравнение двух тестов?
✍ Зачем нужно проверять расчёты, сделанные вручную или в браузере, с помощью специализированного статистического ПО (R, SPSS и т.д.)?
📌 Задание 6.3. Итоговые выводы (для сдачи работы)

Сформулируйте два итоговых вывода по своему варианту — методический (математический) и врачебный (медицинский). Каждый — минимум несколько предложений; без них работу нельзя будет сдать преподавателю.

✍ Методический вывод: что показал ROC-анализ с точки зрения статистики (AUC, ДИ, сравнение маркеров, точный vs приближённый метод)?
✍ Врачебный вывод: какой маркер и почему вы бы рекомендовали использовать в клинической практике для диагностики?
30 вопросов с выбором одного правильного ответа. Порядок вопросов и порядок вариантов ответа в каждом вопросе — индивидуальные для вашего варианта и не меняются при повторном открытии. Результат виден сразу после ответа и распечатывается вместе с работой.
0 / 30Правильных ответов
0 / 30Отвечено вопросов
📋 Оценка за тест (отдельная, вторая оценка за занятие)
27–30 верныхОтлично
21–26 верныхХорошо
15–20 верныхУдовлетворительно
< 15 верныхНеудовлетворительно
📋
Критерии оценки за практическую часть (Блоки 1–6)
КритерийБаллыОписание
Блок 1: Se/Sp вручную2Верно построена четырёхпольная таблица, правильно вычислены Se и Sp
Блок 2: ROC-симулятор2Найден оптимальный порог по Юдену, объяснён компромисс Se/Sp
Блок 3: AUC и ДИ2Верная интерпретация AUC и ДИ, корректный ручной расчёт методом трапеций
Блок 4: Сравнение маркеров2Верная интерпретация z/p, обоснованный клинический вывод
Блок 5: Точный тест DeLong3Верно интерпретировано различие точного и приближённого метода сравнения AUC
Блок 6: Итог и рефлексия1Сформулировано заключение и содержательная рефлексия
11–12 балловОтлично
9–10 балловХорошо
6–8 балловУдовлетворительно
< 6 балловНеудовлетворительно
За тестовый контроль (Блок 7) выставляется отдельная, вторая оценка — см. шкалу в Блоке 7. Итого за занятие студент получает две оценки: за практическую часть и за тест.
📋 Как сдать работу: 1) заполните все блоки и пройдите тест; 2) нажмите «✅ Сдать работу преподавателю» — после этого изменить ответы будет нельзя; 3) распечатайте занятие в PDF (кнопка ниже) для своего архива.