जब कक्षाएं अच्छी तरह से अलग हो जाती हैं तो लॉजिस्टिक रिग्रेशन अस्थिर क्यों हो जाता है?


34

जब कक्षाएं अच्छी तरह से अलग हो जाती हैं तो लॉजिस्टिक रिग्रेशन अस्थिर क्यों हो जाता है? अच्छी तरह से अलग वर्गों का क्या मतलब है? अगर कोई उदाहरण के साथ समझा सकता है तो मैं वास्तव में सराहना करूंगा।


4
मैं विस्तार से समझाता हूं, यहां एक प्रमाण के साथ: आंकड़े ।stackexchange.com
मैथ्यू ड्र्यूरी

2
और मेरे पास प्रश्न को समझाने के लिए कुछ डेमो भी था: सांख्यिकी.स्टैकएक्सचेंज.com
Haitao Du

जवाबों:


31

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

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

फिर अलगाव के लिए दो अलग-अलग संभावित कारण हैं (जैसा कि ऊपर कहा गया है)। पूरी आबादी में अलगाव हो सकता है, या कुछ देखे गए मामलों / बहुत अधिक चर के कारण अलगाव हो सकता है।

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

  1. नियमितीकरण, जैसे रिज या लासो, शायद बूटस्ट्रैप के साथ संयुक्त।
  2. सटीक सशर्त उपस्कर प्रतिगमन
  3. क्रमपरिवर्तन परीक्षण, देखें https://www.ncbi.nlm.nih.gov/pubmed/15515134
  4. आग्नेयास्त्रों पूर्वाग्रह कम अनुमान प्रक्रिया, देखें लॉजिस्टिक प्रतिगमन मॉडल अभिसरण नहीं करता है
  5. निश्चित रूप से अन्य ...

यदि आप R का उपयोग करते हैं, तो CRAN पर एक पैकेज है SafeBinaryRegression, जो पृथक्करण के साथ समस्याओं का निदान करने में मदद करता है, गणितीय अनुकूलन विधियों का उपयोग करके यह सुनिश्चित करने के लिए जाँच करता है कि क्या पृथक्करण या विलोपन है! निम्नलिखित में मैं इस पैकेज का उपयोग करके एक सिम्युलेटेड उदाहरण दूंगा, और elrmअनुमानित सशर्त लॉजिस्टिक प्रतिगमन के लिए पैकेज।

सबसे पहले, safeBinaryRegressionपैकेज के साथ एक सरल उदाहरण । यह पैकेज glmरेखीय प्रोग्रामिंग विधियों का उपयोग करते हुए, फंक्शन को फिर से परिभाषित करता है, इसे पृथक्करण के परीक्षण के साथ अधिभारित करता है। यदि यह पृथक्करण का पता लगाता है, तो यह एक त्रुटि स्थिति के साथ बाहर निकलता है, यह घोषणा करता है कि एमएलई मौजूद नहीं है। अन्यथा यह सिर्फ साधारण glmफ़ंक्शन से चलता है stats। इसका उदाहरण इसके मदद पन्नों से है:

library(safeBinaryRegression)   # Some testing of that package,
                                # based on its examples
# complete separation:
x  <-  c(-2, -1, 1, 2)
y  <-  c(0, 0, 1, 1)
glm(y ~ x, family=binomial)
glm(y ~ x,  family=binomial,  separation="test")
stats::glm(y~ x, family=binomial)
# Quasicomplete separation:
x  <-  c(-2, 0, 0, 2)
y  <-  c(0, 0, 1, 1)
glm(y ~ x, family=binomial)
glm(y ~ x,  family=binomial,  separation="test")
stats::glm(y~ x, family=binomial)

इसे चलाने से आउटपुट:

> # complete separation:
> x  <-  c(-2, -1, 1, 2)
> y  <-  c(0, 0, 1, 1)
> glm(y ~ x, family=binomial)
Error in glm(y ~ x, family = binomial) : 
  The following terms are causing separation among the sample points: (Intercept), x
> glm(y ~ x,  family=binomial,  separation="test")
Error in glm(y ~ x, family = binomial, separation = "test") : 
  Separation exists among the sample points.
    This model cannot be fit by maximum likelihood.
> stats::glm(y~ x, family=binomial)

Call:  stats::glm(formula = y ~ x, family = binomial)

Coefficients:
(Intercept)            x  
 -9.031e-08    2.314e+01  

Degrees of Freedom: 3 Total (i.e. Null);  2 Residual
Null Deviance:      5.545 
Residual Deviance: 3.567e-10    AIC: 4
Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 
> # Quasicomplete separation:
> x  <-  c(-2, 0, 0, 2)
> y  <-  c(0, 0, 1, 1)
> glm(y ~ x, family=binomial)
Error in glm(y ~ x, family = binomial) : 
  The following terms are causing separation among the sample points: x
> glm(y ~ x,  family=binomial,  separation="test")
Error in glm(y ~ x, family = binomial, separation = "test") : 
  Separation exists among the sample points.
    This model cannot be fit by maximum likelihood.
> stats::glm(y~ x, family=binomial)

Call:  stats::glm(formula = y ~ x, family = binomial)

Coefficients:
(Intercept)            x  
  5.009e-17    9.783e+00  

Degrees of Freedom: 3 Total (i.e. Null);  2 Residual
Null Deviance:      5.545 
Residual Deviance: 2.773    AIC: 6.773

अब हम एक मॉडल से अनुकरण करते हैं जो एक लॉजिस्टिक मॉडल द्वारा बारीकी से अनुमानित किया जा सकता है, सिवाय इसके कि एक निश्चित कटऑफ के ऊपर घटना की संभावना बिल्कुल 1.0 है। जैव समस्या के बारे में सोचें, लेकिन कटऑफ के ऊपर जहर हमेशा मारता है:

pl  <-  function(a, b, x) 1/(1+exp(-a-b*x))
a  <-  0
b  <-  1.5
x_cutoff  <-  uniroot(function(x) pl(0,1.5,x)-0.98,lower=1,upper=3.5)$root
### circa 2.6
pltrue  <-  function(a, b, x) ifelse(x < x_cutoff, pl(a, b, x), 1.0)

x <- -3:3

### Let us simulate many times from this model,  and try to estimate it
### with safeBinaryRegression::glm  That way we can estimate the probability
### of separation from this model

set.seed(31415926)  ### May I have a large container of coffee 
replications  <-  1000
p  <-  pltrue(a, b, x)
err  <-  0
good  <- 0

for (i in 1:replications) {
    y  <- rbinom(length(x), 1, p)
    res  <-  try(glm(y~x, family=binomial), silent=TRUE)
    if (inherits(res,"try-error")) err <-  err+1 else good <- good+1
}
P_separation  <-  err/replications
P_separation

इस कोड को चलाते समय, हम 0.759 के रूप में अलग होने की संभावना का अनुमान लगाते हैं। कोड स्वयं चलाएं, यह तेज़ है!

फिर हम एल्रम से विभिन्न अनुमान प्रक्रियाओं, एमएलई और अनुमानित सशर्त लॉजिस्टिक प्रतिगमन की कोशिश करने के लिए इस कोड का विस्तार करते हैं। इस सिमुलेशन को चलाने में मेरे कंप्यूटर पर लगभग 40 मिनट लगते हैं।

library(elrm)  # from CRAN
set.seed(31415926)  ### May I have a large container of coffee
replications  <-  1000
GOOD  <-  numeric(length=replications) ### will be set to one when MLE exists!
COEFS <- matrix(as.numeric(NA), replications, 2)
COEFS.elrm <- matrix(as.numeric(NA), replications, 2) # But we'll only use second col for x
p  <-  pltrue(a, b, x)
err  <-  0
good  <- 0

for (i in 1:replications) {
    y  <- rbinom(length(x), 1, p)
    res  <-  try(glm(y~x, family=binomial), silent=TRUE)
    if (inherits(res,"try-error")) err <-  err+1 else{ good <- good+1
                                                     GOOD[i] <- 1 }
    # Using stats::glm
    mod  <-  stats::glm(y~x, family=binomial)
    COEFS[i, ]  <-  coef(mod)
    # Using elrm:
    DATASET  <-  data.frame(x=x, y=y, n=1)
    mod.elrm  <-  elrm(y/n ~ x,  interest= ~ x -1, r=4, iter=10000, burnIn=1000,
                       dataset=DATASET)
    COEFS.elrm[i, 2 ]  <-  mod.erlm$coeffs       
}
### Now we can compare coefficient estimates of x,
###  when there are separation,  and when not:

non  <-  which(GOOD==1)
cof.mle.non  <-  COEFS[non, 2, drop=TRUE]
cof.mle.sep  <-  COEFS[-non, 2, drop=TRUE]
cof.elrm.non  <-  COEFS.elrm[non, 2, drop=TRUE]
cof.elrm.sep  <-  COEFS.elrm[-non, 2, drop=TRUE]

अब हम परिणामों की साजिश करना चाहते हैं, लेकिन इससे पहले, ध्यान दें कि सभी सशर्त अनुमान समान हैं! यह वास्तव में अजीब है और इसे स्पष्टीकरण की आवश्यकता है ... सामान्य मूल्य 0.9523975 है। लेकिन कम से कम हमने विश्वास के अंतराल के साथ परिमित अनुमान प्राप्त किए, जिसमें सही मूल्य (यहां नहीं दिखाया गया है) शामिल है। इसलिए मैं केवल अलगाव के बिना मामलों में मील अनुमान का एक हिस्टोग्राम दिखाऊंगा:

hist(cof.mle.non, prob=TRUE)

[नकली पैरामीटर अनुमानों का हिस्टोग्राम [1]

क्या उल्लेखनीय है कि सभी अनुमान सही मूल्य 1.5 से कम हैं। इस तथ्य के साथ करना पड़ सकता है कि हमने एक संशोधित मॉडल से नकल की है, जांच की आवश्यकता है।



1
(+1) लेकिन यह कहना ज्यादा मजबूत है कि हमें अधिकतम संभावना के अलावा एक अनुमान प्रक्रिया की आवश्यकता है। अनंत अंतर और अंतर अनुपात समझदार बिंदु अनुमान हो सकते हैं; अक्सर पर्याप्त अलगाव के कारण होने वाली समस्या सिर्फ अच्छे अंतराल का अनुमान लगा रही है।
Scortchi - को पुनः स्थापित मोनिका

@kjetilbhalvorsen माफी एक पुराने धागे को पुनर्जीवित करने के लिए, लेकिन मैं सोच रहा था कि क्या आप अजगर में एक समान पैकेज के बारे में जानते हैं?
मेप

क्षमा करें, लेकिन मुझे अजगर के बारे में नहीं पता है। लेकिन अजगर के भीतर से आर चलाना संभव होना चाहिए।
kjetil b halvorsen

25

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

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


1
(+1) यह समस्या का एक बहुत ही उपयोगी चित्रण है।
mkt -

एक दिलचस्प पहलू यह है कि आपका आरेख दिखाता है कि आप आदर्श रूप से "x स्थान" से आना चाहते हैं जो 50-50 संभावनाओं की ओर जाता है (उदाहरण के लिए सीमा 12 <x <15)। वास्तव में मुझे लगता है कि आप शायद इस मध्य क्षेत्र (10 <x <17) से वास्तविक जीवन परिदृश्य में अधिक डेटा एकत्र करना चाहते हैं जो इस परिणाम को प्रदान करता है।
प्रोबेबिलिसोलॉजिक

@probabilityislogic, यह सही है। रिश्ते के बारे में अधिकांश जानकारी मध्य क्षेत्र के डेटा में है।
गूँग - मोनिका

10

इसका मतलब है कि एक हाइपरप्लेन है जैसे कि एक तरफ सभी सकारात्मक बिंदु हैं और दूसरी तरफ सभी नकारात्मक हैं। अधिकतम संभावना समाधान तब एक तरफ फ्लैट 1 और दूसरी तरफ सपाट 0 होता है, जो अनंत में गुणांक होने के कारण लॉजिस्टिक फ़ंक्शन के साथ 'प्राप्त' होता है।


6

जिसे आप "पृथक्करण" कह रहे हैं ('अलगाव' नहीं) दो अलग-अलग स्थितियों को समाहित करता है जो एक ही मुद्दे का कारण बनते हैं - जिसे मैं नहीं कहूंगा, हालांकि, "अस्थिरता" का एक मुद्दा जैसा कि आप करते हैं।

एक उदाहरण: टाइटैनिक पर जीवन रक्षा

  • DV(0,1)SV एक अलग स्वतंत्र चर।

    SVDV01 जीवित रहने का संकेत है।

  • SVDV

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

  • SVDV=0DV=1

    SVDV=1DV=0

    SVDV=0DV=1

DVSVSV आवश्यकता नहीं है बाइनरी होना जैसा कि मेरे उदाहरण में है)।

इन मामलों में लॉजिस्टिक रिग्रेशन "अस्थिर" क्यों है?

यह Rainey 2016 और Zorn 2005 में अच्छी तरह से समझाया गया है

  • DV1SV=1DV0SV=0

    SV=1 प्रथम श्रेणी के यात्री सदस्यता का संकेत ।

    यह समस्याग्रस्त है क्योंकि लॉजिस्टिक वक्र कड़ाई के बीच स्थित है0 तथा 1, जिसका अर्थ है कि देखे गए डेटा को मॉडल करने के लिए, अधिकतमकरण अपनी कुछ शर्तों को अनन्तता की ओर धकेलने वाला है, यदि आप चाहें, तो एसवी "असीम" की भविष्यवाणी डीवी

  • अर्ध-पूर्ण पृथक्करण के तहत एक ही समस्या उत्पन्न होती है , क्योंकि लॉजिस्टिक वक्र को अभी भी या तो केवल मान निर्दिष्ट करने की आवश्यकता होगी0 या 1 सेवा मेरे डीवी एक दो मामलों में, एसवी=0 या एसवी=1

दोनों ही मामलों में, आपके मॉडल की संभावना फ़ंक्शन को अधिकतम संभावना अनुमान लगाने में असमर्थ होगा: यह केवल एसिमेटोटॉलिक रूप से संपर्क करके उस मूल्य का एक अनुमान लगाएगा।

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


नोट: मेरा उदाहरण काल्पनिक है। टाइटैनिक पर जीवन रक्षा केवल यात्री वर्ग की सदस्यता के लिए नहीं उबरी। हॉल (1986) देखें ।

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