आर में आरओसी वक्र का उपयोग करके सर्वश्रेष्ठ कटऑफ बिंदु और उसके आत्मविश्वास अंतराल का निर्धारण कैसे करें?


51

मेरे पास एक परीक्षण का डेटा है जिसे सामान्य और ट्यूमर कोशिकाओं को भेद करने के लिए इस्तेमाल किया जा सकता है। आरओसी वक्र के अनुसार यह इस उद्देश्य के लिए अच्छा लगता है (वक्र के तहत क्षेत्र 0.9 है):

आरओसी वक्र

मेरे प्रश्न हैं:

  1. इस परीक्षण और इसके आत्मविश्वास अंतराल के लिए कटऑफ बिंदु का निर्धारण कैसे करें जहां रीडिंग को अस्पष्ट माना जाना चाहिए?
  2. इसका उपयोग करने का सबसे अच्छा तरीका क्या है (उपयोग करना ggplot2)?

ग्राफ़ का उपयोग ROCRऔर ggplot2पैकेज प्रदान किया गया है:

#install.packages("ggplot2","ROCR","verification") #if not installed yet
library("ggplot2")
library("ROCR")
library("verification")
d <-read.csv2("data.csv", sep=";")
pred <- with(d,prediction(x,test))
perf <- performance(pred,"tpr", "fpr")
auc <-performance(pred, measure = "auc")@y.values[[1]]
rd <- data.frame(x=perf@x.values[[1]],y=perf@y.values[[1]])
p <- ggplot(rd,aes(x=x,y=y)) + geom_path(size=1)
p <- p + geom_segment(aes(x=0,y=0,xend=1,yend=1),colour="black",linetype= 2)
p <- p + geom_text(aes(x=1, y= 0, hjust=1, vjust=0, label=paste(sep = "", "AUC = ",round(auc,3) )),colour="black",size=4)
p <- p + scale_x_continuous(name= "False positive rate")
p <- p + scale_y_continuous(name= "True positive rate")
p <- p + opts(
            axis.text.x = theme_text(size = 10),
            axis.text.y = theme_text(size = 10),
            axis.title.x = theme_text(size = 12,face = "italic"),
            axis.title.y = theme_text(size = 12,face = "italic",angle=90),
            legend.position = "none",
            legend.title = theme_blank(),
            panel.background = theme_blank(),
            panel.grid.minor = theme_blank(), 
            panel.grid.major = theme_line(colour='grey'),
            plot.background = theme_blank()
            )
p

data.csv में निम्नलिखित डेटा शामिल हैं:

x;group;order;test
56;Tumor;1;1
55;Tumor;1;1
52;Tumor;1;1
60;Tumor;1;1
54;Tumor;1;1
43;Tumor;1;1
52;Tumor;1;1
57;Tumor;1;1
50;Tumor;1;1
34;Tumor;1;1
24;Normal;2;0
34;Normal;2;0
22;Normal;2;0
32;Normal;2;0
25;Normal;2;0
23;Normal;2;0
23;Normal;2;0
19;Normal;2;0
56;Normal;2;0
44;Normal;2;0

जवाबों:


30

उन सभी का धन्यवाद जिन्होंने इस प्रश्न को स्वीकार किया। मैं मानता हूं कि कोई एक सही उत्तर नहीं हो सकता है और मानदंड उन उद्देश्यों पर निर्भर करते हैं जो कुछ नैदानिक ​​परीक्षण के पीछे खड़े होते हैं।

अंत में मुझे इस तरह के विश्लेषण में कटऑफ पॉइंट खोजने के लिए समर्पित एक आर पैकेज ऑप्टिमलक्यूटप्वाइंट मिला था । वास्तव में कटऑफ पॉइंट निर्धारित करने के कई तरीके हैं।

  • "सीबी" (लागत-लाभ विधि);
  • "एमसीटी" (विविधीकरण मूल्य अवधि को कम करता है);
  • "MinValueSp" (विशिष्टता के लिए न्यूनतम मूल्य सेट);
  • "MinValueSe" (संवेदनशीलता के लिए एक न्यूनतम मूल्य सेट);
  • "रेंजस्प" (विशिष्टता के लिए निर्धारित मूल्यों की एक सीमा);
  • "रेंजसे" (संवेदनशीलता के लिए निर्धारित मूल्यों की एक श्रृंखला);
  • "मान" (विशिष्टता के लिए एक मूल्य सेट);
  • "ValueSe" (संवेदनशीलता के लिए एक मूल्य सेट);
  • "MinValueSpSe" (विशिष्टता और संवेदनशीलता के लिए न्यूनतम मूल्य सेट);
  • "मैक्सस्प" (विशिष्टता को अधिकतम करता है);
  • "मैक्ससी" (संवेदनशीलता को अधिकतम करता है);
  • "मैक्सस्पेश" (संवेदनशीलता और विशिष्टता को एक साथ अधिकतम करता है);
  • "मैक्स-समस्प्स" (संवेदनशीलता और विशिष्टता के योग को अधिकतम करता है);
  • "मैक्सप्रोडस्पसे" (संवेदनशीलता और विशिष्टता के उत्पाद को अधिकतम करता है);
  • "ROC01" (ROC भूखंड और बिंदु (0,1) के बीच की दूरी को कम करता है);
  • "SpEqualSe" (संवेदनशीलता = विशिष्टता);
  • "यूडन" (Youden Index);
  • "अधिकतम क्षमता" (दक्षता या सटीकता को अधिकतम करता है);
  • "मिनिमैक्स" (सबसे लगातार त्रुटि को कम करता है);
  • "एयूसी" (एयूसी का एक कार्य है जो समसामयिकी को अधिकतम करता है);
  • "मैक्सडोर" (डायग्नोस्टिक ऑड्स रेशियो को अधिकतम करता है);
  • "मैक्सप्पा" (कप्पा इंडेक्स को अधिकतम करता है);
  • "मैक्सअक्यूरेसी" (सटीकता क्षेत्र को अधिकतम करता है);
  • "MinErrorRate" (त्रुटि दर को कम करता है);
  • "MinValueNPV" (नकारात्मक भविष्य कहनेवाला मूल्य के लिए एक न्यूनतम मूल्य सेट);
  • "MinValuePPV" (सकारात्मक भविष्य कहनेवाला मूल्य के लिए एक न्यूनतम मूल्य सेट);
  • "MinValueNPVPPV" (प्रिडिक्टिव वैल्यू के लिए न्यूनतम मूल्य सेट);
  • "PROC01" (PROC प्लॉट और बिंदु (0,1) के बीच की दूरी को कम करता है);
  • "NPVEqualPPV" (नकारात्मक भविष्य कहनेवाला मूल्य = सकारात्मक भविष्य कहनेवाला मूल्य);
  • "ValueDLR.Negative" (नकारात्मक नैदानिक ​​संभावना के अनुपात के लिए एक मूल्य सेट);
  • "ValueDLR.Positive" (सकारात्मक नैदानिक ​​संभावना अनुपात के लिए एक मूल्य सेट);
  • "मिनपवल्यू" (सांख्यिकीय ची-चुकता परीक्षण से जुड़े पी-मूल्य को कम करता है जो मार्कर और बाइनरी परिणाम के बीच संबंध को मापता है जो कटपॉइंट का उपयोग करने पर प्राप्त होता है);
  • "ऑब्जर्व्डप्रिव" (मनाया प्रसार के निकटतम मूल्य);
  • "मीनप्रिव" (डायग्नोस्टिक परीक्षण मूल्यों के मतलब के लिए निकटतम मूल्य);
  • "प्रिवैलेंसमैचिंग" (जिस मूल्य के लिए भविष्यवाणी की गई है, वह व्यावहारिक रूप से देखे गए प्रचलन के बराबर है)।

इसलिए अब कार्य उस विधि का चयन करने के लिए संकुचित है जो प्रत्येक स्थिति के लिए सबसे अच्छा मैच है।

पैकेज प्रलेखन में वर्णित कई अन्य कॉन्फ़िगरेशन विकल्प हैं जिनमें आत्मविश्वास अंतराल निर्धारित करने के कई तरीके और प्रत्येक विधियों का विस्तृत विवरण शामिल है।


18
तरीकों की सरासर संख्या एक कटऑफ की मनमानी का संकेत है। और चूंकि यह इनपुट चर पर कटऑफ का उपयोग करने के लिए पूरी तरह से अनुचित है, और केवल एक समग्र अनुमानित मूल्य पर कटऑफ (यदि आपको चाहिए) पर तलाश करने के लिए उपयुक्त है, तो यह स्पष्ट नहीं है कि इस पर इतना प्रयास क्यों खर्च किया जाता है। यदि आप एक नुकसान समारोह के साथ एक बेयस इष्टतम निर्णय नियम स्थापित करते हैं तो सब कुछ ध्यान रखा जाता है; कोई आरओसी वक्र नहीं, संवेदनशीलता और विशिष्टता जैसी कोई बैक-टाइम संभावनाएं नहीं, इनपुट चर पर कोई कटऑफ नहीं।
फ्रैंक हरेल

@FrankHarrell क्या आप इस बारे में विस्तार से बता सकते हैं? "यदि आप एक नुकसान समारोह के साथ एक बेयस इष्टतम निर्णय नियम स्थापित करते हैं तो सब कुछ ध्यान रखा जाता है।" इस पर मुझे और साहित्य कहां मिलेगा?
काला दूध

1
बेयस इष्टतम निर्णयों और उचित स्कोरिंग नियमों पर साहित्य को देखें।
फ्रैंक हरेल

26

मेरी राय में, कई कट-ऑफ विकल्प हैं। आप संवेदनशीलता और विशिष्टता को अलग-अलग तरीके से माप सकते हैं (उदाहरण के लिए, हो सकता है कि आपके लिए उच्च संवेदनशील परीक्षण का होना अधिक महत्वपूर्ण है, हालांकि इसका मतलब है कि यह कम विशिष्ट परीक्षण है। या इसके विपरीत)।

यदि संवेदनशीलता और विशिष्टता का आपके लिए समान महत्व है, तो कट-ऑफ की गणना का एक तरीका उस मूल्य को चुन रहा है जो आपके आरओसी वक्र और आपके ग्राफ के ऊपरी बाएं कोने के बीच यूक्लिडियन दूरी को कम करता है।

एक और तरीका मूल्य का उपयोग कर रहा है जो कट-ऑफ के रूप में अधिकतम (संवेदनशीलता + विशिष्टता - 1) है।

दुर्भाग्य से, मेरे पास इन दो तरीकों के संदर्भ नहीं हैं क्योंकि मैंने उन्हें प्रोफेसरों या अन्य सांख्यिकीविदों से सीखा है। मैंने केवल बाद की विधि को 'यूडन इंडेक्स' [1]) के रूप में संदर्भित किया है।

[१] https://en.wikipedia.org/wiki/Youden%27s_J_statistic


15

एक कटऑफ खोजने के लिए प्रलोभन का विरोध करें। जब तक आपके पास एक पूर्व-निर्दिष्ट उपयोगिता / हानि / लागत फ़ंक्शन नहीं होता है, तब तक कटऑफ इष्टतम निर्णय लेने की स्थिति में उड़ जाती है। और एक ROC वक्र इस मुद्दे के लिए अप्रासंगिक है।


7

गणितीय रूप से, कट-ऑफ के समाधान के लिए आपको एक और शर्त की आवश्यकता है।

आप @ एंड्रिया के बिंदु का अनुवाद कर सकते हैं: "अंतर्निहित समस्या के बारे में बाहरी ज्ञान का उपयोग करें"।

उदाहरण स्थितियां:

  • इस एप्लिकेशन के लिए, हमें संवेदनशीलता> = x, और / या विशिष्टता> = y की आवश्यकता है।

  • एक गलत नकारात्मक 10 x उतना ही बुरा है जितना कि एक गलत सकारात्मक। (यह आपको आदर्श कोने के निकटतम बिंदु का संशोधन देगा।)


1
बिल्कुल सही है कि आपको इष्टतम निर्णय लेने के लिए बाहरी ज्ञान की आवश्यकता है। लेकिन नुकसान की मात्रा ऊपर दी गई मात्रा के संदर्भ में नहीं बताई गई है, और इष्टतम निर्णय नुकसान विषय के साथ मिलकर, व्यक्तिगत विषय के लिए परिणाम की अनुमानित संभावना से आता है ।
फ्रैंक हरेल

6

कटऑफ बनाम सटीकता की कल्पना करें। आप ROCR प्रलेखन में अधिक विवरण पढ़ सकते हैं और उसी से बहुत अच्छी प्रस्तुति दे सकते हैं ।

यहाँ छवि विवरण दर्ज करें


1
यदि आप स्रोत कोड को करीब से देखते हैं तो मैंने इस पैकेज का उपयोग किया था और इस पैकेज के प्रलेखन को पढ़ा। इसके पास सही कटऑफ पॉइंट और "ग्रे ज़ोन" निर्धारित करने के लिए कोई उपकरण नहीं है
यूरी पेट्रोव्स्किए

1
मैंने आपका कोड निश्चित रूप से पढ़ा है, लेकिन "सही कटऑफ" जैसा कोई शब्द नहीं है, लेकिन साजिश सटीकता बनाम कटऑफ आपको सही जानकारी दे सकता है। और इस साजिश का उपयोग करके आप यह पता लगा सकते हैं कि अधिकतम सटीकता के लिए कटऑफ कैसे खोजना है।
व्लादिमीर चुपाखिन

2

क्या अधिक महत्वपूर्ण है - इस वक्र के पीछे बहुत कम डेटा पॉइंट हैं। जब आप यह निर्णय लेते हैं कि आप संवेदनशीलता / विशिष्टता व्यापार बनाने जा रहे हैं तो मैं आपको कर्व और परिणामी कटऑफ संख्या बूटस्ट्रैप करने के लिए प्रोत्साहित करूंगा। आप पा सकते हैं कि आपके अनुमानित सर्वश्रेष्ठ कटऑफ में बहुत अनिश्चितता है।


1
प्रयोग अभी भी जारी है, इसलिए मुझे अधिक डेटा पॉइंट मिलेंगे। मुझे कार्यप्रणाली में दिलचस्पी है (मुझे लगता है कि यह डेटा बिंदुओं की किसी भी गणना के लिए समान है)। और मुझे "ग्रे ज़ोन" निर्धारित करने का कोई सांख्यिकीय तरीका नहीं मिला, जबकि इस तरह के परीक्षणों में इसका व्यापक रूप से उपयोग किया जाता है।
यूरी पेट्रोव्स्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.