Вы когда-нибудь задумывались, как продемонстрировать, что производительность набора тестов одной модели машинного обучения значительно отличается от производительности набора тестов альтернативной модели? В этом посте будет описано, как использовать тест ДеЛонга для получения значения p для определения того, имеет ли одна модель AUC, существенно отличающуюся от AUC другой модели, где AUC относится к области под рабочей характеристикой приемника. Этот пост включает пример, рассчитанный вручную, чтобы проиллюстрировать все этапы теста Делонга для небольшого набора данных. Он также включает в себя пример R-реализации теста Делонга для обеспечения эффективных вычислений на больших наборах данных.
Пример использования теста ДеЛонга: модель A предсказывает риск сердечных заболеваний с AUC 0,92, а модель B предсказывает риск сердечных заболеваний с AUC 0,87, и мы используем тест ДеЛонга, чтобы продемонстрировать, что модель A имеет AUC, значительно отличающуюся от модели B с p ‹0,05.
Ссылки
Элизабет Рэй ДеЛонг - статистик, профессор Университета Дьюка. В 1988 году она опубликовала тест для определения того, статистически значимо ли различаются AUC двух моделей. Этот тест получил название тест Делонга.
Основные ссылки на этот пост:
- Элизабет ДеЛонг и др. «Сравнение областей под двумя или более коррелированными кривыми рабочих характеристик приемника: непараметрический подход. Биометрия 1988. »
- Сюй Сунь и др. «Быстрая реализация алгоритма Делонга для сравнения областей под коррелированными кривыми рабочих характеристик приемника. Письма об обработке сигналов IEEE, 2014 г. »
Для удобства в обеих статьях используются одинаковые обозначения, которые мы и будем использовать в этом посте.
Определения чувствительности и специфичности
Чтобы понять, как работает тест Делонга, нам нужно начать с некоторых обозначений. Мы привыкнем к этому обозначению, используя его для определения чувствительности, специфичности и AUC.
Рассмотрим ситуацию, в которой мы построили модель, чтобы предсказать, есть ли у человека заболевание. Мы делаем прогнозы на основе набора тестовых данных, включающего всего N пациентов, из которых m действительно больны, а n действительно здоровы. Наша модель дает прогнозируемые вероятности X для m больных пациентов и прогнозируемые вероятности Y для n здоровых пациентов:
Используя эти обозначения, мы можем записать определения чувствительности и специфичности:
Чувствительность также известна как отзыв или истинно положительный результат. Это доля истинно положительных (больных), которые модель правильно определяет как положительные (больные). Мы определяем чувствительность при определенном пороге принятия решения z следующим образом:
Специфичность также известна как истинная отрицательная ставка. Это доля истинно отрицательных (здоровых людей), которые правильно определены моделью как отрицательные (здоровые). Мы определяем специфичность на определенном пороге принятия решения z следующим образом:
Это означает, что, изменяя порог принятия решения z, мы будем изменять чувствительность и специфичность.
Определение AUC и расчет эмпирической AUC
Рабочая характеристика приемника (ROC) предоставляет сводную информацию о чувствительности и специфичности для различных пороговых значений z. Мы строим кривую ROC, варьируя пороговое значение z и строя график зависимости чувствительности от (1 - специфичность) для каждого значения z.
Область под кривой ROC, или AUC, представляет собой единое число для суммирования производительности модели по всем различным порогам принятия решений.
В статье ДеЛонг и др. описать метод, в котором эмпирическая AUC вычисляется путем суммирования площади трапеций, которые образуются ниже соединенных точек, составляющих кривую ROC (ref).
Для контекста, эмпирический подход Делонга к AUC отличается от биномиального подхода AUC. Биномиальная ROC-кривая строится на основе предположения, что каждая оценка диагностического теста, соответствующая положительному состоянию, и оценка, соответствующая отрицательному состоянию, может быть представлена нормальным распределением (ref).
Эмпирический подход AUC более популярен, чем подход биномиального AUC, потому что эмпирический AUC не полагается на строгие предположения о нормальности, которых требует биномиальный AUC.
Мы можем вычислить эмпирическую AUC (представленную как «тета-шляпа») с помощью правила трапеций следующим образом:
Это определение AUC имеет интуитивный смысл:
- Когда Y ‹X, это означает, что прогнозируемая вероятность заболевания для здорового человека меньше, чем прогнозируемая вероятность заболевания для больного человека, и это хорошо: мы хотим, чтобы у действительно здоровых людей прогнозируемый риск заболевания был ниже, чем у реально больных. Итак, мы вознаграждаем модель за хороший прогноз и вносим вклад в AUC модели + 1 / мин.
- Когда Y = X, это означает, что прогнозируемая вероятность заболевания здорового человека равна прогнозируемой вероятности заболевания больного человека, что не удивительно, но и не ужасно, поэтому мы вносим вклад в AUC модели в ( +1/2) / мин.
- Когда Y> X, это означает, что прогнозируемая вероятность заболевания для здорового человека больше, чем прогнозируемая вероятность заболевания для больного человека, что плохо: модель считала, что действительно здоровый человек имеет более высокий риск заболевания, чем действительно больной. Мы не добавляем здесь ничего к AUC модели (+0).
Функция psi (X, Y) также известна как функция Хевисайда (с соглашением о половине максимума).
Дополнительные сведения о чувствительности, специфичности и построении кривой ROC см. В этом посте.
Связь между AUC и статистикой Манна-Уитни
В предыдущем посте я описал AUC следующим образом:
AUROC сообщает вам, может ли ваша модель правильно ранжировать примеры: для модели прогнозирования клинического риска AUROC сообщает вам вероятность того, что случайно выбранный пациент, у которого произошло событие, будет иметь более высокий прогнозируемый балл риска, чем случайно выбранный пациент. кто не участвовал в событии.
Как оказалось, это определение верно, потому что эмпирическая AUC равна U-статистике Манна-Уитни. Цитируя Делонга и др.,
При вычислении по правилу трапеций площадь, попадающая под точки, составляющие эмпирическую кривую ROC, оказалась равной U-статистике Манна-Уитни для сравнения распределений значений из двух выборок. […] Статистика Манна-Уитни оценивает вероятность, тета, что случайно выбранное наблюдение из популяции, представленной C2 [здоровые люди], будет меньше или равно случайно выбранному наблюдению из популяции, представленной C1 [больные люди ].
Если сформулировать то же самое и по-другому, Википедия описывает U-тест Манна-Уитни как:
непараметрическая проверка нулевой гипотезы о том, что с равной вероятностью случайно выбранное значение из одной совокупности будет меньше или больше, чем случайно выбранное значение из второй совокупности.
Таким образом, чтобы резюмировать,
Обратите внимание, что:
Тест Делонга для сравнения AUC двух моделей
Пример настройки
Теперь, когда мы закончили определение эмпирической AUC и всех обозначений, мы можем перейти к описанию того, как тест Делонга определяет, имеет ли одна модель статистически значимо отличную AUC от альтернативной модели.
Вот игрушечный тестовый набор из пяти пациентов с прогнозами от двух моделей. Мы будем использовать этот игрушечный тестовый набор для рабочего примера:
Набор данных включает двух действительно здоровых пациентов и трех действительно больных пациентов, состояние их здоровья которых было определено каким-то недвусмысленным образом, так что мы можем считать это «основной истиной». Столбец для модели A показывает прогнозируемые вероятности заболевания для всех пациентов в соответствии с моделью A. В соответствии с обозначениями, введенными ранее, эти прогнозируемые вероятности представлены в виде Y для здоровых пациентов и X для больных. Столбец для модели B показывает прогнозируемые вероятности заболевания для всех пациентов в соответствии с моделью B.
Обратите внимание, что Модель A - это классификатор с идеальной AUC (которая будет явно продемонстрирована позже), потому что все здоровые пациенты имеют более низкую вероятность заболевания, чем все больные пациенты. Модель B не имеет идеального AUC.
Следуя обозначениям в статьях, общее количество рассматриваемых моделей составляет 1 ‹= r‹ = k, где k = 2 (потому что здесь мы рассматриваем только 2 модели). N = 2 (количество здоровых пациентов) и m = 3 (количество заболевших.)
Цель теста Делонга
Мы хотим знать, что лучше - модель A или модель B с точки зрения AUC, где тета-хет (A) - это AUC модели A, а тета-хет (B) - это AUC модели B. Чтобы ответить на этот вопрос, мы рассчитает показатель z:
Цитируя Sun et al.,
При нулевой гипотезе z можно хорошо аппроксимировать стандартным нормальным распределением. Следовательно, если значение z слишком сильно отклоняется от нуля, например, z ›1,96, разумно считать, что [theta (A)› theta (B) ] с уровнем значимости p ‹0,05.
Другими словами, если z слишком сильно отклоняется от нуля, мы можем сделать вывод, что модель A имеет статистически отличную AUC от модели B с p <0,05.
Чтобы найти показатель z, нам нужно будет вычислить эмпирические AUC, дисперсию V и ковариацию C. В следующих разделах будет показано, как рассчитать эти количества.
(Примечание: использование «z» здесь в «z-оценке» совершенно не связано с использованием «z» в предыдущем обсуждении «z как порога принятия решения».)
Расчет эмпирической AUC для модели A и модели B
Следуя приведенному ранее определению эмпирической AUC, мы рассчитываем эмпирическую AUC для модели A:
Точно так же мы рассчитываем эмпирическую AUC для модели B:
Обратите внимание, что модель A имеет AUC, равную 1,0, потому что она точно оценивает всех больных пациентов как имеющих более высокую вероятность заболевания, чем всех здоровых пациентов. Модель B имеет AUC 2/3, потому что она не дает точного ранжирования всех пациентов.
Структурные компоненты V10 и V01
Следующим шагом, необходимым для теста Делонга, является расчет V10 и V01, которые Sun и др. Называют «структурными компонентами».
V10 и V01 помогут нам найти дисперсию и ковариацию, необходимые для расчета показателя z. V10 и V01 определяются следующим образом:
Напомним, что «r» представляет, какую модель мы рассматриваем, поэтому у нас есть разные расчеты конструктивных компонентов для r = A (для модели A) и r = B (для модели B).
Для нашего небольшого примера набора данных расчеты структурных компонентов для моделей A и B следующие:
Матрицы S10 и S01
Затем мы будем использовать структурные компоненты V10 и V01 в сочетании с нашими эмпирическими AUC, чтобы вычислить матрицы S10 и S01, которые определены следующим образом:
Матрицы S10 и S01 представляют собой матрицы размером k x k, где k - общее количество моделей, которые мы рассматриваем. Поскольку мы рассматриваем только две модели (модель A и модель B), каждая матрица будет 2 x 2.
Вот вычисления для записей в матрице S10:
Оказывается, для матрицы S10 все элементы равны нулю, кроме записи (B, B).
Вот расчеты для записей в матрице S01:
Матрица S01 заканчивается всеми нулевыми элементами для этого конкретного примера.
Расчет дисперсии и ковариации
Теперь мы будем использовать S10 и S01, чтобы получить матрицу S, где матрица S содержит дисперсию и ковариацию, которые нам нужны, чтобы получить нашу оценку z для теста Делонга. Все, что нам нужно сделать, чтобы получить S, - это сумма S10 и S01, взвешенная на основе 1 / m = 3 (количество больных) и 1 / n = 2 (количество здоровых людей) соответственно:
Как видно из приведенного выше расчета, наша окончательная матрица S содержит дисперсию эмпирической AUC для модели A, дисперсию эмпирической AUC для модели B и ковариацию AUC для моделей A и B. Это ключевые величины. что нам нужно, чтобы получить нашу оценку z.
Расчет Z-балла
Чтобы вычислить показатель z, мы подставляем только что вычисленные значения эмпирических значений AUC, дисперсии и ковариации:
Использование показателя Z для получения значения P
Наш расчетный показатель z равен 1. Как мы получаем из этого p-значение?
Мы проводим двусторонний тест, потому что пытаемся утверждать, что AUC модели A отличается от (не равно) AUC модели B.
Мы можем использовать справочную таблицу для двусторонних значений P для статистики z. В таблице под десятыми долями (по вертикали) мы помещаем 1,0, а под сотыми (по горизонтали) мы локально 0,00, потому что наш Z-Score равен 1,00. Запись в таблице в этой позиции - 0,31731, что является нашим p-значением.
В качестве альтернативы, чтобы не искать в большой таблице чисел, мы можем использовать онлайн-калькулятор, подобный этому. Нам нужно выбрать двустороннюю гипотезу и ввести в нашу z оценку 1, которая дает p-значение 0,317311 (в соответствии с результатом, полученным нами из справочной таблицы).
Расчет теста Делонга в R
Ручные вычисления подходят для крошечных наборов данных о игрушках, но для любого набора реальных данных мы захотим использовать программное обеспечение для вычисления теста Делонга. Один из вариантов - использовать пакет pROC в R.
Используя пакет pROC, мы сначала создаем две кривые ROC для сравнения, используя функцию roc. Функция roc может быть вызвана для ответа (основная истина) и предсказателя (предсказанные вероятности) как roc (отклик, предсказатель).
Для наших примеров моделей A и B у нас есть:
- ответ ‹-c (0,0,1,1,1)
- модель ‹-c (0.1,0.2,0.6,0.7,0.8)
- модельb ‹-c (0.3,0.6,0.2,0.7,0.9)
- roca ‹- roc (ответ, модель)
- rocb ‹-roc (ответ, модельb)
Теперь, когда мы построили наши кривые ROC, мы можем применить функцию pROC roc.test для сравнения AUC двух кривых ROC.
Выход:
Тест Делонга для двух коррелированных кривых ROC
данные: roca и rocb
Z = 1, p-value = 0,3173
альтернативная гипотеза: истинная разница в AUC не равна 0
примерные оценки:
AUC roc1 AUC roc2
1.0000000 0.6666667
Это соответствует результату, который мы получили вручную выше.
Еще один пример теста Делонга на языке R
Вот еще один пример теста Делонга на языке R, показывающий, как результат отличается при использовании разных истинных значений и предсказанных вероятностей:
ответ ‹-c (0,0,0,0,0,0,1,1,1,1,1,1,1)
modela‹ -c (0,1,0.2,0.05,0.3,0.1, 0.6,0.6,0.7,0.8,0.99,0.8,0.67,0.5)
modelb ‹-c (0.3,0.6,0.2,0.1,0.1,0.9,0.23,0.7,0.9,0.4,0.77,0.3,0.89 )
roca ‹- roc (ответ, модель)
rocb‹ -roc (ответ, модельb)
roc.test (roca, rocb, method = c («delong»))
Тест Делонга для двух коррелированных кривых ROC
данные: roca и rocb
Z = 1,672, p-значение = 0,09453
альтернативная гипотеза: истинная разница в AUC не равна 0
примерные оценки:
AUC roc1 AUC roc2
0,9642857 0,7380952
Резюме
- Тест ДеЛонга можно использовать, чтобы показать, что AUC двух моделей статистически значимо различаются.
- Кривая ROC суммирует чувствительность и (1 - специфичность) при различных порогах принятия решения. AUC - это площадь под кривой ROC.
- Эмпирическая AUC рассчитывается с использованием правила трапеций на кривой ROC.
- Тест ДеЛонга требует расчета эмпирических значений AUC, дисперсии AUC и ковариации AUC.
- Реализация R в пакете pROC позволяет быстро рассчитать тест Делонга.
Об избранном изображении
На изображении изображен египетский стервятник. Оригинальное фото стервятника было сделано Карлосом Дельгадо CC-BY-SA и доступно в Википедии здесь. Фотография, показанная в этом посте, была изменена и теперь включает графики AUC и уравнения, относящиеся к тесту Делонга. Измененная фотография распространяется по той же лицензии, что и исходная фотография.
Первоначально опубликовано на http://glassboxmedicine.com 4 февраля 2020 г.