लॉजिस्टिक रिग्रेशन द्विपद वितरण का उपयोग कैसे करता है?


19

मैं यह समझने की कोशिश कर रहा हूं कि लॉजिस्टिक रिग्रेशन द्विपद वितरण का उपयोग कैसे करता है।

मान लीजिए कि मैं पक्षियों में घोंसले की सफलता का अध्ययन कर रहा हूं। एक घोंसले के सफल होने की संभावना 0.6 है। द्विपद वितरण का उपयोग करते हुए, मैं n परीक्षणों (आर अध्ययनरत घोंसलों की संख्या) को दिए गए आर सफलताओं की संभावना की गणना कर सकता हूं।

लेकिन एक मॉडलिंग संदर्भ में द्विपद वितरण का उपयोग कैसे किया जाता है? मान लें कि मैं जानना चाहता हूं कि दैनिक तापमान घोंसले की सफलता को कैसे प्रभावित करता है और मैं इस प्रश्न का पता लगाने के लिए लॉजिस्टिक प्रतिगमन का उपयोग करता हूं।

मेरे द्वारा वर्णित संदर्भ के भीतर, लॉजिस्टिक प्रतिगमन द्विपद वितरण का उपयोग कैसे करता है?

मैं एक सहज जवाब की तलाश कर रहा हूँ, इसलिए समीकरणों के बिना एक जवाब! मुझे लगता है कि समीकरण केवल एक बार उपयोगी होते हैं जब समझ सहज स्तर पर प्राप्त की गई हो।



2
यह संदर्भ के लिए एक अच्छा धागा है, @ user777, लेकिन मुझे लगता है कि यह एक डुप्लिकेट के रूप में काम नहीं कर सकता है यदि ओपी विशेष रूप से समीकरणों के बिना स्पष्टीकरण का अनुरोध करता है। एक अच्छा सवाल है, हालांकि, यह है कि क्या द्विपद वितरण की भूमिका को किसी भी समीकरण को अच्छी तरह से समझाया जा सकता है। निश्चित रूप से LR को एक सहज व्याख्या दी जा सकती है, लेकिन द्विपद w / i LR की भूमिका स्वाभाविक रूप से कुछ हद तक गणितीय है।
गूँग - मोनिका

@ लुंग ने लूसियानो से माफ़ी मांगी। जब मैंने संभावित उत्तरों पर विचार किया, तो "द्विपद वितरण" को "कोई समीकरण नहीं" दिखाई दिया। जाहिर है कि ओपी के अनुरोध के साथ असंगत था।
साइकोरैक्स का कहना है कि

मुझे लगता है कि मैंने प्रतिगमन के लिए लॉग ऑड स्केल का उपयोग करने के विचार को समझा है, फिर लॉग स्केल से 0-1 स्केल में परिवर्तित कर दिया। लेकिन मैं चीजों को 'द्विपदिक रूप से वितरित किया जाता है' की तर्ज पर पढ़ता रहता हूं। त्रुटियों को द्विपद रूप से कैसे वितरित किया जा सकता है?
लुसियानो

5
आप जिस भी किताब में पढ़ते हैं, उसे फेंक देते हैं।
Scortchi - को पुनः स्थापित मोनिका

जवाबों:


7

tπ(t)ttnπ(t)

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


15

बिना समीकरणों के? ओह। चलो देखते हैं:

p

npinip

क्योंकि लॉजिस्टिक लिंक द्विपद परिवार के लिए विहित है, यह भी अच्छा है, क्योंकि पर्याप्त आँकड़े बहुत सरल रूप के हैं - यह बड़े नमूनों से निपटने या यहां तक ​​कि 'ऑनलाइन' एल्गोरिदम विकसित करने के लिए सुविधाजनक बनाता है।

p

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


इस पोस्ट को बनाने में किसी भी समानता के प्रतीकों को नुकसान नहीं पहुंचाया गया था।


2

आपका मॉडल मानता है कि एक घोंसले की सफलता को एक जुआ के रूप में देखा जा सकता है: भगवान "सफलता" और "विफलता" लेबल वाले पक्षों के साथ एक लोड किए गए सिक्के को फहराता है। एक घोंसले के लिए फ्लिप का परिणाम किसी अन्य घोंसले के लिए फ्लिप के परिणाम से स्वतंत्र है।

पक्षियों के पास उनके लिए कुछ चल रहा है, हालांकि: सिक्का दूसरों की तुलना में कुछ तापमान पर सफलता का पक्ष ले सकता है। इस प्रकार, जब आपके पास किसी दिए गए तापमान पर घोंसले का निरीक्षण करने का मौका होता है, तो सफलताओं की संख्या एक ही सिक्के के सफल flips की संख्या के बराबर होती है - उस तापमान के लिए एक। संबंधित द्विपद वितरण सफलताओं की संभावनाओं का वर्णन करता है। यही है, यह शून्य सफलताओं की संभावना स्थापित करता है, एक की, दो की, ... और इतने पर घोंसले की संख्या के माध्यम से।

तापमान और भगवान द्वारा सिक्कों के बीच संबंध का एक उचित अनुमान उस तापमान पर देखी गई सफलताओं के अनुपात से दिया गया है। यह अधिकतम संभावना अनुमान (MLE) है।

71033/7.3/73

5,10,15,200,3,2,32,7,5,3

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

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

आकृति

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

अब एक ट्रेडऑफ बनाया जाना चाहिए: लाइन कुछ डेटा बिंदुओं के करीब से गुजर सकती है, केवल दूसरों से दूर वीर करने के लिए। इससे संबंधित द्विपद वितरण पहले की तुलना में अधिक देखे गए मानों को कम संभावनाएं प्रदान करता है। आप इसे 10 डिग्री और 15 डिग्री पर स्पष्ट रूप से देख सकते हैं: देखे गए मूल्यों की संभावना उच्चतम संभव संभावना नहीं है, न ही यह ऊपरी पंक्ति में निर्दिष्ट मूल्यों के करीब है।

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

"सर्वश्रेष्ठ" क्या है? बस इतना है कि सभी डेटा की संयुक्त संभावना यथासंभव बड़ी है। इस तरह किसी भी एकल संभावना (लाल खंडों) को वास्तव में छोटे होने की अनुमति नहीं है, लेकिन आमतौर पर अधिकांश संभावनाएं उतनी अधिक नहीं होंगी जितनी वे संतृप्त मॉडल में थीं।

यहाँ लॉजिस्टिक रिग्रेशन खोज का एक पुनरावृत्ति है जहाँ लाइन को नीचे की ओर घुमाया गया था:

चित्र 2

1015डिग्री लेकिन अन्य डेटा फिटिंग का एक भयानक काम। (5 और 20 डिग्री पर डेटा को दी गई द्विपद संभावनाएं इतनी छोटी हैं कि आप लाल खंड भी नहीं देख सकते हैं।) कुल मिलाकर, यह पहले आंकड़े में दिखाए गए लोगों की तुलना में बहुत खराब है।


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


परिशिष्ट: Rआंकड़ों का उत्पादन करने के लिए कोड

#
# Create example data.
#
X <- data.frame(temperature=c(5,10,15,20),
                nests=c(2,7,5,3),
                successes=c(0,3,2,3))
#
# A function to plot a Binomial(n,p) distribution and highlight the value `k0`.
#
plot.binom <- function(n, p, k0, highlight="#f02020", ...) {
  plot(0:n, dbinom(0:n, n, p), type="h", yaxt="n",
       xlab="Trials", ylab="Probability", ...)
  abline(v = p*n, lty=3, lwd=2)
  if(!missing(k0)) lines(rep(k0,2), c(0, dbinom(k0,n,p)), lwd=2, col=highlight)
}
#
# A function to convert from probability to log odds.
#
logit <- function(p) log(p) - log(1-p)
#
# Fit a saturated model, then the intended model.
#
# Ordinarily the formula for the saturated model would be in the form
# `... ~ factor(temperature)`, but the following method makes it possible to  
# plot the predicted values in a visually effective way.
#
fit.0 <- glm(cbind(successes, nests-successes) ~ factor(round(temperature/5)), 
             data=X, family=binomial)
summary(fit.0)

fit <- glm(cbind(successes, nests-successes) ~ temperature, 
           data=X, family=binomial)
summary(fit)
#
# Plot both fits, one per row.
#
lfits <- list(fit.0, fit)
par.old <- par(mfrow=c(length(lfits), nrow(X)+2))
for (fit in lfits) {
  #
  # Construct arrays of plotting points.
  #
  X$p.hat <- predict(fit, type="response")
  Y <- data.frame(temperature = seq(min(X$temperature), max(X$temperature), 
                                    length.out=101))
  Y$p.hat <- predict(fit, type="response", newdata=Y)  # Probability
  Y$lambda.hat <- predict(fit, type="link", newdata=Y) # Log odds
  #
  # Plot the fit in terms of log odds.
  #
  with(Y, plot(temperature, lambda.hat, type="n", 
               yaxt="n", bty="n", main="Logit Response",
               ylab=expression(hat(lambda))))
  if (isTRUE(diff(range(Y$lambda.hat)) < 6)) {
    # Draw gridlines and y-axis labels
    p <- c( .10, .25, .5, .75, .9)
    q <- logit(p)
    suppressWarnings(rug(q, side=2))
    abline(h=q, col="#d0d0d0")
    mtext(signif(p, 2), at=q, side=2, cex=0.6)
  }
  with(Y, lines(temperature, lambda.hat, lwd=2, col="#f02020"))
  #
  # Plot the data and the fit in terms of probability.
  #
  with(X, plot(temperature, successes/nests, ylim=0:1,
               cex=sqrt(nests), pch=21, bg="Gray",
               main="Fit"))
  with(Y, lines(temperature, p.hat, col="#f02020", lwd=2))
  #
  # Plot the Binomial distributions associated with each row of the data.
  #
  apply(X, 1, function(x) plot.binom(x[2], x[4], x[3], bty="n", lwd=2, col="Gray",
                                     main=paste(x[1], "Degrees")))
}
par(mfrow=par.old)

वहाँ r कोड का खुलासा किया जाएगा? बहुत धन्यवाद।
मैक्सिमिलियन

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