Ein Konfidenzband für ROC-Kurven mit SAS Steffen Witte und Katrin Jensen Universität Heidelberg Abteilung Medizinische Biometrie KSFE 2003, Seite 1 Publikationen mit und über ROC in PubMed KSFE 2003, Seite 2 Einführung: Diagnostik • Testsituation: Überprüfung einer (binären) Größe mit einer anderen (mind. ordinalen) Größe • Beispiel 1: Krankheitsstatus (gesund/krank) Testverfahren anhand eines Laborwertes • Beispiel 2: retrospektive Kreditwürdigkeit (gegeben=Darlehen zurückgezahlt/nicht gegeben) Kreditwürdigkeitsprüfung anhand eines multiplen Scores • Beispiel 3: Fehler in einem Material (nicht)hinzugefügt Scanverfahren zum Auffinden von Materialfehlern KSFE 2003, Seite 3 cutoff Sens und Spec 3 Dichtefunktionen von Normalverteilungen 0,006 Gesunde (K-) 0,005 cutoff 0,004 Spez 0,003 Leberfibrosen (K+) 0,002 Leberzirrhosen 0,001 Sens 0,000 KSFE 2003, Seite 4 Schätzung der Sensitivität und Spezifität • K+ krank, K- gesund • T+ positiver Test (Testwert>cutoff), T- negativer Test K+ K- T+ 19 5 24 T- 6 30 36 25 35 60 • Sensitivität = Wahrscheinlichkeit einen Kranken mit dem Test auch als krank zu erkennen = P(T+ | K+) 19/25 • Spezifität = Wahrscheinlichkeit einen Gesunden mit dem Test auch als gesund zu erkennen = P(T- | K-) 30/35 KSFE 2003, Seite 5 ROC = reciever operating characteristic • ROC-Kurve: graphische Darstellung von Spezifität (x-Achse) und Sensitivität (y-Achse) für alle möglichen cutoffs. • Nichtparametrischer Schätzer: – jeder Wert des Testergebnisses ist ein möglicher cutoff – berechne jeweils Sens und Spec (%rocn – KSFE2002) – ggf. mit mehreren Tests (die zu vergleichen sind) – graph. Darstellung: proc gplot (%rocplot – KSFE2002) KSFE 2003, Seite 6 Beispiel ROC-Kurve (N=190) KSFE 2003, Seite 7 etwas Theorie zu Konfidenzbändern • Punktweise Konfidenzintervalle P(LCL(c) Sens(c) UCL(c)) = 95% für alle cutoffs • Punktweise Konfidenzbänder (Niveau wird nur für eine bestimmte Spezifität eingehalten – oder für einen bestimmten Schwellenwert) P(LCL(Sp) Sens(Sp) UCL(Sp)) = 95% für alle Sp • Simultane Konfidenzbänder (Vertrauensbereiche für alle Sensitivitäten simultan über einem Spezifitätsintervall) P(LCL(Sp) Sens(Sp) UCL(Sp) für alle Sp) = 95% KSFE 2003, Seite 8 etwas Theorie zu Konfidenzbändern • Punktweise Konfidenzintervalle exakte Konfidenzintervalle basierend auf der Binomialverteilung (Daly L, 1992) – %cibinomexact • Punktweise Konfidenzbänder Methode nach Hilgers (Hilgers RA, 1991) – %roccih Methode nach Schäfer (Schäfer H, 1994) • Simultane Konfidenzbänder Methoden nach Campbell (Campbell G, 1994) Methode nach Jensen (Jensen K, 2000) KSFE 2003, Seite 9 Two-stage confidence bounds • Betrachte einen beliebigen cutoff; Se, Sp schon geschätzt 1. Berechne KI [Xp, Xp] für xp = cutoff der Spezifität p liefert: Verwendung der K- Daten (nur der Gesunden) mittels empirischer Quantilfunktion 2. Finde die Sensitivitäten für die obigen cutoffs: Sens(Xp), Sens(Xp): Verwendung der K+ Daten (nur die Kranken) • verwende diese für die Berechnung des KIs für die ROC: z.B. untere Grenze: Sens(Xp) – z * sqrt(Sens(Xp) * (1-Sens(Xp)) / n) KSFE 2003, Seite 10 SAS-Umsetzung: SQL • 1. Schritt: Finde den cutoff, so dass dort die Spec. minimal, aber nicht kleiner als die KI-Grenze von Spec. (_plzphi) proc sql; create table __ci4 as select b.*, a.&cutoff. as _xpl, a.&spec. as _tmpsl from __ci3 as b left join __spec as a on 1 where (a.&spec. ge b._plzphi) group by b.&cutoff. having _tmpsl = min(_tmpsl); [...] quit; KSFE 2003, Seite 11 Beispiel 1: Aufruf des SAS-Macros %rocn %rocn(inset = lnldh, event = diag, tests = lnldh, outset2 = lnldh2); • %rocn verwendet: %roc1, %pv, %cibinomexact, %roccih • %rocn liefert folgende output-Variablen: _test, _fn, _cn, _cp, _fp, _n, _negative, _positive, _events, _nonevents, _cutoff1, _cutoff2, _cutoff1_label, _cutoff2_label, _1mspec, _youden, _sens, _spec, _lclh, _uclh, _prev, _npv, _ppv, _hits, _acc, (_sens _spec _acc _ppv _npv)*(_exlcl _exucl) KSFE 2003, Seite 12 ROC für ln(LDH) filename ausgabe 'ldh-line1.pdf'; %rocplot( gfile = ausgabe, gdev = pdf, citype = line, inset = lnldh2, by = _test, lcl=, ucl=); KSFE 2003, Seite 13 ohne Konfidenzband (ln(LDH)) KSFE 2003, Seite 14 mit punktweisen KI (ln(LDH)) filename ausgabe 'ldh-line2.pdf'; %rocplot( gfile = ausgabe, gdev = pdf, citype = line, lvalue = "CI pointwise for sens.", inset = lnldh2, by = _test, lcl=_sens_exlcl, ucl=_sens_exucl); KSFE 2003, Seite 15 mit punktweisen KI (ln(LDH)) KSFE 2003, Seite 16 mit Konfidenzband (ln(LDH)) filename ausgabe 'ldh-line3.pdf'; %rocplot( gfile = ausgabe, gdev = pdf, citype = line, lvalue = "CI using Hilgers method", inset = lnldh2, by = _test, lcl=_lclh, ucl=_uclh); KSFE 2003, Seite 17 Beispiel: mit Konfidenzband (ln(LDH)) KSFE 2003, Seite 18 Beispiel 2: Aufruf der SAS-Macros %rocn(inset event = tests = outset2 = = random, diag, RAN1 RAN2 RAN3 RAN4, random2 anno); filename ausgabe 'ran-line4.pdf'; %rocplot( gfile = ausgabe, gdev = pdf, citype = line, inset = random2(where = (_test in ("RAN1","RAN2","RAN3","RAN4"))), by = _test, lcl = , ucl = ); KSFE 2003, Seite 19 4 ROC (random) KSFE 2003, Seite 20 1 ROC, citype=area, lcl=_lclh, ucl=_uclh KSFE 2003, Seite 21 2 ROC, citype=area , lcl=_lclh, ucl=_uclh KSFE 2003, Seite 22 3 ROC, citype=area , lcl=_lclh, ucl=_uclh KSFE 2003, Seite 23 4 ROC, citype=area , lcl=_lclh, ucl=_uclh KSFE 2003, Seite 24 Diskussion • ROC-Kurven werden häufig angewandt. • Konfidenzbänder sind sinnvoller als punktweise KI. • Berechnung von Punktschätzern und einem Konfidenzband (Hilgers Methode) ist mit %rocn möglich. • Die graphische Darstellung kann mit proc gplot und der gesamten Flexibilität von SAS/GRAPH gemacht werden. • %rocplot bietet die Möglichkeit Standardgraphiken zu erstellen (siehe auch pdf‘s). • Ausblick: Die Umsetzung in ein SAS-Macro von weiteren (effizienteren und simultanen) KonfidenzBändern wäre sinnvoll. KSFE 2003, Seite 25 Literatur • Daly L (1992). Simple SAS macro for the calculation of exact binomial and Poisson confidence limits. Comput. Biol. Med., 22:351-361 • Hilgers RA (1991). Distribution-free confidence bounds for ROC curves. Meth. of Inform. in Med. 30:96-101 • Schäfer H (1994). Efficient confidence bounds for ROC curves. Statistics in Medicine 13:1551-1561 • Campbell G (1994). Advances in statistical methodology for the evaluation of diagnostic and laboratory tests. Statistics in Medicine 13: 499-508 • Jensen K, Müller HH, Schäfer H (2000). Regional confidence bands for ROC curves. Statistics in Medicine 19:493-509 KSFE 2003, Seite 26 Vielen Dank Diese Präsentation steht unter den „technical reports“ im Netz: http://www.biometrie.uni-heidelberg.de Die SAS-Programme sind erhältlich bei [email protected] KSFE 2003, Seite 27