लॉजिस्टिक रिग्रेशन में सही अलगाव से कैसे निपटें?


163

यदि आपके पास एक चर है जो लक्ष्य चर में पूरी तरह से शून्य और लोगों को अलग करता है, तो आर निम्नलिखित "पूर्ण या अर्ध पूर्ण पृथक्करण" चेतावनी संदेश देगा:

Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 

हम अभी भी मॉडल प्राप्त करते हैं लेकिन गुणांक अनुमान फुलाए जाते हैं।

व्यवहार में आप इससे कैसे निपटते हैं?


4
संबंधित प्रश्न
user603

1
नियमितीकरण पर संबंधित प्रश्न और डेमो यहां
Haitao Du

जवाबों:


100

इसका एक उपाय दंडित प्रतिगमन के एक रूप का उपयोग करना है। वास्तव में, यह मूल कारण है कि कुछ दंडित प्रतिगमन रूपों को विकसित किया गया था (हालांकि वे अन्य दिलचस्प गुणों के लिए निकले थे।

R में पैकेज ग्लमनेट स्थापित करें और लोड करें और आप अधिकतर जाने के लिए तैयार हैं। Glmnet के कम उपयोगकर्ता के अनुकूल पहलुओं में से एक यह है कि आप इसे केवल मैट्रिसेस को ही खिला सकते हैं, न कि फॉर्मूलों को, जैसा कि हम उपयोग करते हैं। हालाँकि, आप model.matrix और डेटा से इस मैट्रिक्स का निर्माण करने की तरह देख सकते हैं। एक फार्मूला और एक सूत्र ...

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


20
आप कैरट पैकेज के माध्यम से glmnet के लिए एक सूत्र इंटरफ़ेस का उपयोग कर सकते हैं।
Zach

"अब, जब आप उम्मीद करते हैं ..." इस बारे में प्रश्न। मेरे पास माइक्रोबायोम के साथ संबंध को देखते हुए एक केस / नियंत्रण अध्ययन है। हमारे पास एक इलाज भी है जो लगभग केवल मामलों में पाया जाता है। हालांकि, हमें लगता है कि उपचार माइक्रोबायोम को भी प्रभावित कर सकता है। क्या यह आपके कैविएट का उदाहरण है? यदि हम कोशिश करते हैं तो हाइपोथेटिक रूप से हम उपचार का उपयोग नहीं करने वाले अधिक मामलों का एक गुच्छा पा सकते हैं, लेकिन हमारे पास हमारे पास क्या है।
abalter

142

आपके पास कई विकल्प हैं:

  1. कुछ पूर्वाग्रह को दूर करें।

    (ए) @ निक के सुझाव के अनुसार संभावना को दंडित करके। आर में पैकेज लॉजिफ़्फ़ या FIRTHएसएएस में विकल्प PROC LOGISTICफ़र्थ (1993) में प्रस्तावित विधि को लागू करना, "अधिकतम संभावना अनुमानों की कमी," बायोमेट्रिक , 80 , 1 ;; जो अधिकतम संभावना अनुमानों से पहले क्रम के पूर्वाग्रह को हटा देता है। ( यहां @Gavin brglmपैकेज की सिफारिश करता है, जिससे मैं परिचित नहीं हूं, लेकिन मैं इसे गैर-विहित लिंक कार्यों जैसे प्रोबिट के लिए एक समान दृष्टिकोण लागू करता हूं।)

    (b) सटीक सशर्त लॉजिस्टिक प्रतिगमन में माध्य-निष्पक्ष अनुमानों का उपयोग करके। पैकेज एल्म या आर में logistiX , या EXACTएसएएस में बयान PROC LOGISTIC

  2. उन मामलों को छोड़ दें जहां भविष्यवक्ता श्रेणी या मूल्य अलग होने का कारण बनता है। ये आपके दायरे से बाहर हो सकते हैं; या आगे, ध्यान केंद्रित जांच के योग्य। (आर पैकेज सेफ बीनेरिअरेशन उन्हें खोजने के लिए आसान है।)

  3. मॉडल को फिर से कास्ट करें। आमतौर पर यह कुछ ऐसा है जो आपने पहले किया होगा अगर आपने इसके बारे में सोचा होगा, क्योंकि यह आपके नमूना आकार के लिए बहुत जटिल है।

    (ए) मॉडल से भविष्यवक्ता को हटा दें । Dicey, @Simon द्वारा दिए गए कारणों के लिए : "आप भविष्यवक्ता को हटा रहे हैं जो प्रतिक्रिया को सबसे अच्छा समझाता है"।

    (बी) पूर्वसूचक श्रेणियों को ढहाने से / पूर्वसूचक मूल्यों को कम करने से। अगर यह समझ में आता है।

    (c) पूर्वसूचक को दो (या अधिक) के रूप में पुन: व्यक्त करना, बिना बातचीत के कारकों को पार करना । केवल अगर यह समझ में आता है।

  4. @ Manoel के सुझाव के अनुसार बायेसियन विश्लेषण का उपयोग करें । हालांकि ऐसा लगता है कि आप इसकी अन्य खूबियों पर विचार करने के लायक होने के कारण इसे अलग नहीं करना चाहते हैं जिस पेपर की वह सिफारिश करता है, वह गेलमैन एट अल (2008) का है, "लॉजिस्टिक और अन्य रिग्रेशन मॉडल के लिए एक कमजोर सूचनात्मक डिफ़ॉल्ट वितरण", एन। Appl। स्टेट। , 2 , 4 : प्रश्न में डिफ़ॉल्ट प्रत्येक गुणांक से पहले एक स्वतंत्र कॉची है, जिसका मतलब शून्य और पैमाने के साथ है।5212

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

  6. एक छिपे हुए लॉजिस्टिक रिग्रेशन मॉडल का उपयोग करें, जैसा कि रूसेवु और क्रिस्टमैन (2003) में वर्णित है, "लॉजिस्टिक रिग्रेशन में पृथक्करण और आउटलेर्स के खिलाफ रोबस्टनेस ", कम्प्यूटेशनल स्टैटिस्टिक्स एंड डेटा एनालिसिस , 43 , 3, और आर पैकेज hlr में लागू किया गया है । (@ user603 यह सुझाव देता है। ) मैंने कागज नहीं पढ़ा है, लेकिन वे अमूर्त में कहते हैं "थोड़ा और सामान्य मॉडल प्रस्तावित किया गया है, जिसके तहत मनाया प्रतिक्रिया दृढ़ता से संबंधित है लेकिन अप्रमाणित सच्ची प्रतिक्रिया के बराबर नहीं है", जो सुझाव देता है: मुझे यह विधि का उपयोग करने के लिए एक अच्छा विचार नहीं हो सकता है जब तक कि यह प्रशंसनीय न लगे।

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


1
@Scortchi एक और (विधर्मी) विकल्प है। पूर्ण पृथक्करण प्रदर्शित करने वाले चरों में 1 से 0 या 0 से 1 के बीच कुछ यादृच्छिक रूप से चयनित टिप्पणियों को बदलने के बारे में क्या?
रॉबर्ट

@RobertF: धन्यवाद! मैंने इस बारे में नहीं सोचा था - यदि आपके पास इसके प्रदर्शन से संबंधित कोई संदर्भ है तो मैं आभारी रहूंगा। क्या आप इसे व्यवहार में लेकर लोगों के बीच आए हैं?
Scortchi

@Scortchi - नहीं, पूर्ण पृथक्करण को समाप्त करने के लिए कृत्रिम डेटा जोड़ने वाले शोधकर्ताओं के संदर्भ हैं, लेकिन मुझे डेटा के चयनात्मक संशोधन के बारे में कोई लेख नहीं मिला है। मुझे नहीं पता कि यह तरीका कितना प्रभावी होगा।
राबर्टएफ

1
@tatami: सभी (कई?) कार्यक्रम प्रति se जुदाई के बारे में चेतावनी देते हैं, जो कि कई वैरिएबल के रैखिक संयोजन पर हाजिर होने के लिए मुश्किल हो सकता है, लेकिन अभिसरण विफलता और / या सज्जित मूल्यों के बारे में शून्य या एक के करीब - मैं चाहता हूँ हमेशा इनकी जांच करें।
Scortchi

2
@ उत्तर: आपके उत्तर में बहुत अच्छा सारांश। व्यक्तिगत रूप से मैं बायेसियन दृष्टिकोण का पक्ष लेता हूं, लेकिन यह projecteuclid.org/euclid.ejs/1239716414 में लगातार बिंदु से सामान्य घटना के सुंदर विश्लेषण का उल्लेख करने योग्य है । लेखक कुछ एकतरफा विश्वास अंतराल प्रदान करता है जिसका उपयोग लॉजिस्टिक प्रतिगमन में पूर्ण अलगाव की उपस्थिति में भी किया जा सकता है।
सियान

55

यह Scortchi और Manoel के उत्तरों का विस्तार है, लेकिन जब से आप RI का उपयोग करते हैं, तो मुझे लगता है कि मैं कुछ कोड की आपूर्ति करूंगा। :)

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

यहां छवि विवरण दर्ज करें

इस विश्लेषण को कैसे चलाना है? हाथ पैकेजbayesglm में फ़ंक्शन का उपयोग करें जो इस विश्लेषण को लागू करता है!

library(arm)

set.seed(123456)
# Faking some data where x1 is unrelated to y
# while x2 perfectly separates y.
d <- data.frame(y  =  c(0,0,0,0, 0, 1,1,1,1,1),
                x1 = rnorm(10),
                x2 = sort(rnorm(10)))

fit <- glm(y ~ x1 + x2, data=d, family="binomial")

## Warning message:
## glm.fit: fitted probabilities numerically 0 or 1 occurred 

summary(fit)
## Call:
## glm(formula = y ~ x1 + x2, family = "binomial", data = d)
##
## Deviance Residuals: 
##       Min          1Q      Median          3Q         Max  
## -1.114e-05  -2.110e-08   0.000e+00   2.110e-08   1.325e-05  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)
## (Intercept)    -18.528  75938.934       0        1
## x1              -4.837  76469.100       0        1
## x2              81.689 165617.221       0        1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1.3863e+01  on 9  degrees of freedom
## Residual deviance: 3.3646e-10  on 7  degrees of freedom
## AIC: 6
## 
## Number of Fisher Scoring iterations: 25

अच्छी तरह से काम नहीं करता है ... अब बायेसियन संस्करण:

fit <- bayesglm(y ~ x1 + x2, data=d, family="binomial")
display(fit)
## bayesglm(formula = y ~ x1 + x2, family = "binomial", data = d)
##             coef.est coef.se
## (Intercept) -1.10     1.37  
## x1          -0.05     0.79  
## x2           3.75     1.85  
## ---
## n = 10, k = 3
## residual deviance = 2.2, null deviance = 3.3 (difference = 1.1)

सुपर-सरल, नहीं?

संदर्भ

जेलमैन एट अल (2008), "लॉजिस्टिक और अन्य प्रतिगमन मॉडल के लिए एक कमजोर सूचनात्मक डिफ़ॉल्ट पूर्व वितरण", एन। Appl। स्टेट।, 2, 4 http://projecteuclid.org/euclid.aoas/1231424214


6
नहीं, बहुत आसान है। क्या आप बता सकते हैं कि आपने अभी क्या किया है? bayesglmउपयोग करने से पहले क्या है ? यदि एमएल का अनुमान एक फ्लैट से पहले बायेसियन के बराबर है, तो गैर-जानकारीपूर्ण पुजारी यहां कैसे मदद करते हैं?
StasK

5
कुछ और जानकारी जोड़ी! पहले अस्पष्ट है, लेकिन सपाट नहीं है। इसका कुछ प्रभाव है क्योंकि यह अनुमानों को नियमित करता है और उन्हें 0.0 की ओर थोड़ा खींचता है जो मुझे विश्वास है कि आप इस मामले में चाहते हैं।
रासमस बैथ

> m = बायसेगलम (मिलान ~।, परिवार = द्विपद (लिंक = 'लॉगिट'), डेटा = df) चेतावनी संदेश: संभाव्य रूप से सज्जित संभावनाओं 0 या 1 हुआ अच्छा नहीं है!
क्रिस

एक स्टार्टर के रूप में, prior.dfजो कि चूक को 1.0घटाकर और / या घटाकर prior.scale2.5m=bayesglm(match ~. , family = binomial(link = 'logit'), data = df, prior.df=5)
बढ़ाता है

1
जब हम मॉडल में प्राथमिकता बढ़ाते हैं तो वास्तव में हम क्या कर रहे हैं। क्या हम कितने ऊंचे स्थान पर जाना चाहते हैं? मेरी समझ यह है कि यह मॉडल को त्रुटि के सटीक अनुमानों के साथ अभिसरण की अनुमति देने के लिए विवश करता है?
हैमिल्थज

7

अधिकतम संभावना में "अर्ध-पूर्ण अलगाव" मुद्दों के सबसे गहन स्पष्टीकरणों में से एक पॉल एलीसन का पेपर है। वह एसएएस सॉफ़्टवेयर के बारे में लिख रहा है, लेकिन उसके द्वारा संबोधित किए जाने वाले मुद्दे किसी भी सॉफ़्टवेयर के लिए सामान्य हैं:

  • पूर्ण पृथक्करण तब होता है जब x का एक रैखिक कार्य y की पूर्ण भविष्यवाणियां उत्पन्न कर सकता है

  • अर्ध-पूर्ण पृथक्करण तब होता है जब (ए) कुछ गुणांक वेक्टर बी मौजूद होता है जैसे कि bxi whenever 0 जब भी yi = 1 , और bxi ≤ 0 * जब भी ** yi = 0 और यह समानता प्रत्येक श्रेणी में कम से कम एक मामले के लिए होती है निर्भर चर। दूसरे शब्दों में सरलतम मामले में, लॉजिस्टिक रिग्रेशन में किसी भी द्विध्रुवीय स्वतंत्र चर के लिए, यदि उस चर और आश्रित चर द्वारा गठित 2 × 2 तालिका में एक शून्य है, तो प्रतिगमन गुणांक के लिए एमएल अनुमान मौजूद नहीं है।

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

http://www2.sas.com/proceedings/forum2008/360-2008.pdf


3

warning

की तर्ज पर उत्पन्न आंकड़ों के साथ

x <- seq(-3, 3, by=0.1)
y <- x > 0
summary(glm(y ~ x, family=binomial))

चेतावनी दी गई है:

Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted probabilities numerically 0 or 1 occurred 

जो बहुत स्पष्ट रूप से इस डेटा में निर्मित निर्भरता को दर्शाता है।

आर में वाल्ड परीक्षण पैकेज में summary.glmया उसके साथ पाया जाता है । संभावना अनुपात परीक्षण के साथ या साथ किया जाता हैwaldtestlmtestanovalrtestlmtest पैकेज में किया जाता है। दोनों मामलों में, सूचना मैट्रिक्स असीम रूप से मूल्यवान है, और कोई भी निष्कर्ष उपलब्ध नहीं है। बल्कि, R आउटपुट का उत्पादन करता है , लेकिन आप इस पर भरोसा नहीं कर सकते। इन मामलों में आर आमतौर पर जो उत्पादन करता है, उसका पी-मान बहुत करीब है। इसका कारण यह है कि OR में परिशुद्धता का नुकसान छोटे परिमाण के आदेश हैं जो कि विचरण-कोविरियन मैट्रिक्स में परिशुद्धता का नुकसान है।

कुछ समाधान यहां दिए गए हैं:

वन-स्टेप आकलनकर्ता का उपयोग करें,

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

fit.1s <- glm(y ~ x, family=binomial, control=glm.control(maxit=1))
summary(fit.1s)

देता है:

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.03987    0.29569  -0.135    0.893    
x            1.19604    0.16794   7.122 1.07e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

तो आप देख सकते हैं कि भविष्यवाणियां प्रवृत्ति की दिशा को दर्शाती हैं। और अनुमान बहुत रुझान के विचारोत्तेजक है जिसे हम सच मानते हैं।

यहां छवि विवरण दर्ज करें

एक स्कोर टेस्ट करें,

स्कोर (या राव) आंकड़ा संभावना अनुपात से अलग है और आँकड़े Wald। इसे वैकल्पिक परिकल्पना के तहत विचरण के मूल्यांकन की आवश्यकता नहीं है। हम मॉडल को नल के नीचे फिट करते हैं:

mm <- model.matrix( ~ x)
fit0 <- glm(y ~ 1, family=binomial)
pred0 <- predict(fit0, type='response')
inf.null <- t(mm) %*% diag(binomial()$variance(mu=pred0)) %*% mm
sc.null <- t(mm) %*% c(y - pred0)
score.stat <- t(sc.null) %*% solve(inf.null) %*% sc.null ## compare to chisq
pchisq(score.stat, 1, lower.tail=F)

χ2

> pchisq(scstat, df=1, lower.tail=F)
             [,1]
[1,] 1.343494e-11

दोनों मामलों में आपको OR के अनंत के लिए अनुमान है।

, और एक विश्वास अंतराल के लिए मंझला निष्पक्ष अनुमानों का उपयोग करें।

आप माध्य निष्पक्ष अनुमान का उपयोग करके अनंत बाधाओं अनुपात के लिए एक माध्य निष्पक्ष, गैर-विलक्षण 95% सीआई का उत्पादन कर सकते हैं। epitoolsR में पैकेज यह कर सकता है। और मैं इस अनुमानक को यहां लागू करने का एक उदाहरण देता हूं: बर्नौली नमूने के लिए आत्मविश्वास अंतराल


2
यह बहुत अच्छा है, लेकिन मेरे पास कुछ प्रश्न हैं, निश्चित रूप से: (1) संभावना अनुपात परीक्षण सूचना मैट्रिक्स का उपयोग नहीं करता है; यह केवल वाल्ड परीक्षण है जो अलगाव की उपस्थिति में भयावह रूप से विफल होता है। (२) मैं एक-कदम के अनुमानकों से बिल्कुल परिचित नहीं हूँ, लेकिन यहाँ ढलान का अनुमान बहुत कम लगता है। (३) एक विश्वास अंतराल मध्य-निष्पक्ष नहीं है। आप उस अनुभाग में क्या लिंक करते हैं वह मध्य-पी विश्वास अंतराल है। (4) आप LR या स्कोर परीक्षणों को सम्मिलित करके आत्मविश्वास अंतराल प्राप्त कर सकते हैं। ...
Scortchi

... (5) आप तर्क देकर आर में स्कोर परीक्षण प्रदर्शन कर सकते हैं test="Rao"करने के लिए anovaकार्य करते हैं। (खैर, अंतिम दो नोट्स हैं,
क्विबल्स

@ पता करने के लिए अच्छा है कि अनोवा में डिफ़ॉल्ट स्कोर परीक्षण हैं! शायद एक हाथ से कार्यान्वयन उपयोगी है। सीआई औसत दर्जे के निष्पक्ष नहीं हैं, लेकिन औसत दर्जे के निष्पक्ष अनुमानक के लिए सीआई सीमा मापदंडों के लिए लगातार निष्कर्ष प्रदान करते हैं। मिड पी एक ऐसा अनुमानक है। P को एक odds के अनुपात में बदल दिया जा सकता है b / c यह एक से एक परिवर्तनों के लिए अपरिवर्तनीय है। क्या एलआर परीक्षण सीमा मापदंडों के अनुरूप है?
एडम 23

केवल शून्य परिकल्पना को लागू करने के लिए विल्क्स प्रमेय के लिए एक सीमा पर पैरामीटर नहीं होना चाहिए, हालांकि स्कोर और एलआर परीक्षण परिमित नमूनों में अनुमानित हैं।
Scortchi

2

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

यदि आपको वास्तव में यह समस्या है, तो आप जानकारीपूर्ण पुजारियों के साथ बेयसियन मॉडलिंग का उपयोग करने का प्रयास कर सकते हैं।

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


8
भविष्यवाणियों को हटाने के साथ समस्या यह है कि आप भविष्यवक्ता को हटा रहे हैं जो प्रतिक्रिया को सबसे अच्छा समझाता है, जो कि आमतौर पर आप क्या करना चाहते हैं! मेरा तर्क है कि यह केवल तभी समझ में आता है जब आप अपने मॉडल को ओवरफिट करते हैं, उदाहरण के लिए कई जटिल इंटरैक्शन को फिट करके।
साइमन बायरन

4
बग नहीं, लेकिन प्रारंभिक अनुमानों के साथ एक समस्या MLE से बहुत दूर है, जो अगर आप उन्हें स्वयं चुनने की कोशिश नहीं करेंगे तो उत्पन्न नहीं होगी।
Scortchi

मैं इसे समझता हूं, लेकिन मुझे लगता है कि यह एल्गोरिथ्म में एक बग है।
मनोएल गाल्डिनो

5
वैसे मैं 'बग' की परिभाषा के बारे में नहीं जानना चाहता। लेकिन बेस आर में व्यवहार का न तो अथाह और न ही प्रतिकूल है - आपको "अन्य सॉफ़्टवेयर के साथ जांच" करने की आवश्यकता नहीं है। यदि आप कई गैर-कनवर्जेन्स समस्याओं से स्वचालित रूप से निपटना चाहते हैं, तो glm2पैकेज एक जांच को लागू करता है कि संभावना वास्तव में प्रत्येक स्कोरिंग कदम पर बढ़ रही है, और यदि यह नहीं है तो चरण आकार को आधा कर देता है।
स्कॉर्टची

3
वहाँ (सीआरएएन पर) आर पैकेज है safeBinaryRegression जो इस तरह की समस्याओं का निदान करने और ठीक करने के लिए डिज़ाइन किया गया है, यदि जुदाई या क्वासिपैरेशन हो तो सुनिश्चित करने के लिए अनुकूलन विधियों का उपयोग करें। कोशिश करो!
kjetil b halvorsen

2

मुझे यकीन नहीं है कि मैं आपके प्रश्न के कथनों से सहमत हूं।

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

तुम दौड़ सकते हो predict(yourmodel,yourdata,type='response') और आपको अनुमानित संभावनाओं के रूप में 0 या / और 1 मिलेगा।

नतीजतन, मुझे लगता है कि परिणामों का उपयोग करना ठीक है।


-1

मैं समझता हूं कि यह एक पुरानी पोस्ट है, हालांकि मैं अभी भी इसका जवाब देने के साथ आगे बढ़ूंगा क्योंकि मैंने इसके साथ संघर्ष किया है और यह दूसरों की मदद कर सकता है।

पूर्ण पृथक्करण तब होता है जब मॉडल को फिट करने के लिए आपके चयनित चर बहुत सटीक रूप से 0 और 1 या हां या नहीं के बीच अंतर कर सकते हैं। डेटा विज्ञान का हमारा संपूर्ण दृष्टिकोण संभाव्यता अनुमान पर आधारित है लेकिन यह इस मामले में विफल है।

सुधार के कदम: -

  1. चकाचौंध के बजाय बायसेगलम () का उपयोग करें, जब मामले में चर के बीच विचरण कम हो

  2. कई बार (मैक्सिमम = "कुछ संख्यात्मक मान") का उपयोग करके बेज़लॉग () मदद कर सकता है

3. मॉडल फिटिंग के लिए अपने चुने हुए चर के लिए सबसे महत्वपूर्ण और सबसे महत्वपूर्ण जांच, एक चर होना चाहिए जिसके लिए Y (आउटआउट) चर के साथ बहु समरूपता बहुत अधिक है, उस चर को अपने मॉडल से त्यागें।

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


2
मैं नहीं देखता कि यह उत्तर चर्चा में बहुत कुछ जोड़ता है। बायेसियन दृष्टिकोण पिछले उत्तरों में अच्छी तरह से कवर किया गया है, "समस्याग्रस्त" भविष्यवाणियों को हटाने का भी पहले से ही उल्लेख किया गया है (और हतोत्साहित)। स्टेप वाइज चर चयन शायद ही कभी एक महान विचार है जहाँ तक मुझे पता है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.