आर में एयूसी (वक्र के नीचे का क्षेत्र) की गणना कैसे करें
लॉजिस्टिक रिग्रेशन एक सांख्यिकीय पद्धति है जिसका उपयोग हम रिग्रेशन मॉडल को फिट करने के लिए करते हैं जब प्रतिक्रिया चर द्विआधारी होता है। यह मूल्यांकन करने के लिए कि लॉजिस्टिक रिग्रेशन मॉडल डेटा सेट में कितनी अच्छी तरह फिट बैठता है, हम निम्नलिखित दो मैट्रिक्स देख सकते हैं:
- संवेदनशीलता: संभावना है कि मॉडल किसी अवलोकन के लिए सकारात्मक परिणाम की भविष्यवाणी करता है जब परिणाम वास्तव में सकारात्मक होता है। इसे “सच्ची सकारात्मक दर” भी कहा जाता है।
- विशिष्टता: संभावना है कि मॉडल किसी अवलोकन के लिए नकारात्मक परिणाम की भविष्यवाणी करता है जब परिणाम वास्तव में नकारात्मक होता है। इसे “सच्ची नकारात्मक दर” भी कहा जाता है।
इन दो मापों को देखने का एक तरीका एक आरओसी वक्र बनाना है, जो “रिसीवर ऑपरेटिंग विशेषता” वक्र के लिए है।
यह एक ग्राफ है जो y-अक्ष के साथ संवेदनशीलता और x-अक्ष के साथ (1 – विशिष्टता) प्रदर्शित करता है। डेटा को वर्गीकृत करने में लॉजिस्टिक रिग्रेशन मॉडल की प्रभावशीलता को मापने का एक तरीका एयूसी की गणना करना है, जिसका अर्थ है “वक्र के नीचे का क्षेत्र।”
AUC 1 के जितना करीब होगा, मॉडल उतना ही बेहतर होगा।
निम्नलिखित चरण-दर-चरण उदाहरण दिखाता है कि आर में लॉजिस्टिक रिग्रेशन मॉडल के लिए एयूसी की गणना कैसे करें।
चरण 1: डेटा लोड करें
सबसे पहले, हम आईएसएलआर पैकेज से डिफ़ॉल्ट डेटासेट लोड करेंगे, जिसमें इस बारे में जानकारी होगी कि विभिन्न लोगों ने ऋण पर डिफ़ॉल्ट किया है या नहीं।
#load dataset data <- ISLR::Default #view first six rows of dataset head(data) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
चरण 2: लॉजिस्टिक रिग्रेशन मॉडल को फिट करें
इसके बाद, हम किसी व्यक्ति के डिफ़ॉल्ट होने की संभावना का अनुमान लगाने के लिए एक लॉजिस्टिक रिग्रेशन मॉडल फिट करेंगे:
#make this example reproducible set. seeds (1) #Use 70% of dataset as training set and remaining 30% as testing set sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family=" binomial ", data=train)
चरण 3: मॉडल एयूसी की गणना करें
इसके बाद, हम मॉडल के AUC की गणना करने के लिए pROC पैकेज से auc() फ़ंक्शन का उपयोग करेंगे। यह फ़ंक्शन निम्नलिखित सिंटैक्स का उपयोग करता है:
कोई नहीं(प्रतिक्रिया, पूर्वानुमानित)
हमारे उदाहरण में इस फ़ंक्शन का उपयोग कैसे करें:
#calculate probability of default for each individual in test dataset predicted <- predict(model, test, type=" response ") #calculate AUC library (pROC) auc(test$default, predicted) Setting levels: control = No, case = Yes Setting direction: controls < boxes Area under the curve: 0.9437
मॉडल का AUC 0.9437 निकला।
चूँकि यह मान 1 के करीब है, यह इंगित करता है कि मॉडल यह भविष्यवाणी करने का बहुत अच्छा काम कर रहा है कि कोई व्यक्ति अपने ऋण पर चूक करेगा या नहीं।