लॉजिस्टिक मॉडल के लिए RMSE (रूट मीन स्क्वैयर एरर)


10

मेरे पास विभिन्न लॉजिस्टिक मॉडल की तुलना करने के लिए RMSE (रूट मीन स्क्वेयर एरर) का उपयोग करने की वैधता के बारे में एक प्रश्न है। प्रतिक्रिया 0या तो है 1और भविष्यवाणियों के बीच संभावनाएं हैं 0- 1?

क्या नीचे दिया गया तरीका द्विआधारी प्रतिक्रियाओं के साथ भी मान्य है?

# Using glmnet
require(glmnet)
load(url("https://github.com/cran/glmnet/raw/master    /data/BinomialExample.RData"))
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse")
A <- predict(cvfit, newx = x, s = "lambda.min", type = "response")
RMSE1 <- mean((y - A)^2)
# 0.05816881

# glm
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
AAA <- predict(mylogit, newdata = mydata, type = "response")
RMSE2 <- mean((mydata$admit - AAA)^2)
# 0.194714

1
इस स्थिति में इसे बैरियर स्कोर कहा जाता है, actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

जवाबों:


14

यह समझने के लिए कि "[t] वह प्रतिक्रिया 0या तो है या 1[लेकिन] भविष्यवाणियों के बीच संभावनाएं हैं 0- 1", आपको उस प्रकार के मॉडल को समझने की आवश्यकता है जिसके साथ आप काम कर रहे हैं। दंड विधियों और क्रॉस सत्यापन को दूर करें, और आप एक मूल लॉजिस्टिक प्रतिगमन चला रहे हैं। पैरामीटर लॉग ऑड / लॉजिस्टिक स्केल पर फिट होते हैं। इसे "रैखिक भविष्यवक्ता" कहा जाता है। (इस पर अधिक जानकारी के लिए, यह आपको मेरा उत्तर पढ़ने में मदद कर सकता है: लॉजिट और प्रोबेट मॉडल के बीच अंतर ।) यदि आपने एक एक्स मान में प्लग किया और सरलीकृत किया गया, तो मूल्य मॉडल की 'सफलता' की बाधाओं के प्राकृतिक लघुगणक की भविष्यवाणी की जाएगी। ( 1)। आपको लगता है कि मूल्य exponentiated हैं, तो आप मॉडल की भविष्यवाणी की है बाधाओंसफलता की'। एक अनुमानित संभावना प्राप्त करने के लिए , आपको बाधाओं को एक संभावना में बाधाओं / (1 + बाधाओं) के माध्यम से परिवर्तित करने की आवश्यकता होगी। (इस पर और अधिक जानकारी के लिए, यह आपको मेरा उत्तर पढ़ने में मदद कर सकता है: लॉजिस्टिक रिग्रेशन में अनुपातों की बाधाओं के बारे में सरल भविष्यवाणियों की व्याख्या ।) यह अभी भी आपको एक पूर्वानुमानित कक्षा में नहीं मिलता है । इसे प्राप्त करने के लिए, आपको अपनी अनुमानित संभावना की तुलना कुछ सीमा से करनी होगी, और यदि यह थ्रेशोल्ड की भविष्यवाणी की विफलता से कम है ( 0), तो 'सफलता' ( 1)। सबसे आम डिफ़ॉल्ट थ्रेशोल्ड है ।5, लेकिन यह अक्सर इष्टतम नहीं है। आर का predict.glm()कार्य आपको उपयोग करने की अनुमति देगाtype="link", जो रैखिक भविष्यवक्ता के पैमाने पर भविष्यवाणियों को आउटपुट करता है (यानी, उपरोक्त सभी परिवर्तनों से पहले), लेकिन यह इस संदर्भ में आपकी मदद नहीं करेगा। उपयोग करने type="response"से आपको अनुमानित संभावनाएं मिलती हैं।


जब आप यह आकलन करने की कोशिश कर रहे हैं कि बाइनरी कितना अच्छा है (जैसे, लॉजिस्टिक) प्रतिगमन मॉडल एक प्रतिक्रिया की भविष्यवाणी करता है, तो आपके पास कई विकल्प हैं:

  1. पहला, और सबसे सहज ज्ञान युक्त वर्ग की तुलना अवलोकन वर्ग के साथ करना और प्रतिशत सही की गणना करना है। हालांकि यह सहज है, इसमें समस्याएं हैं। यह आंशिक रूप से, उचित रूप से फिट होने वाले मॉडल के अन्य पहलुओं के अतिरिक्त दहलीज पर है। यह बहुत सारी जानकारी को दूर फेंक देता है (यानी, अनुमानित संभावना की सीमा से कितनी दूर है), जो करना अच्छी बात नहीं है।
  2. आपका अगला विकल्प रिसीवर ऑपरेटिंग कैरेक्टर (आरओसी) वक्र के तहत क्षेत्र का उपयोग करना है। ज्यादातर लोग इस विकल्प का उपयोग करते हैं; प्रतिशत का सही उपयोग करने की तुलना में यह काफी बेहतर है। एयूसी के बारे में यह बात कि ज्यादातर लोगों को एहसास नहीं होता है, हालांकि, यह वास्तव में आपकी भविष्यवाणियों के उचित क्रम को माप रहा है, न कि उनकी वास्तविक सटीकता को। अर्थात्, यदि आपने चार अवलोकनों के लिए संभाव्यता की भविष्यवाणी की थी .2, .4, .6, .8, और आपने उन सभी को (। .21, .41, .61, .81) में जोड़ा है , तो एयूसी समान होगा, भले ही अनुमानित संभावनाओं के दोनों सेट समान रूप से सटीक न हों।
  3. अपने मॉडल का आकलन करने का तीसरा तरीका उचित स्कोर फ़ंक्शन का उपयोग करना होगा। शायद आपके संदर्भ में सबसे लोकप्रिय स्कोर फ़ंक्शन ब्रायर स्कोर है । @Fcoppens नोट के रूप में, आपके कोड में विधि बैरियर स्कोर है। यह न केवल आकलन करेगा कि मॉडल उचित रूप से भविष्यवाणी करता है कि एक अवलोकन एक अन्य अवलोकन की तुलना में 'सफलता' होने की अधिक संभावना है, लेकिन अगर मॉडल की अनुमानित संभावना वास्तव में सही है।

यह दुर्भाग्यपूर्ण है कि बैरियर स्कोर कम ज्ञात और उपयोग किया जाता है। हालांकि इन विधियों की सापेक्ष तीव्रता है: प्रतिशत सही> एयूसी> बैरियर स्कोर, उनकी सही सूचनात्मकता इसके विपरीत है: बैरियर स्कोर> एयूसी> प्रतिशत सही। यदि आप केवल अपने मॉडल के प्रदर्शन का एक सरल माप चाहते हैं, तो इन विधियों के बीच अंतर कम महत्वपूर्ण नहीं है, लेकिन यदि आप इन तरीकों का उपयोग किसी मॉडल को अनुकूलित करने या किसी मॉडल का चयन करने के लिए करना चाहते हैं, तो अवर विधि का उपयोग करने से खराब प्रदर्शन होगा ।


1

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.