द्विआधारी परिणाम के श्रेणीबद्ध भविष्यवाणियों के सेट की अनुमानित शक्ति का आकलन कैसे करें? संभावनाओं या लॉजिस्टिक प्रतिगमन की गणना करें?


10

मैं यह निर्धारित करने की कोशिश कर रहा हूं कि क्या साधारण संभावनाएं मेरी समस्या के लिए काम करेंगी या यदि लॉजिस्टिक रिग्रेशन जैसे अधिक परिष्कृत तरीकों का उपयोग करना (और सीखना) बेहतर होगा।

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


यदि आपके पास 1 से अधिक भविष्यवक्ता हैं, तो यह किसी प्रकार के प्रतिगमन मॉडल के बिना ऐसा करने के लिए मुश्किल हो सकता है। आप के मन में क्या था? बस एक बड़ा -dimporary contigency तालिका ( भविष्यवाणियों की संख्या है)? कश्मीरkk
मैक्रो

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

@ मैक्रो - हां, मैं सोच रहा था कि यह अनिवार्य रूप से एक बड़ी तालिका होगी, जिसमें एक कॉलम नमूना बिंदुओं के # दिखाता है जो परिदृश्य के अनुरूप है, और 1 के अनुपात को दिखाने वाला एक और स्तंभ है। मेरे पास पाँच श्रेणीबद्ध भविष्यवक्ता हैं, जिनमें से प्रत्येक 10-30 संभावित मूल्यों के साथ है, इसलिए मुझे पता है कि परिदृश्यों की सूची उच्च होगी। मैं आर में एक लूप को स्क्रिप्ट करने के लिए सोच रहा था जो प्रत्येक और आउटपुट महत्वपूर्ण परिणामों से गुजरता है (परिदृश्य में नमूना अंक के 1 प्लस के बड़े # का उच्च अनुपात)।
राहेल

@ गुंग - कारकों को केवल आंशिक रूप से पार किया जाता है। किसी भी कारक को नेस्टेड नहीं माना जाएगा। मैं कारकों (जैसे राज्य, ग्राहक, कर्मचारी) के संयोजन को खोजने में दिलचस्पी रखता हूं, जिसकी संभावना संभावना होगी कि प्रतिक्रिया चर की उच्च संभावना 1 के बराबर हो।
राहेल

1
@EmreA - दुर्भाग्यवश श्रेणीबद्ध चर पूरी तरह से स्वतंत्र नहीं हैं। कुछ संयोजनों की दूसरों की तुलना में अधिक संभावना होगी ...
राहेल

जवाबों:


11

लॉजिस्टिक रिग्रेशन, संख्यात्मक अभेद्यता तक होगा, सारणीबद्ध प्रतिशत के समान बिल्कुल फिट बैठता है। इसलिए, यदि आपके स्वतंत्र चर कारक वस्तुएं factor1आदि हैं, और आश्रित परिणाम (0 और 1) हैं x, तो आप अभिव्यक्ति के साथ प्रभाव प्राप्त कर सकते हैं जैसे

aggregate(x, list(factor1, <etc>), FUN=mean)

इसकी तुलना करें

glm(x ~ factor1 * <etc>, family=binomial(link="logit"))

एक उदाहरण के रूप में, चलो कुछ यादृच्छिक डेटा उत्पन्न करते हैं:

set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))

सारांश के साथ प्राप्त किया जाता है

aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results

इसके आउटपुट में शामिल हैं

   Group.1 Group.2 Group.3         x
1        0       0       0 0.5128205
2        1       0       0 0.4210526
3        0       1       0 0.5454545
4        1       1       0 0.6071429
5        0       2       0 0.4736842
6        1       2       0 0.5000000
...
24       1       2       3 0.5227273

भविष्य के संदर्भ के लिए, उत्पादन की पंक्ति 6 ​​में स्तरों (1,2,0) पर कारकों के लिए अनुमान 0.5 है।

लॉजिस्टिक प्रतिगमन इस तरह से अपने गुणांक देता है:

model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients

उनका उपयोग करने के लिए, हमें लॉजिस्टिक फ़ंक्शन की आवश्यकता है:

logistic <- function(x) 1 / (1 + exp(-x))

उदाहरण के लिए, स्तरों (1,2,0) पर कारकों के लिए अनुमान, गणना

logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])

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

(Intercept) 
        0.5

के परिणामों से सहमत aggregate। (आउटपुट में "" (अवरोधन) "शीर्षक इनपुट का एक समूह है और इस गणना के लिए प्रभावी रूप से अर्थहीन है।"


के उत्पादन में एक और रूप में एक ही जानकारी दिखाई देती हैtable । जैसे, (लंबा) का आउटपुट

table(x, factor1, factor2, factor3)

इस पैनल में शामिल हैं:

, , factor2 = 2, factor3 = 0

   factor1
x    0  1
  0 20 21
  1 18 21

factor121/(21+21)=0.5x1aggregateglm


अंत में, डेटासेट के उच्चतम अनुपात में पैदावार देने वाले कारकों का एक संयोजन आसानी से आउटपुट से प्राप्त होता है aggregate:

> aggregate.results[which.max(aggregate.results$x),]
  Group.1 Group.2 Group.3         x
4       1       1       0 0.6071429

1
यह बहुत सारी जानकारी है और मुझे पचाने में कुछ समय लगेगा, लेकिन मैं सारणीबद्ध प्रतिशत को सुनकर खुश हूं और लॉजिस्टिक रिग्रेशन अनिवार्य रूप से मुझे वही परिणाम देगा। मैंने दो भविष्यवक्ताओं पर समग्र कार्य किया और यह तुरंत समाप्त हो गया ... लॉजिस्टिक फिट के लिए परिणाम कई मिनटों से चल रहे हैं और अभी तक समाप्त नहीं हुए हैं। मैं चीजों को मोड़ना जारी रखूंगा, लेकिन मैं केवल सारणीबद्ध प्रतिशत का उपयोग करके समाप्त हो सकता हूं। धन्यवाद!
राचेल

(+1), कफ से मुझे आश्चर्य होता है कि यदि लॉजिस्टिक रिग्रेशन से इस संदर्भ में मानक त्रुटियां मेरे द्वारा सुझाए गए ग्राफिकल मोज़ेक प्लॉट सारांश में शामिल की जा सकती हैं। मुझे यह भी संदेह है कि यह दिलचस्प बातचीत के परिणामों को जल्दी से "फ़िल्टर" करने का एक अच्छा तरीका हो सकता है (ये सिर्फ मेरे विचार हैं!)
एंडी डब्ल्यू

"लॉजिस्टिक रिग्रेशन, संख्यात्मक संसेचन तक, सारणीबद्ध प्रतिशत के रूप में बिल्कुल फिट बैठता है": क्या वह भविष्यवाणियों के हर विन्यास के लिए प्रतिशत को सारणीबद्ध नहीं कर रहा है? किस स्थिति में, लॉजिस्टिक रिग्रेशन सभी संभावित रिश्तों को एनकोड नहीं कर सकता है।
नील जी

@ निएल ज़रूर यह सभी "रिश्तों" (कारकों के संयोजन) को सांकेतिक शब्दों में बदलना कर सकता है: सभी संभव इंटरैक्शन का उपयोग करें। उदाहरण के लिए R कोड देखें। जब कारक कई होते हैं, तो अभ्यास में कई खाली संयोजन होंगे, लेकिन सभ्य सॉफ्टवेयर से निपटने में कोई समस्या नहीं होगी। यहां तक ​​कि बेहतर सॉफ्टवेयर प्रतिक्रियाओं में भिन्नता के साथ संयोजन को संभालेंगे।
whuber

@ और मैं ग्राफिक्स के बारे में आपके जवाब से प्यार करता हूं - हमें एक धागा बनाने का एक तरीका खोजने की आवश्यकता है जहां यह बिल्कुल सही उत्तर हो! शायद मोज़ेक भूखंडों में त्रुटि अनुमानों को शामिल करने के बारे में आपका विचार इसे प्राप्त करने का तरीका होगा: आप लॉजिस्टिक अनुमानों, वास्तविक डेटा और / या उनमें एक साथ त्रुटि का प्रतिनिधित्व कैसे करेंगे?
whuber

6

एक के लिए त्वरित प्रत्येक श्रेणी और / या कई श्रेणियों पर सशर्त भीतर बाइनरी प्रतिक्रियाओं का अनुपात पर नज़र, चित्रमय भूखंडों सेवा की जा सकती है। विशेष रूप से, एक साथ कई स्पष्ट स्वतंत्र चर पर वातानुकूलित अनुपात की कल्पना करने के लिए मैं मोज़ेक भूखंडों का सुझाव दूंगा

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

टाइटैनिक का मोज़ेक प्लॉट
(स्रोत: theusrus.de )

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

तीसरे चर पर मोज़ेक सशर्त
(स्रोत: theusrus.de )

यह आश्चर्यजनक है कि कितनी जानकारी प्रदर्शित की जाती है, यह चार आयामों (कक्षा, वयस्क / बाल, लिंग और उत्तरजीविता का अनुपात) में आनुपातिक है!

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


+1, यह वह बिंदु है जिसके बारे में मैं ऊपर अपनी टिप्पणी करने की कोशिश कर रहा था कि क्या लक्ष्य सरल विवरण या अनुमान था। Nb, कि बिंदु स्पष्ट और बेहतर बना w / आंकड़े हैं!
गंग -

@ शुक्रिया, किस बात के लिए Nbखड़ा है? मैं हमेशा आंकड़ों के साथ बेहतर कहता हूं!
एंडी डब्ल्यू

2
आँकड़ों से संबंधित कुछ भी नहीं, "नायब" का अर्थ नोटा बेने है , जो बदले में 'नोट वेल' (शाब्दिक), या 'ध्यान दें कि' / 'नोटिस' (अधिक बोलचाल) के लिए लैटिन है।
गंग - मोनिका

3

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

यह पिछले उत्तर में सुझाए गए सुविधा चयन एल्गोरिदम की श्रेणी में आएगा, और आम तौर पर लॉजिस्टिक रिग्रेशन के रूप में बेहतर भविष्यवाणियां नहीं होने पर अच्छा होगा।


2

205

यदि आपके पास कम डेटा है, तो आप कम पैरामीटर सीखना चाहते हैं। उदाहरण के लिए, आप मानदंड की संख्या को कम कर सकते हैं, उदाहरण के लिए, व्यक्तिगत भविष्यवाणियों के कॉन्फ़िगरेशन का प्रतिक्रिया चर पर लगातार प्रभाव पड़ता है।

यदि आप मानते हैं कि आपके भविष्यवक्ता एक-दूसरे से स्वतंत्र हैं, तो लॉजिस्टिक प्रतिगमन अद्वितीय एल्गोरिथ्म है जो सही काम करता है। (भले ही वे स्वतंत्र नहीं हैं, यह अभी भी काफी अच्छा कर सकता है।)

सारांश में, लॉजिस्टिक रिग्रेशन पूर्वानुमानकर्ताओं के स्वतंत्र प्रभाव के बारे में एक धारणा बनाता है, जो मॉडल मापदंडों की संख्या को कम करता है, और एक ऐसे मॉडल की पैदावार करता है जो सीखना आसान है।


1

आपको सुविधा चयन एल्गोरिदम को देखना चाहिए। आपके मामले के लिए उपयुक्त एक (बाइनरी वर्गीकरण, श्रेणीबद्ध चर) "न्यूनतम अतिरेक अधिकतम प्रासंगिकता" (mRMR) विधि है। आप जल्दी से इसे http://penglab.janelia.org/proj/mRMR/ पर ऑनलाइन देख सकते हैं


क्या एक से अधिक श्रेणीबद्ध भविष्यवक्ता के साथ इस कार्यक्रम को चलाना संभव है? अपलोड पृष्ठ पर ऐसा लगता है कि केवल पहला कॉलम डेटा का "वर्ग" हो सकता है ... शायद मुझे समझ में नहीं आता है कि डेटा को कैसे स्वरूपित किया जाना चाहिए।
राहेल

या "वर्ग" को आउटपुट वेरिएबल माना जाता है, इस मामले में 0 या 1? यदि हां, तो क्या प्रत्येक के लिए संकेतक दिखाने के लिए श्रेणीगत चर को डमी चर में बदलना महत्वपूर्ण है?
राहेल

आप जितने चाहें उतने भविष्यवक्ता हो सकते हैं। आपकी डेटा फ़ाइल की पहली पंक्ति में फ़ीचर नाम होने चाहिए, और पहले कॉलम में नमूनों के लिए कक्षाएं (प्रतिक्रिया चर) होनी चाहिए। तो, एक उदाहरण है: response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
उत्सर्जन करें

1

मैं क्रेडिट स्कोरिंग के क्षेत्र में काम करता हूं, जहां एक अजीब मामले के रूप में यहां जो प्रस्तुत किया जा रहा है वह आदर्श है।

हम लॉजिस्टिक रिग्रेशन का उपयोग करते हैं, और दोनों श्रेणीगत और निरंतर वैरिएबल को साक्ष्य (WOE) के वज़न में परिवर्तित करते हैं, जो तब रिग्रेशन में भविष्यवक्ता के रूप में उपयोग किए जाते हैं। बहुत से समय को वैरिएबल चर को समूहीकृत करने में खर्च किया जाता है, और निरंतर चरों को डिगाना (बीनिंग / वर्गीकृत करना)।

साक्ष्य का वजन एक सरल गणना है। यह वर्ग के लिए बाधाओं का लॉग है, जनसंख्या के लिए बाधाओं का लॉग कम है:
WOE = ln (अच्छा (कक्षा) / बुरा (कक्षा)) - ln (अच्छा (ALL) / Bad (ALL)) यह संस्करण है लॉजिस्टिक रिग्रेशन का उपयोग करके निर्मित लगभग सभी क्रेडिट स्कोरिंग मॉडल के लिए मानक परिवर्तन पद्धति। आप एक ही संख्या का उपयोग एक टुकड़े-टुकड़े दृष्टिकोण में कर सकते हैं।

इसकी सुंदरता यह है कि आप हमेशा यह जान पाएंगे कि प्रत्येक WOE को गुणांक दिया जा रहा है या नहीं। नकारात्मक गुणांक डेटा के भीतर पैटर्न के विपरीत होते हैं, और आमतौर पर मल्टीकोलिनरिटी से परिणाम होते हैं; और 1.0 से अधिक गुणांक overcompensation इंगित करते हैं। अधिकांश गुणांक शून्य और एक के बीच कहीं बाहर आ जाएंगे।


रोचक और ज्ञानवर्धक पोस्ट के लिए धन्यवाद। मैं यह पता नहीं लगा सकता कि इस थ्रेड में सवाल का जवाब कैसे है, हालांकि। "अजीब मामला" क्या है जिसे आप संदर्भित करते हैं? क्या आपने शायद किसी अन्य प्रश्न का उत्तर देने के लिए इसका उपयोग करने का इरादा किया है?
व्हीबर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.