मैं संख्यात्मक / श्रेणीबद्ध मान दोनों के साथ R में साधारण लॉजिस्टिक रिग्रेशन विश्लेषण कैसे चलाऊं?


17

आधार डेटा : मेरे पास मूल्यांकन के साथ ~ 1,000 लोग चिह्नित हैं: '1,' [अच्छा] '2,' [मध्य] या '3' [बुरा] - ये वे मूल्य हैं जो मैं भविष्य में लोगों के लिए भविष्यवाणी करने की कोशिश कर रहा हूं । इसके अलावा, मेरे पास कुछ जनसांख्यिकीय जानकारी है: लिंग (श्रेणी: एम / एफ), आयु (संख्यात्मक: 17-80) और दौड़ (श्रेणी: काला / कोकेशियान / लैटिनो)।

मेरे पास मुख्य रूप से चार प्रश्न हैं:

  1. मैं शुरू में कई रिग्रेशन विश्लेषण के रूप में ऊपर वर्णित डेटासेट चलाने की कोशिश कर रहा था। लेकिन मुझे हाल ही में पता चला है कि चूँकि मेरा आश्रित एक आदेशित कारक है न कि एक सतत चर, इसलिए मुझे कुछ इस तरह के लिए क्रमिक लॉजिस्टिक प्रतिगमन का उपयोग करना चाहिए। मैं शुरू में कुछ का उपयोग कर रहा था mod <- lm(assessment ~ age + gender + race, data = dataset), क्या कोई मुझे सही दिशा में इंगित कर सकता है?

  2. वहां से, मुझे लगता है कि मैं उन गुणांकों को प्राप्त करता हूं जिनके साथ मैं सहज महसूस करता हूं, मैं समझता हूं कि X1, x2, आदि के लिए पूरी तरह से संख्यात्मक मानों को कैसे प्लग किया जाए - लेकिन मैं दौड़ से कैसे निपटूंगा, उदाहरण के लिए, जहां कई प्रतिक्रियाएं हैं: काला / कॉरेशियन / लेटिनो? इसलिए अगर यह मुझे बताता है कि कोकेशियान गुणांक 0.289 है और कोई व्यक्ति जो मैं भविष्यवाणी करने की कोशिश कर रहा हूं वह कोकेशियान है, तो मैं मूल्य के संख्यात्मक नहीं होने के बाद से उसे कैसे प्लग करूं?

  3. मेरे पास यादृच्छिक मूल्य भी हैं जो गायब हैं - कुछ दौड़ के लिए, कुछ लिंग के लिए, आदि। क्या मुझे यह सुनिश्चित करने के लिए कुछ अतिरिक्त करना है कि यह कुछ भी तिरछा नहीं है? (मैंने देखा कि जब मेरा डेटासेट R-Studio में लोड हो जाता है, जब लापता डेटा लोड हो जाता है NA, R कुछ ऐसा कहता है (162 observations deleted due to missingness)- लेकिन अगर वे ब्लैंक के रूप में लोड होते हैं, तो यह कुछ भी नहीं करता है।)

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

जवाबों:


16

यहाँ एक छोटी सी जानकारी है जो आपको सही दिशा में ले जा सकती है।

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

http://en.wikipedia.org/wiki/Ordered_logit

मैंने स्वयं इसका उपयोग नहीं किया है, लेकिन polr()एमएएसएस पैकेज में फ़ंक्शन कुछ उपयोग का होने की संभावना है, वैकल्पिक रूप से मैंने lrm()इसी प्रकार के विश्लेषण करने के लिए आरएमएस पैकेज में फ़ंक्शन का उपयोग किया है , और इसे काफी उपयोगी पाया है। यदि आप इन पैकेजों को लोड करते हैं ?polrया ?lrmफ़ंक्शन जानकारी के लिए।

आपके प्रश्नों पर पर्याप्त पृष्ठभूमि,

  1. यह ऊपर कवर किया जाना चाहिए, इन पैकेजों / कार्यों की जांच करें और क्रमिक लॉजिस्टिक प्रतिगमन और आनुपातिक बाधाओं के मॉडल पर पढ़ें

  2. किसी भी समय आपके पास एक सहसंयोजक है जो श्रेणीबद्ध है (रेस / सेक्स / बालों का रंग) आप उन्हें उचित रूप से मॉडल करने के लिए अपने आर कोडिंग में 'कारकों' के रूप में व्यवहार करना चाहते हैं। यह जानना महत्वपूर्ण है कि एक कारक क्या है और उनका इलाज कैसे किया जाता है, लेकिन अनिवार्य रूप से आप प्रत्येक श्रेणी को एक अलग स्तर के रूप में मानते हैं और फिर उन्हें उपयुक्त तरीके से मॉडल करते हैं। बस मॉडल में कारकों पर पढ़ें और आपको व्हाट्सएप को छेड़ने में सक्षम होना चाहिए। ध्यान रखें कि कारकों के रूप में श्रेणीबद्ध चर का इलाज करना ग्लैमर मॉडल या आनुपातिक बाधाओं के मॉडल के लिए अद्वितीय नहीं है, लेकिन आमतौर पर सभी मॉडल श्रेणीबद्ध चर के साथ कैसे व्यवहार करते हैं। http://www.stat.berkeley.edu/classes/s133/factors.html

  3. लापता मान कभी-कभी इससे निपटने के लिए एक परेशानी हो सकती है, लेकिन यदि आप एक काफी बुनियादी विश्लेषण कर रहे हैं, तो शायद यह केवल डेटा पंक्तियों को हटाने के लिए सुरक्षित है जिसमें लापता मान हैं (यह हमेशा सच नहीं है, लेकिन आपके वर्तमान अनुभव स्तर के आधार पर मैं हूं यह अनुमान लगाना कि आपको लापता मूल्यों से कब और कैसे निपटना है, की बारीकियों से चिंतित नहीं होना चाहिए)। वास्तव में यह बहुत ज्यादा आर क्या करता है। यदि आपके पास एक डेटा है जिसे आप मॉडल के लिए उपयोग कर रहे हैं, यदि आप अपनी प्रतिक्रिया के लिए एक पंक्ति में जानकारी गायब कर रहे हैं या मॉडल आर में कोई भी कोवरिएट इस डेटा को बाहर करने जा रहा है (यह आपके देखने की चेतावनी है)। जाहिर है कि यदि आप गुमशुदगी के कारण अपने डेटा के एक बड़े अनुपात को बाहर कर रहे हैं, तो आपके परिणाम पक्षपाती हो सकते हैं और यह संभव है कि इतने सारे लापता मान क्यों हों, पर कुछ और जानकारी प्राप्त करने की कोशिश करें और प्राप्त करें, लेकिन यदि आप ' डेटा की 10,000 पंक्तियों में 162 अवलोकनों को याद कर रहा हूं, मैं इसे बहुत ज्यादा नहीं झेलूंगा। यदि आप कुछ और बारीकियों में रुचि रखते हैं, तो लापता डेटा को संभालने के तरीकों पर आप गूगल कर सकते हैं।

  4. लगभग सभी आर मॉडल ऑब्जेक्ट्स ( lmऔर glm, lrm...,) में एक संबद्ध predict()फ़ंक्शन होगा जो आपको अपने वर्तमान मॉडलिंग डेटासेट के लिए अनुमानित मानों की गणना करने और इसके अलावा किसी अन्य डेटासेट के लिए जो आप एक परिणाम की भविष्यवाणी करना चाहते हैं। जिस भी मॉडल प्रकार के साथ आप काम करना चाहते हैं, उसके लिए बस खोज ?predict.glmया ?predict.lmप्रयास करें और कुछ और जानकारी प्राप्त करें। यह एक बहुत ही विशिष्ट बात है जो लोग मॉडल के साथ करना चाहते हैं ताकि यह सुनिश्चित हो सके कि कुछ ऐसे कार्य और विधियां हैं जो इसे अपेक्षाकृत सरल रूप से करना चाहिए।

शुभकामनाएँ!


2
  1. हां, आदेश दिया गया है कि लॉगिट या प्रोबिट कहां से शुरू होगी। यहां आदेशित लॉगिट पर एक ट्यूटोरियल है जो आर। का उपयोग करता है। अन्य सीवी प्रश्न संभवतः आपके द्वारा चलाए जाने वाले किसी भी स्नैग के साथ आपकी मदद कर सकते हैं - टैग्स 'लॉगिट,' 'प्रोबिट,' और 'ऑर्डिनल।'

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

  3. लापता डेटा से निपटना हाथ में समस्या पर निर्भर करता है, और हाँ, आप लापता डेटा से कैसे निपटें, पूर्वाग्रह का परिचय दे सकता है। इस पुस्तक में स्पष्ट रूप से चार तंत्रों का वर्णन किया गया है जो लापता डेटा का उत्पादन कर सकते हैं, जो आपको हाथ में अपनी समस्या में संभावित पूर्वाग्रह पर विचार करने में मदद करनी चाहिए। (विशेष रूप से, धारा 25.1, पी। 530।)

  4. कई मॉडलिंग पैकेजों predictमें किसी प्रकार का एक फ़ंक्शन होता है, और वास्तव में ऊपर दिए गए पहले ट्यूटोरियल में एक प्रदर्शन शामिल है।


बहुत बहुत धन्यवाद! # 2 पर त्वरित अनुवर्ती: यह मेरी बुनियादी धारणा थी - लेकिन क्या कोड है जो दो से अधिक चर है? उदाहरण के लिए, कोकेशियान, काला, लातीनी।
रयान

काफी स्वागत है! उस उदाहरण में, आप latinoअन्य दो के लिए अवरोधन, कहने और डमी करने के लिए एक श्रेणी चुनेंगे । caucasianडमी के लिए 1 मान blackडमी चर के समान कोकेशियन प्रतिवादी को इंगित करता है । दोनों के लिए 0 मान एक लातीनी प्रतिवादी को इंगित करता है। सही बात?
शॉन ईस्टर

तो क्या मुझे सिर्फ एक कॉलम से कई प्रतिक्रियाओं ('ब्लैक,' 'कोकेशियान,' और 'लेटिनो') से 1s और 0s के साथ एक 'ब्लैक' कॉलम में 1s और 0s के साथ एक 'कॉकेशियन' कॉलम और एक के साथ डेटासेट को बदलना चाहिए। 1s और 0s के साथ 'latino' कॉलम?
रयान

यह एक तरीका है जो ठीक काम करेगा। दो कॉलम का उपयोग करने से एकमात्र अंतर यह है कि आप इंटरसेप्ट की व्याख्या कैसे करते हैं। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन मेरा मानना ​​है कि आर में कारक आपके लिए इसे संभाल सकते हैं। प्रयास करें इस एक समान उदाहरण के साथ कारकों का उपयोग कर के माध्यम से इसे 'चलता है। चीयर्स!
शॉन ईस्टर

1
ट्यूटोरियल का लिंक टूट गया है। अगर कोई इसे ठीक कर सकता है, तो यह बहुत अच्छा होगा!
दान हिक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.