लॉजिस्टिक रिग्रेशन के लिए विश्वास अंतराल की गणना


15

मैं एक द्विपद उपस्कर प्रतिगमन का उपयोग करने के लिए पहचानता हूं कि यदि उपयोगकर्ता किसी वस्तु पर क्लिक करेगा has_xया has_yइसकी संभावना को प्रभावित करेगा या नहीं । मेरा मॉडल निम्नलिखित है:

fit = glm(formula = has_clicked ~ has_x + has_y, 
          data=df, 
          family = binomial())

मेरे मॉडल से यह आउटपुट:

Call:
glm(formula = has_clicked ~ has_x + has_y, 
    family = binomial(), data = active_domains)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.9869  -0.9719  -0.9500   1.3979   1.4233  

Coefficients:
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.504737   0.008847 -57.050  < 2e-16 ***
has_xTRUE -0.056986   0.010201  -5.586 2.32e-08 ***
has_yTRUE  0.038579   0.010202   3.781 0.000156 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 217119  on 164182  degrees of freedom
Residual deviance: 217074  on 164180  degrees of freedom
AIC: 217080

Number of Fisher Scoring iterations: 4

जैसा कि प्रत्येक गुणांक महत्वपूर्ण है, इस मॉडल का उपयोग करके मैं यह बताने में सक्षम हूं कि इनमें से किसी भी संयोजन का मूल्य निम्नलिखित दृष्टिकोण का उपयोग कर रहा है:

predict(fit, data.frame(has_x = T, has_y=T), type = "response")

मुझे समझ नहीं आ रहा है कि मैं Std पर कैसे रिपोर्ट कर सकता हूँ। भविष्यवाणी की त्रुटि।

  1. मैं तो बस का उपयोग करने की आवश्यकता है ? या क्या मुझे यहाँ वर्णित दृष्टिकोण का उपयोग करके एस को बदलने की आवश्यकता है ?1.96SESE

  2. यदि मैं दोनों चर के लिए मानक-त्रुटि को समझना चाहता हूं तो मैं उस पर कैसे विचार करूंगा?

इस प्रश्न के विपरीत , मुझे यह समझने में दिलचस्पी है कि त्रुटि के ऊपरी और निचले सीमा एक प्रतिशत में क्या हैं। उदाहरण के लिए, मेरी भविष्यवाणी से पता चलता है True,Trueकि मैं ३ can % का मान रख सकता हूं कि यह ९ ५ % सी I के लिए है ? (मेरी बात समझाने के लिए 0.3% चुना गया)+/0.395%CI




@kjetilbhalvorsen क्या आप सुनिश्चित हैं कि यह एक डुप्लिकेट है क्योंकि ओपी एक पूर्वानुमान अंतराल चाहता है, लेकिन लगता है कि लॉग स्केल के बजाय OR पैमाने पर काम कर रहा है जो समस्या की जड़ हो सकता है?
mdewey

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

1
क्या इससे कोई मदद मिल सकती है? stackoverflow.com/questions/47414842/…
जेवियर बॉरेट सिस्कोट

जवाबों:


24

βTx

पृष्ठभूमि

स्मरण करो कि लॉजिस्टिक प्रतिगमन मॉडल के लिए

  • (Y=1)p=eα+β1x1+β2x21+eα+β1x1+β2x2

  • (Y=1)(p1p)=eα+β1x1+β2x2

  • (Y=1)log(p1p)=α+β1x1+β2x2

x1x1+1

Odds(Y=1)=eα+β1(x1+1)+β2x2=eα+β1x1+β1+β2x2
  • इसलिए ऑड्स रेशियो (OR) हैं

Odds(x1+1)Odds(x1)=eα+β1(x1+1)+β2x2eα+β1x1+β2x2=eβ1
  • β1

  • eα+β1x1+β1+β2x21+eα+β1x1+β1+β2x2eα+β1x1+β2x21+eα+β1x1+β2x2

गुणांक की व्याख्या करना

βj

  • xjβj
  • xjeβj
  • xjkk+ΔeβjΔ
  • xj

βj

1.96SE

βj

βj±zSE(βj)

eβj±zSE(βj)

जो अंतर अनुपात पर एक विश्वास अंतराल है। ध्यान दें कि ये अंतराल केवल एक ही पैरामीटर के लिए हैं।

यदि मैं दोनों चर के लिए मानक-त्रुटि को समझना चाहता हूं तो मैं उस पर कैसे विचार करूंगा?

यदि आप कई मापदंडों को शामिल करते हैं, तो आप बोनफेरोनी प्रक्रिया का उपयोग कर सकते हैं, अन्यथा सभी मापदंडों के लिए आप संभाव्यता अनुमानों के लिए विश्वास अंतराल का उपयोग कर सकते हैं

कई मापदंडों के लिए बोनफेरोनी प्रक्रिया

g1α

βg±z(1α2g)SE(βg)

संभाव्यता अनुमानों के लिए आत्मविश्वास का अंतराल

pPr(pLppU)=.95

समापन बिंदु परिवर्तन नामक एक दृष्टिकोण निम्नलिखित है:

  • xTβ
  • F(xTβ)

Pr(xTβ)=F(xTβ)xTβ

[Pr(xTβ)LPr(xTβ)Pr(xTβ)U]=[F(xTβ)LF(xTβ)F(xTβ)U]

βTx±zSE(βTx)

[exTβzSE(xTβ)1+exTβzSE(xTβ),exTβ+zSE(xTβ)1+exTβ+zSE(xTβ),]

xTβ

Var(xTβ)=xTΣx

(0,1)

डेल्टा विधि, बूटस्ट्रैपिंग आदि का उपयोग करते हुए कई अन्य दृष्टिकोण भी हैं, जिनमें से प्रत्येक की अपनी धारणाएं, फायदे और सीमाएं हैं।


स्रोत और जानकारी

इस विषय पर मेरी पसंदीदा पुस्तक कुटनर, नेटर, ली, अध्याय 14 द्वारा "एप्लाइड रैखिक सांख्यिकीय मॉडल" है

अन्यथा यहाँ कुछ ऑनलाइन स्रोत हैं:


इनमें से ज्यादातर गुणांक के लिए सीआई के बारे में है जो ओपी के लिए एक अच्छी बात है, लेकिन क्या हमें यकीन है कि उसे क्या चाहिए? आप बाद में अनुभाग मुझे और अधिक प्रासंगिक लगता है, लेकिन अगर बहुत जल्दी पढ़ लिया जाए तो शायद अंतर छूट जाए?
mdewey

2
हाँ, आप शायद सही हैं - लेकिन ऑड्स को समझना, लॉग रिग्रेशन के लिए ऑड्स और प्रायिकता कुछ ऐसी चीज है जिससे मैं अतीत में जूझता था - मुझे उम्मीद है कि यह पोस्ट इस विषय को इतनी अच्छी तरह से सारांशित करता है कि यह भविष्य में किसी की मदद कर सके। शायद मैं एक सीआई प्रदान करके इस प्रश्न का अधिक स्पष्ट रूप से उत्तर दे सकता हूं लेकिन हमें सहसंयोजक मैट्रिक्स की आवश्यकता होगी
जेवियर बॉरेट सिसिली

5

भविष्यवाणी के 95% विश्वास अंतराल को प्राप्त करने के लिए आप लॉगिट स्केल पर गणना कर सकते हैं और फिर उन लोगों को संभावना के पैमाने पर 0-1 में बदल सकते हैं। यहां टाइटैनिक डेटासेट का उपयोग करके एक उदाहरण दिया गया है।

library(titanic)
data("titanic_train")

titanic_train$Pclass = factor(titanic_train$Pclass, levels = c(1,2,3), labels = c('First','Second','Third'))

fit = glm(Survived ~ Sex + Pclass, data=titanic_train, family = binomial())

inverse_logit = function(x){
  exp(x)/(1+exp(x))
}

predicted = predict(fit, data.frame(Sex='male', Pclass='First'), type='link', se.fit=TRUE)

se_high = inverse_logit(predicted$fit + (predicted$se.fit*1.96))
se_low = inverse_logit(predicted$fit - (predicted$se.fit*1.96))
expected = inverse_logit(predicted$fit)

माध्य और निम्न / उच्च 95% CI।

> expected
        1 
0.4146556 
> se_high
        1 
0.4960988 
> se_low
        1 
0.3376243 

और केवल उपयोग से आउटपुट type='response', जो केवल माध्य देता है

predict(fit, data.frame(Sex='male', Pclass='First'), type='response')
        1 
0.4146556

predict(fit, data.frame(Sex='male', Pclass='First'), type='response', se.fit=TRUE)काम करेगा।
टोनी ४१६
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.