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

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

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

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

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

Вариант —
⏱ —
Прогресс выполнения0 / 20 заданий
📋 Как устроено занятие — прочитайте один раз, дальше вопросов не будет
  1. Что понадобится: только эта страница — ROC-кривая, AUC и доверительные интервалы считаются здесь же; Excel может пригодиться в задании с ручным расчётом AUC.
  2. Задача занятия: понять, как чувствительность и специфичность зависят от порога, и научиться сравнивать диагностические маркеры по AUC.
  3. Порядок такой: блок 1 — четырёхпольная таблица и базовые показатели; блок 2 — симулятор: двигаете порог и смотрите, что происходит; блок 3 — AUC и его доверительный интервал; блок 4 — сравнение двух маркеров; блок 5 — точный тест DeLong; блок 6 — итог и рефлексия; блок 7 — тест по теме.
  4. Данные вашего варианта — в блоке 1; блоки 2–5 работают с ними же, пересчитывать ничего не нужно.
  5. Вставка текста в поля отключена — отвечайте своими словами.
  6. Для сдачи нужны оба итоговых вывода в блоке 6 (задание 6.4). Кнопка «✅ Сдать работу» — внизу страницы.
1
Чувствительность, специфичность, ROC-кривая
⏱ 30 мин
Зачем это врачу. Представьте: вы назначаете скрининг на заболевание, которым болеет 1 человек из 1000. Тест хороший — чувствительность 99%, специфичность 95%. У пациента результат положительный. Какова вероятность, что он действительно болен?

Интуиция подсказывает «около 99%». Правильный ответ — около 2%. На 1000 обследованных будет примерно 1 истинно больной с положительным тестом и около 50 здоровых с ложноположительным. Из 51 «положительных» болен один.

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

В исследовании из 50 больных тест дал положительный результат у 40 (TP=40, FN=10), а из 80 здоровых — положительный результат у 20 (FP=20, TN=60). Вычислите 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. Найдите ошибки в чужом заключении

Ниже — заключение, которое написал студент по своему варианту. Оно выглядит грамотно и уверенно, но содержит три содержательные ошибки. Найдите их и объясните, в чём каждая состоит. Критиковать чужое заключение врачу приходится чаще, чем считать самому.

«По результатам анализа маркер А показал AUC = 0,82 (95% ДИ 0,61–0,95), маркер Б — AUC = 0,76 (95% ДИ 0,55–0,91). Сравнение методом DeLong дало z = 1,12, p = 0,26. Таким образом, маркер А статистически значимо превосходит маркер Б и должен быть рекомендован к применению. AUC 0,82 означает, что маркер А даёт правильный ответ в 82% случаев. Оптимальным следует считать порог 2,1, при котором чувствительность достигает 100% — это гарантирует, что ни один больной не будет пропущен».
0 симв. · нужно не менее 80, чтобы открыть разбор
📌 Задание 6.2. Клиническое заключение

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

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

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

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