Аналіз ROC та multiROC: як розрахувати оптимальну точку вирізу?


14

Я намагаюся зрозуміти, як обчислити оптимальну точку зрізу для кривої ROC (значення, при якому чутливість та специфічність максимізовані). Я використовую набір даних aSAHіз пакету pROC.

outcomeЗмінна може бути пояснено двома незалежними змінними: s100bі ndka. Використовуючи синтаксис Epiпакета, я створив дві моделі:

library(pROC)
library(Epi)
ROC(form=outcome~s100b, data=aSAH)
ROC(form=outcome~ndka, data=aSAH)

Результат проілюстрований на наступних двох графіках:

введіть тут опис зображення введіть тут опис зображення

У першому графіку ( s100b) функція говорить про те, що оптимальна точка відсікання локалізується на значенні, що відповідає lr.eta=0.304. У другому графіку ( ndka) оптимальна точка зрізу локалізується за відповідним значенням lr.eta=0.335(яке значення має lr.eta). Перше моє запитання:

  • що таке відповідні s100bта ndkaзначення для вказаних lr.etaзначень (яка оптимальна точка відсікання з точки зору s100bта ndka)?

ДРУГЕ ЗАПИТАННЯ:

Тепер припустимо, що я створюю модель з урахуванням обох змінних:

ROC(form=outcome~ndka+s100b, data=aSAH)

Отриманий графік:

введіть тут опис зображення

Хочу знати, які значення ndkaІ, s100bпри яких чутливість та специфічність максимально функціонують. Іншими словами: які значення ndkaта s100bпри яких у нас Se = 68,3% та Sp = 76,4% (значення, отримані з графіка)?

Я припускаю, що це друге питання пов'язане з аналізом multiROC, але документація Epiпакету не пояснює, як обчислити оптимальну точку вирізу для обох змінних, що використовуються в моделі.

Моє запитання виглядає дуже схожим на це запитання від reasearchGate , в якому коротко сказано:

Визначення граничного показника, який представляє кращу взаємодію між чутливістю та специфічністю заходу, є простим. Однак для багатовимірного аналізу кривих ROC я зазначив, що більшість дослідників зосередилися на алгоритмах для визначення загальної точності лінійної комбінації декількох показників (змінних) з точки зору AUC. [...]

Однак у цих методах не йдеться про те, як визначити комбінацію показників обрізання, пов'язаних з декількома показниками, що дає найкращу діагностичну точність.

Можливе рішення - це те, що запропонував Шульц у своїй роботі , але з цієї статті я не в змозі зрозуміти, як обчислити оптимальну точку зрізу для багатоваріантної кривої ROC.

Можливо, рішення з Epiпакету не є ідеальним, тому будь-які інші корисні посилання будуть вдячні.

Відповіді:


9

Щоб детальніше ознайомитись з відповіддю Френка Гаррелла, що Epiпакет зробив, щоб він відповідав логістичній регресії, і склав криву ROC з прогнозами результатів наступної форми:

outcome=11+e(β0+β1s100b+β2ndka)

У вашому випадку встановлені значення: (перехоплення) = -2,379, beta_1 (s100b) = 5,334 і (ndka) = 0,031. Оскільки ви хочете, щоб ваш прогнозований результат був 0,312 ("оптимальне" відсічення), ви можете замінити це таким чином (сподіваюся, я тут не ввів помилок):β0β1β2

1,588214=5,334з100б+0,031пдки100б=1,588214-0,031пдк

0.312=11+e(2.379+5.334s100b+0.031ndka)
1.588214=5.334s100b+0.031ndka
або:
s100b=1.5882140.031ndka5.334

Будь-яка пара значень (s100b, ndka), яка задовольняє цій рівності, є "оптимальною". Невдача вам, є безмежність цих пар. Наприклад, (0,29, 1), (0, 51,2) тощо. Навіть гірше, більшість з них не має сенсу. Що означає пара (-580, 10000)? Нічого!

Іншими словами, ви не можете встановити відсічки на входах - ви повинні робити це на виходах, і в цьому вся суть моделі.


8

Не доцільно шукати обмеження на вхідних змінних, а лише на вихідних даних (наприклад, передбачуваний ризик з багатовимірної моделі). Це тому, що обрізання для x1 буде залежати від постійного значення x2. А для пошуку оптимальних рішень потрібна точка відсіку на , вимагає функції корисності / втрат / витрат, і це не має нічого спільного з кривими ROC.Y^


Я розумію проблему, яку ви пояснили. Мені цікаво, до речі, чи існує параметр паралельного обчислення точок відсічення для двох (або більше) тестів, щоб збільшити Сенс і Спец ідентифікації конкретного статусу (захворювання / результат / тощо). ). Заздалегідь спасибі.
Томмазо

1
Оскільки "оптимальна" точка вирізання для x1 буде залежати від постійного значення x2, а "оптимальна" точка вирізування для x2 залежатиме від постійного значення x1, немає ніякого способу зробити це і зберегти достатню кількість інформації, щоб вона не була катастрофа.
Френк Харрелл

Тож немає способу знайти точки відсічення для двох або більше тестів, щоб максимально підвищити чутливість та специфічність? Звичайно метод, який не є аналізом мультирокулярного аналізу. Знову дякую.
Томмазо

2
Просто не доцільно шукати відсічки на входах. Оптимальні рішення приймаються з використанням взагалі без обмежень або, якщо це потрібно до часу прийняття рішення, шляхом відсікання за прогнозованими ймовірностями. Комунальні послуги (збиток / вартість) необхідні для вирішення оптимального скорочення прогнозованого ризику.
Френк Харрелл

1
Криві ROC не мають нічого спільного з досягненням цієї мети. Для цього вам потрібно буде пов'язати SCr з результатом або просто обчислити ймовірність отримання більш екстремальної SCr, ніж у нормальної популяції.
Френк Харрелл

3

Я б здогадався, lr.etaце лінійний предиктор - logit - з пристосованої моделі, оскільки - це загальновживаний символ; або, якщо ні, ймовірність від встановленої моделі. (Виявляється, це останнє: див. Https://stackoverflow.com/a/38532555/1864816 .) Код можна перевірити . У будь-якому випадку ви зможете обчислити її з модельних коефіцієнтів для будь-якої кількості прогнозів. (Зверніть увагу, що це буде не обмеженням для кожного прогноктора окремо, а функцією всіх прогнозів.)ηROC

У вашому першому реченні слід сказати (як свідчать графіки), що ви шукаєте, де сума чутливості та специфіки є максимальною. Але чому це "оптимально"? Чи має помилковий позитивний результат такий же імпорт, як і хибний негативний результат? Дивіться тут .


Це було правильно, я можу обчислити точку відсічення від пристосованої моделі (для однієї незалежної змінної) або альтернативно, використовуючи coordsфункцію з pROCпакету, як я виявив пізніше. Оптимальною точкою відсічення було, в моєму випадку, найкраще поєднання Sens та Spec; Я читаю пов'язану відповідь, але мені не байдуже (принаймні поки що) помилкові позитивні та хибнонегативні результати, тому що (якщо я добре зрозумів) я аналізую групу зібраних даних для дослідження.
Томмазо

Про що ти тоді дбаєш? Що ви робите зі скороченням, яке не потребує врахування наслідків? А то , що це «оптимальне» або «краще» для ?
Scortchi

Томмазо визначав "оптимальне" як "значення, при якому максимальна чутливість і специфічність" (цитуючи перше речення питання), неявно означає max (чутливість + специфічність). Це має сенс чи ні (і коли я читаю, що йому все одно, я схильний думати, що це не так) - інше питання.
Калімо

1
Цей підхід суперечить прийняттю рішень.
Френк Харрелл

1
Я думаю, що якщо я правильно читаю вашу публікацію, lr.etaце саме другий варіант, який ви згадуєте: ймовірність від встановленої моделі: . Перевірте це, якщо у вас є хвилина. E[Yi|Xi]=11+e(β0+β1×s100b)
Антоні Пареллада

0

Ви можете знайти поріг, при якому справжня позитивна швидкість (tpr) перетинає справжню негативну швидкість (tnr). Це буде точка, при якій сума помилкових позитивних і хибних негативів є мінімальним.


Відповідь в одному реченні, як правило, вважається невеликим для нашого формату. Чи можете ви розширити свою відповідь, щоб включити коротке пояснення того, як ви знаєте, що тут має бути мінімум?
Glen_b -Встановіть Моніку

1
Така стратегія летить в умовах оптимального прийняття рішень.
Френк Харрелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.