Аналіз 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.588214−0.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.