लॉजिस्टिक रिग्रेशन सब्मिट चयन कैसे करें?


47

मैं आर में एक द्विपद परिवार की चमक फिट कर रहा हूं, और मेरे पास व्याख्यात्मक चर की एक पूरी मंडली है, और मुझे सबसे अच्छा खोजने की आवश्यकता है (माप के रूप में आर-स्क्वेर ठीक है)। व्याख्यात्मक चर के यादृच्छिक अलग-अलग संयोजनों के माध्यम से लूप में एक स्क्रिप्ट लिखने की लघु और फिर रिकॉर्डिंग जो सबसे अच्छा प्रदर्शन करती है, मैं वास्तव में नहीं जानता कि क्या करना है। और leapsपैकेज लीप्स से फ़ंक्शन लॉजिस्टिक रिग्रेशन नहीं करता है।

किसी सहायता या सुझावों की काफी सराहना की जाएगी।


ऐसे कार्य मौजूद हैं जो स्वचालित खोज करते हैं। आपको स्टेप फंक्शन पर एक नजर डालनी चाहिए । खंड 5.4 उस बिंदु को दिखाता है: data.princeton.edu/R/glms.html
ocram

मुझे क्षमा करें लेकिन मेरी पोस्ट को संपादित कर दिया गया है ताकि यह अब मेरा सवाल न पूछे। मेरे लॉजिस्टिक प्रतिगमन मॉडल में मेरे पास 35 (26 महत्वपूर्ण) व्याख्यात्मक चर हैं। मुझे 8 के सर्वश्रेष्ठ संभावित संयोजन की आवश्यकता है, न कि सबसे अच्छी सबसेट की, और किसी भी बिंदु पर मुझे स्टेप वाइज या सभी सबसेट स्टाइल के दृष्टिकोण में दिलचस्पी नहीं थी। इस में कोई जगह नहीं है। मुझे लगता है कि किसी को पता चल सकता है कि मैं 8 एक्सप्लॉरी वैरिएबल के सभी संयोजनों को कैसे फिट कर सकता हूं और यह मुझे बता सकता है जो संभावना को अधिकतम करता है (आर-स्क्वेर्ड ब्रेन फार्ट के बारे में खेद है लेकिन एआईसी या तो प्रासंगिक नहीं है। मेरे पास मापदंडों की एक निश्चित संख्या है, 8)।
लींडर्ट

आप अपने पोस्ट के पिछले संस्करण में वापस आ सकते हैं, या दोनों संपादन जोड़ सकते हैं। मुझे यकीन है कि @mpiktas अपनी उपस्थिति में सुधार करने की कोशिश करते समय अच्छी मंशा का था और बस नहीं।
CHL

@ सभी: बहुत-बहुत धन्यवाद। अंत में मैंने कई अलग-अलग चीजों का इस्तेमाल किया, इस उम्मीद में कि वे सभी इसी तरह के जवाब देंगे। और उन्होंने किया। मैंने BMA, bestglm और glmnet पैकेज और साथ ही स्टेप फंक्शन का उपयोग किया। उन सभी के साथ फिट मॉडल, और BMA में अधिकतम + 9 और चरण के साथ क्या सबसे अच्छा मॉडल समझा जाता है, इसमें कोई विसंगति नहीं थी। मेरे आसपास के क्षेत्र के सभी विशेषज्ञ चर के साथ बहुत ही संतुष्ट थे, और महसूस किया कि यह काफी प्रगतिशील था। तो सभी इनपुट के लिए धन्यवाद। मैं वास्तव में यह सब इस्तेमाल किया।
लेन्डर्ट

glmulti सर्वश्रेष्ठ सबसेट चयन के लिए भी एक अच्छा पैकेज है, और यह कि आप अपने मॉडल में चर के अधिकतम एनआर को निर्दिष्ट करने की अनुमति देता है, और यह भी संभव है कि कोई भी 1 संभावित बातचीत प्रभाव पर विचार कर सके
टॉम वेन्सलेर्स

जवाबों:


28

स्टेप वाइज और "सभी सबसेट" तरीके आम तौर पर खराब होते हैं। स्टेप वाइज स्टेप वाइज देखें: स्टेप वाइज विधियाँ क्यों खराब हैं और आपको डेविड कासेल और स्वयं के द्वारा क्या उपयोग करना चाहिए (हमने एसएएस का उपयोग किया था, लेकिन पाठ लागू होता है) या फ्रैंक हैरेल रिग्रेशन मॉडलिंग रणनीतियाँ। यदि आपको एक स्वचालित विधि की आवश्यकता है, तो मैं LASSO या LAR की सलाह देता हूं। लॉजिस्टिक रिग्रेशन के लिए एक LASSO पैकेज यहां उपलब्ध है , एक और दिलचस्प लेख लॉजिस्टिक के लिए iterated LASSO पर है


6
(+1) R संकुल के बारे में, वहाँ भी glmnet (समन्वय वंश के साथ कार्यान्वयन।, फ्रीडमैन और टकराया।) और दंडित किया गया है (कुछ संस्करण रखने की अनुमति देता है। अनपेक्षित)। ध्यान दें, एफ। हरेल जीएलएम के लिए दंडित एमएल अनुमान प्रदान करता है (देखें lrm, या आगे की जानकारी के लिए उसकी आरएमएस पाठ्यपुस्तक)।
chl

(+1) अच्छा लेख, ऐसा लगता है कि मुझे लेखक राज्यों से बहुत आगे जाना शुरू करना होगा (पहली बार नहीं)। @chl (+1) सही वैकल्पिक सुझाव भी।
१५:१५ पर पापेल सेलोव

@chl: glmnet के लिए +1, यह एक शानदार पैकेज है।
ज़च

1
@chl धन्यवाद! आर के साथ समस्याओं में से एक पैकेज का ट्रैक रख रहा है (बहुत सारे हैं!) और जो सबसे अच्छे हैं। कार्य विचारों मदद कर
फिर से बहाल करते मोनिका - पीटर Flom

2
अगर आपके वैरिएबल का कोलीनियर होना सबसे अच्छा है, तो ग्लिटनेट का उपयोग करते हुए इलास्टिक नेट का उपयोग करें, अल्फ़ा = 0.5 के साथ कहें, क्योंकि LASSO बेतरतीब ढंग से मॉडल के बाहर अत्यधिक कोलीनियर वैरिएबल को किक करता है
टॉम वन्सलेर्स

15

सबसे पहले , लॉजिस्टिक रिग्रेशन के लिए एक उपयुक्त अच्छाई-की-फिट उपाय नहीं है , उदाहरण के लिए एक सूचना मानदंड या , एक अच्छे विकल्प के रूप में। A I C B B I CR2AICBIC

लॉजिस्टिक रिग्रेशन का अनुमान अधिकतम संभावना विधि से लगाया जाता है, इसलिए leapsसीधे यहां उपयोग नहीं किया जाता है। का विस्तार leapsकरने के लिए glm()कार्य करता है bestglm (जैसा कि आम तौर पर सिफारिश इस प्रकार है, विगनेट्स वहाँ से परामर्श) पैकेज।

आपको डेविड डब्ल्यू। होस्मर, बोरको जोवानोविक और स्टेनली लेमेशो बेस्ट सब्स्क्रिप्शन लॉजिस्टिक रिग्रेशन // बायोमेट्रिक्स वॉल्यूम के लेख में भी दिलचस्पी हो सकती है । 45, नंबर 4 (दिसंबर, 1989), पीपी। 1265-1270 (आमतौर पर विश्वविद्यालय नेटवर्क के माध्यम से सुलभ)।


2
जबकि बारे में आपकी टिप्पणी से बदतर है सामान्य रूप से उपयोगी है, यह वास्तव में कोई फर्क नहीं पड़ता जब तक कि आप विभिन्न आकारों के मॉडल की तुलना नहीं कर रहे हैं। ओपी स्पष्ट रूप से बताता है कि वे केवल चर मॉडल में रुचि रखते हैं, इसलिए और उच्चतम संभावना वाले मॉडल को चुनने के लिए वापस लौट आएंगे। यह फिटिंग के बराबर है । B I C , A I C 8 B I C A I C R 2R2BIC,AIC8BICAICR2
संभाव्यता

टिप्पणी के लिए धन्यवाद, लेकिन नीचे chl द्वारा टिप्पणियां बताती हैं कि व्याख्यात्मक चर की निश्चित संख्या खतरनाक क्यों है। जिस तरह से उत्तर (अप करने के लिए? चर चर) के बारे में टिप्पणी की तुलना में पहले दिखाई दिया8
पैराग्राफ Celov

किसी भी शैक्षणिक संदर्भ के लिएR2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
SIslam

एक नोट पर bestglm, यह leapsगणना के लिए बैकएंड पर उपयोग करता है ! तो यह विफल हो जाएगा अगर डाटासेट में NA है और संदेश जैसे संदेश के साथ आएगा Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3) लेकिन क्या दिलचस्प है, मेरे डेटासेट में कोई NA नहीं है, बल्कि कुछ शून्य फिर भी यह फ़ंक्शन शिकायत करता है और उस सटीक उपरोक्त संदेश को देता है !!
SIlamlam

glmnet भी एक अच्छा है, और यह भी मॉडल है कि सभी संभव 1 आदेश बातचीत प्रभाव पर विचार कर सकते हैं
टॉम Wenseleers

6

एक विचार एक यादृच्छिक वन का उपयोग करना होगा और फिर चर महत्व के उपायों का उपयोग करना होगा जो आपके सर्वोत्तम 8 चर का चयन करने के लिए आउटपुट करता है। एक और विचार 8 वेरिएबल्स को खोजने के लिए "बोरूटा" पैकेज का उपयोग करने के लिए इस प्रक्रिया को कुछ सौ बार दोहराने के लिए होगा जो मॉडल के लिए लगातार सबसे महत्वपूर्ण हैं।


@Zach क्या आप सुविधा चयन करने के लिए RFs पर भरोसा करने का सुझाव देते हैं, और फिर GLM लागू करते हैं - इस मामले में, ओवरफिटिंग या अधिक-आशावाद का जोखिम है - या RFs (var के महत्व के मानक उपायों के साथ) का उपयोग करने के लिए। सभी प्रासंगिक चयन) एक स्वसंपूर्ण उपकरण के रूप में?
CHL

@chl: मैं सुविधा चयन करने के लिए RFs का उपयोग करने का सुझाव दे रहा था, और फिर GLM लागू करूंगा। मैं मानता हूं कि अधिक फिटिंग का जोखिम है, लेकिन ओपी ने कहा कि उसे ठीक 8 चर चाहिए।
ज़च

1
@Zach "ठीक 8 वैरिएबल" ... फिर, आप कुछ हद तक परिवर्तनीय महत्व के माप के आधार पर ब्याज के संभावित चर को नरम कर रहे हैं (जो कि क्रमपरिवर्तन पर आधारित होने के लिए धन्यवाद और डबल रिसमलिंग को पूर्वाग्रह मुक्त माना जाता है) फिर उन्हें एक GLM में फिर से स्थापित करें। IMHO, आप बैगिंग के माध्यम से अतिरंजित पर नियंत्रण को तोड़ते हैं। यह भी Hastie एट अल से ESLII में वर्णित है। सुविधा चयन, यदि कोई हो, को क्रॉस-सत्यापन प्रक्रिया में शामिल किया जाना चाहिए (जहां क्रॉस-सत्यापन में मॉडल प्रदर्शन का आकलन शामिल है)।
CHL

@chl: कई बार यादृच्छिक वन चलाकर r पैकेज "बोरूटा" क्रॉस को मान्य नहीं करता है? क्या आप मूल रूप से कह रहे हैं कि हमें "मेटा-क्रॉस-वेलिडेशन" की आवश्यकता है, जहां आप परिवर्तनीय चयन करते हैं और अपने मॉडल को डेटा के यादृच्छिक सबसेट पर फिट करते हैं?
ज़च

3
@Zach मेरा मुद्दा यह था कि बैगिंग, या विशेष रूप से RFs में, ओवरफिटिंग (एक निश्चित सीमा तक) से रोकें, बशर्ते आप एक ही टूलकिन में रहें। यदि आप RF से परिणामों का उपयोग करते हैं और फिर देखते हैं कि एक ही डेटा के साथ कोई अन्य मॉडल कैसे प्रदर्शन करेगा, तो आप CV लूप को तोड़ते हैं। लेकिन वर्गीकरण के लिए सीधे आरएफ का उपयोग क्यों नहीं किया जाता है? एक अन्य समाधान एक प्रशिक्षण नमूने पर आरएफ का उपयोग करना और फिर एक आयोजित नमूने पर GLM लागू करना होगा (जो संभवतः क्रॉस-मान्य भी हो सकता है)।
chl

0

stats::stepफ़ंक्शन या अधिक सामान्य MASS::stepAICफ़ंक्शन समर्थन lm, glm(यानी लॉजिस्टिक प्रतिगमन) और aovपरिवार के मॉडल।

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