असंतुलित डेटा के लिए लॉजिस्टिक रिग्रेशन के लिए वेट जोड़ना


21

मैं असंतुलित डेटा (9: 1) के साथ एक लॉजिस्टिक प्रतिगमन मॉडल करना चाहता हूं। मैं glmआर में फ़ंक्शन में वज़न विकल्प का प्रयास करना चाहता था , लेकिन मैं 100% निश्चित नहीं हूं कि यह क्या करता है।

कहते हैं कि मेरा आउटपुट वेरिएबल है c(0,0,0,0,0,0,0,0,0,1)। अब मैं "1" 10 गुना अधिक वजन देना चाहता हूं। इसलिए मैं तौल तर्क देता हूं weights=c(1,1,1,1,1,1,1,1,1,1,1,10)

जब मैं ऐसा करता हूं, तो यह अधिकतम संभावना की गणना में माना जाएगा। क्या मैं सही हू? "1" का गर्भपात सिर्फ 10 गुना बदतर है, फिर एक "0" को मिसक्लासिज़ करना।

जवाबों:


11

चिंग, आपको 1 और 0 के संदर्भ में अपना डेटा सेट संतुलित करने की आवश्यकता नहीं है। आप सभी की आवश्यकता है 1 की पर्याप्त संख्या के लिए अभिसरण की अधिकतम संभावना है। अपने डेटासेट में 1 (100,000) के वितरण को देखते हुए, आपको कोई समस्या नहीं होनी चाहिए। आप यहां एक साधारण प्रयोग कर सकते हैं

  1. 1 के 10% और 0 के 10% का नमूना और दोनों के लिए 10 के वजन का उपयोग करें
  2. 1 के 100% और 0 के 10% का नमूना लें और 0 के लिए 10 के वजन का उपयोग करें

दोनों ही मामलों में, आपको समान अनुमान मिलेंगे। फिर से वेटिंग का विचार नमूने से संबंधित है। यदि आप पूरे डेटा सेट का उपयोग कर रहे हैं तो आपको इसका वजन नहीं करना चाहिए। अगर मैं तुम होते तो मैं सिर्फ 10% का उपयोग करता अगर 1 का और 10% 0 का।

आर में, आप उपयोग करेंगे glm। यहाँ एक नमूना कोड है:

glm(y ~ x1 + x2, weights = wt, data =data, family = binomial("logit"))

आपके डेटासेट में wtवज़न के लिए एक चर होना चाहिए ।

यदि आप 0 और 1 दोनों के 10% का उपयोग करते हैं, तो आपके wtचर का मूल्य 10 होगा।

यदि आप 0 के 10% और 1 के 100% का उपयोग करते हैं: wtचर में y = 0 के साथ टिप्पणियों के लिए 10 का मान होगा और 1 के साथ टिप्पणियों के लिए y = 1


12

वेटिंग एक प्रक्रिया है जो नमूना और जनसंख्या (राजा 2001) में अंतर की भरपाई करने के लिए डेटा को मापता है। उदाहरण के लिए, दुर्लभ घटनाओं में (जैसे कि क्रेडिट जोखिम में धोखाधड़ी, चिकित्सा साहित्य में मौतें) हम सभी 1 (दुर्लभ घटनाओं) और 0 के अंश (गैर ईवेंट) का एक अंश नमूना करते हैं। ऐसे मामलों में हमें तदनुसार टिप्पणियों का वजन करना होगा।

उदाहरण: हम कहते हैं, 500,000 लेनदेन की आबादी में 50 धोखाधड़ी लेनदेन होते हैं। इस मामले में आप करेंगे

  1. सभी 50 धोखाधड़ी लेनदेन (धोखाधड़ी का 100%) का नमूना
  2. अच्छे लेनदेन का 10% (500,000 का 10% 50,000 अच्छा लेनदेन है)

इस मामले में आप धोखाधड़ी लेनदेन के लिए 1 का वजन और अच्छे लेनदेन के लिए 10 का वजन असाइन करेंगे। इसे भारित अधिकतम संभावना विधि कहा जाता है। महत्वपूर्ण उपाय यह है कि भार नमूनाकरण अनुपात से संबंधित है

संदर्भ: दुर्लभ घटनाओं डेटा में लॉजिस्टिक प्रतिगमन (राजा 2001)


हाय सब्रा !!! राजा दृष्टिकोण के लिए बहुत बहुत धन्यवाद !! यह नहीं सुना है! मेरे मामले में मेरे पास 1 मिलियन लेनदेन हैं! (900.000 "0" हैं, और 100.000 "1" हैं)। तो क्या मुझे अपने "0" का 10% नमूना लेना चाहिए? तब मेरे पास लगभग एक संतुलित डेटा सेट है। तो फिर मुझे "1" सही से दस गुना अधिक "0" वजन करना होगा? और MASS पैकेज में R glm () में फ़ंक्शन ठीक वही करता है? अगर मैं अपने अवलोकनों का वजन करता हूं, तो मैं भारित अधिकतम संभावना की गणना करूंगा? धन्यवाद! वास्तव में आपके उत्तर की सराहना करते हैं और मदद करते हैं
चिंग

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