ROC- und MultiROC-Analyse: Wie berechnet man den optimalen Schnittpunkt?


14

Ich versuche zu verstehen, wie der optimale Schnittpunkt für eine ROC-Kurve berechnet wird (der Wert, bei dem die Empfindlichkeit und Spezifität maximiert werden). Ich verwende den Datensatz aSAHaus dem Paket pROC.

Die outcomeVariable könnte durch zwei unabhängige Variablen erklärt werden: s100bund ndka. Unter Verwendung der Syntax des EpiPakets habe ich zwei Modelle erstellt:

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

Die Ausgabe wird in den folgenden zwei Diagrammen dargestellt:

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

In der ersten Grafik ( s100b) gibt die Funktion an, dass der optimale Schnittpunkt bei dem entsprechenden Wert lokalisiert ist lr.eta=0.304. In der zweiten Grafik ( ndka) wird der optimale Schnittpunkt auf den entsprechenden Wert von lr.eta=0.335(was ist die Bedeutung von lr.eta) lokalisiert . Meine erste Frage ist:

  • Was ist die Entsprechung s100bund die ndkaWerte für die lr.etaangegebenen Werte (was ist der optimale Schnittpunkt in Bezug auf s100bund ndka)?

ZWEITE FRAGE:

Angenommen, ich erstelle ein Modell, das beide Variablen berücksichtigt:

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

Die erhaltene Grafik ist:

Bildbeschreibung hier eingeben

Ich möchte wissen, was die Werte von ndkaAND sind, s100bbei denen Sensibilität und Spezifität durch die Funktion maximiert werden. Mit anderen Worten: Was sind die Werte von ndkaund s100bbei denen wir Se = 68,3% und Sp = 76,4% haben (Werte abgeleitet von der Grafik)?

Ich nehme an, diese zweite Frage bezieht sich auf die MultiROC-Analyse, aber die Dokumentation des EpiPakets erklärt nicht, wie der optimale Schnittpunkt für beide im Modell verwendeten Variablen berechnet wird.

Meine Frage scheint dieser Frage von reasearchGate sehr ähnlich zu sein. Kurz gesagt:

Die Bestimmung des Cutoff-Scores, der einen besseren Kompromiss zwischen Sensitivität und Spezifität einer Kennzahl darstellt, ist unkompliziert. Bei der multivariaten ROC-Kurvenanalyse habe ich jedoch festgestellt, dass sich die meisten Forscher auf Algorithmen konzentriert haben, um die Gesamtgenauigkeit einer linearen Kombination mehrerer Indikatoren (Variablen) in Bezug auf die AUC zu bestimmen. [...]

Bei diesen Methoden wird jedoch nicht erwähnt, wie eine Kombination von Cut-Off-Scores für die mehreren Indikatoren ermittelt werden soll, die die beste diagnostische Genauigkeit bietet.

Eine mögliche Lösung besteht darin , dass durch Shultz in seinem vorgeschlagenen Papier , sondern aus diesem Artikel Ich bin zu verstehen , nicht in der Lage , wie man berechnet optimalen Trennwert für eine multivariate ROC - Kurve.

Vielleicht ist die Lösung aus dem EpiPaket nicht ideal, so dass alle anderen hilfreichen Links geschätzt werden.

Antworten:


9

Um auf Frank Harrells Antwort einzugehen: Was zum Teufel? Epi , passte Paket zu einer logistischen Regression und erstellte eine ROC-Kurve mit Ergebnisvorhersagen der folgenden Form:

ÖutcÖme=11+e-(β0+β1s100b+β2ndkein)

β0β1β2 (ndka) = 0.031. Da Sie möchten, dass Ihr vorhergesagtes Ergebnis 0,312 beträgt (der "optimale" Grenzwert), können Sie dies wie folgt ersetzen (ich hoffe, ich habe hier keine Fehler eingeführt):

0.312=11+e(2.379+5.334s100b+0.031ndka)
1.588214=5.334s100b+0.031ndka
s100b=1.5882140.031ndka5,334

Jedes Paar von (s100b, ndka) Werten, die diese Gleichheit erfüllen, ist "optimal". Pech für Sie, es gibt eine Unendlichkeit dieser Paare. Zum Beispiel (0,29, 1), (0, 51,2) usw. Schlimmer noch, die meisten ergeben keinen Sinn. Was bedeutet das Paar (-580, 10000)? Nichts!

Mit anderen Worten, Sie können keine Grenzwerte für die Eingaben festlegen - Sie müssen dies für die Ausgaben tun, und das ist der springende Punkt des Modells.


8

Y^


Ich verstehe das Problem, das Sie erklärt haben. Ich frage mich übrigens, ob es eine Methode gibt, um Grenzwerte für zwei (oder mehr) Tests parallel zu berechnen, um Sens und Spec für die Identifizierung eines bestimmten Status (Krankheit / Ergebnis / etc.) Zu erhöhen. ). Danke im Voraus.
Tommaso

1
Da der "optimale" Schnittpunkt für x1 vom stetigen Wert von x2 abhängen würde und der "optimale" Schnittpunkt für x2 vom stetigen Wert von x1 abhängen würde, gibt es keine Möglichkeit, dies zu tun und genügend Informationen zu bewahren, um es nicht zu einem zu machen Katastrophe.
Frank Harrell

Gibt es also keine Möglichkeit, Grenzwerte für zwei oder mehr Tests zu finden, um die Empfindlichkeit und Spezifität zu maximieren? Natürlich eine Methode, die keine MultiROC-Analyse ist. Danke noch einmal.
Tommaso

2
Es ist einfach nicht angebracht, Abschaltungen an Eingängen zu suchen. Optimale Entscheidungen werden ohne Cutoffs oder, falls erforderlich, vor dem Entscheidungszeitpunkt getroffen, indem Cutoffs für die vorhergesagten Wahrscheinlichkeiten vorgenommen werden. Es werden Dienstprogramme (Verlust / Kosten) benötigt, um den optimalen Grenzwert für das vorhergesagte Risiko zu ermitteln.
Frank Harrell

1
ROC-Kurven haben nichts damit zu tun, dieses Ziel zu erreichen. Um dies zu erreichen, müssen Sie SCr mit dem Ergebnis in Beziehung setzen oder einfach die Wahrscheinlichkeit berechnen, mit der eine extremere SCr auftritt als in einer normalen Population.
Frank Harrell

3

lr.etaη ein häufig verwendetes Symbol dafür ist. oder, falls nicht, die Wahrscheinlichkeit aus dem angepassten Modell. (Es stellt sich heraus, dass es das letztere ist: siehe /programming//a/38532555/1864816 .) Sie können den Code eincheckenROC . In jedem Fall können Sie es aus den Modellkoeffizienten für eine beliebige Anzahl von Prädiktoren berechnen. (Beachten Sie, dass dies nicht für jeden Prädiktor einzeln gilt, sondern für alle Prädiktoren.)

In Ihrem ersten Satz sollte (wie aus den Grafiken hervorgeht) angegeben sein, dass Sie nach einer Stelle suchen, an der die Summe aus Sensitivität und Spezifität maximiert ist. Aber warum ist das "optimal"? Hat ein falsch positives Ergebnis den gleichen Stellenwert wie ein falsch negatives Ergebnis? Sehen Sie hier .


Es war richtig, ich kann den Grenzwert aus dem angepassten Modell (für eine unabhängige Variable) oder alternativ mit der coordsFunktion aus dem pROCPaket berechnen , wie ich später fand. Der optimale Abschaltpunkt war in meinem Fall die beste Kombination von Sens und Spec; Ich habe die verknüpfte Antwort gelesen, aber es interessiert mich (zumindest für den Moment) nicht, ob falsch positive oder falsch negative Ergebnisse vorliegen, da ich (wenn ich das richtig verstanden habe) eine Gruppe gesammelter Daten für Forschungszwecke analysiere.
Tommaso

Was kümmert es dich dann? Was machen Sie mit dem Cut-Off, bei dem keine Konsequenzen berücksichtigt werden müssen? Und was ist es dann ‚optimale‘ oder ‚beste‘ für ?
Scortchi

Tommaso definierte "optimal" als "den Wert, bei dem die Sensitivität und Spezifität maximiert werden" (unter Angabe des ersten Satzes der Frage), was implizit "max" (Sensitivität + Spezifität) bedeutet. Ob es sinnvoll ist oder nicht (und wenn ich lese, ist es ihm egal, ich bin geneigt zu denken, dass es nicht so ist), ist eine andere Frage.
Calimo

1
Dieser Ansatz steht im Widerspruch zur Entscheidungsfindung.
Frank Harrell

1
lr.etaE[Y.ich|Xich]=11+e-(β0+β1×s100b). Überprüfen Sie dies aus wenn Sie eine Minute Zeit haben.
Antoni Parellada

0

Sie können den Schwellenwert finden, bei dem die wahre positive Rate (tpr) die wahre negative Rate (tnr) schneidet. Dies ist der Punkt, bei dem die Summe der falschen positiven und falschen negativen Werte ein Minimum ist.


Eine Antwort mit einem Satz wird für unser Format normalerweise als etwas kurz angesehen. Können Sie Ihre Antwort um eine kurze Erklärung erweitern, wie Sie wissen, dass dort das Minimum sein muss?
Glen_b

1
Eine solche Strategie steht im Widerspruch zu einer optimalen Entscheidungsfindung.
Frank Harrell
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.