बेसीयन मॉडल एवरेजिंग (BMA) के फायदे दिखाने वाला सरल उदाहरण


12

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

मैं दो मॉडलों के साथ एक सरल उदाहरण के बारे में सोच रहा था, जिसमें से कोई भी चुन सकता है, लेकिन सही डेटा जनरेट करने वाला मॉडल (DGM) कहीं न कहीं है और सबूत वास्तव में उनमें से किसी एक का पक्ष नहीं लेते हैं। इसलिए यदि आप एक को चुनते हैं और उन पर जारी रखते हैं, तो आप मॉडल की अनिश्चितता को नजरअंदाज करेंगे और एक त्रुटि करेंगे, लेकिन BMA, हालांकि सही मॉडल मॉडल सेट का हिस्सा नहीं है, कम से कम ब्याज के पैरामीटर का सही पीछे घनत्व देता है। उदाहरण के लिए, प्रत्येक दिन (ए और बी) दो मौसम पूर्वानुमान हैं और एक मौसम का सबसे अच्छा अनुमान लगाना चाहता है, इसलिए शास्त्रीय आंकड़ों में आप सबसे पहले दोनों के बीच सबसे अच्छा फोरकास्टर खोजने की कोशिश करेंगे, लेकिन अगर सच कहीं बीच में है (अर्थात कभी-कभी A सही होता है, कभी-कभी B)। लेकिन मैं इसे औपचारिक रूप नहीं दे सका। ऐसा कुछ है लेकिन मैं विचारों के लिए बहुत खुला हूं। मुझे उम्मीद है कि यह सवाल पर्याप्त विशिष्ट है!

साहित्य में, मैंने अब तक जो भी पढ़ा है, उससे अच्छा कोई उदाहरण नहीं मिला है:

  • क्रूशके (2011) , जबकि बायेसियन आंकड़ों का एक महान परिचय, वास्तव में बीएमए पर ध्यान केंद्रित नहीं करता है और अध्याय 4 में उनके पास मौजूद सिक्का टॉस उदाहरण बायेसियन आंकड़ों को पेश करने के लिए बहुत अच्छा है, लेकिन वास्तव में बीएमए का उपयोग करने के लिए साथी शोधकर्ता को आश्वस्त नहीं करता है। ("फिर से मेरे पास तीन मॉडल क्यों हैं, एक कह रहा है कि सिक्का उचित है और दो कह रहे हैं कि यह किसी भी दिशा में पक्षपाती है?")
  • अन्य सभी चीजें जो मैंने पढ़ीं ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al। (1999) और दूसरों के टन) महान संदर्भ हैं, लेकिन मुझे उनमें एक साधारण खिलौना उदाहरण नहीं मिला है।

लेकिन शायद मैं यहां एक अच्छे स्रोत से चूक गया।

तो क्या किसी के पास BMA का परिचय देने के लिए एक अच्छा उदाहरण है? हो सकता है कि संभावना और पोस्टरीयर दिखा कर भी क्योंकि मुझे लगता है कि यह काफी शिक्षाप्रद होगा।


एक संक्षिप्त अद्यतन: मैं अभी इस प्रस्तुति में आया हूं, जो खंड 2 में फ्रीडमैन के विरोधाभास को संदर्भित करता है। एक छोटा उदाहरण है जिसमें 39 यादृच्छिक कोवरिएट सिम्युलेटेड हैं और यदि कोई सबसे अच्छा मॉडल ढूंढता है, तो अंततः एक महत्वपूर्ण कोवरिएट्स मिल जाता है। मॉडल औसत उस समस्या का एक इलाज है। मैं यहाँ कोड के साथ एक समाधान पोस्ट नहीं कर रहा हूँ क्योंकि स्पष्ट रूप से, मुझे नहीं पता कि कैसे आंकड़े प्राप्त हुए हैं।
क्रिस्टोफ_

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

जवाबों:


8

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

इसके लिए मैंने जिस R कोड का उपयोग किया है, वह नीचे प्रस्तुत किया गया है। आशा है कि यह आपको प्रेरित कर सकता है!

# The sample size
n <- 100

# The 'true' coefficient vector
Beta <- cbind(c(-1.5, 0.45, -3))

# Generate the explanatory variables which have an effect on the outcome
set.seed(1)
X <- cbind(rnorm(n, 0, 1), rnorm(n, 4, 2), rnorm(n, 0.5, 1))

# Convert this into probabilities
prob <- 1/(1+exp(-X %*% Beta))

# Generate some uniform numbers. If the elements are smaller than the corresponding elements in the prob vector, then return 1.
set.seed(2)
runis <- runif(n, 0, 1)
y <- ifelse(runis < prob, 1, 0)

# Add the nonsense variables
X <- cbind(X, rpois(n, 3))        # Redundant variable 1 (x4)
X <- cbind(X, rexp(n, 10))        # Redundant variable 2 (x5)
X <- cbind(X, rbeta(n, 3, 10))    # Redundant variable 3 (x6)
X <- cbind(X, rbinom(n, 10, 0.5)) # Redundant variable 4 (x7)
X <- cbind(X, rpois(n, 40))       # Redundant variable 5 (x8)
X <- cbind(X, rgamma(n, 10, 20))  # Redundant variable 6 (x9)
X <- cbind(X, runif(n, 0, 1))     # Redundant variable 7 (x10)


# The BMA
library(BMA)
model <- bic.glm(X, y,  glm.family="binomial", factor.type=FALSE, thresProbne0 = 5, strict = FALSE)

# The frequentist model
model2 <- glm(y~X, family = "binomial")

old.par <- par()
par(mar=c(3,2,3,1.5))
plot(model, mfrow=c(2,5))
par(old.par)

summary(model)
summary(model2)

2
यह एक अच्छा उदाहरण है, इसलिए इसके लिए +1 है। हालाँकि, जैसा कि आप पहले ही बता चुके हैं, यह वास्तव में BMA का उपयोग करने के लिए दूसरों को समझाने में मदद नहीं करता है। वास्तव में, मैं इसे चलाता हूं और मुझे यह समझाने में भी कुछ समय लगा कि BMA शास्त्रीय दृष्टिकोण की तुलना में यहां बेहतर है: सबसे अच्छा मॉडल सही मॉडल नहीं है (सर्वश्रेष्ठ मॉडल में केवल x2 और x3 शामिल हैं) और मॉडल 2 के लिए पैरामीटर नहीं हैं कम से कम, प्रासंगिक मापदंडों के लिए कम से कम। हालांकि, यह कुछ महत्वपूर्ण मापदंडों को दर्शाता है x5 और x6 जो कि नहीं होना चाहिए और BMA आपको यह बताने में बहुत अच्छा काम करता है कि यह महत्वपूर्ण नहीं है, इसलिए यह BMA के लिए एक प्लस है।
क्रिस्टोफ़_

2

इसके लिए एक महान संसाधन है:
स्टीफन ज़ुगनर (2012) द्वारा बीएमएस के साथ बायेसियन मॉडल एवरेजिंग

यह आर-पैकेज बीएमएस का उपयोग कर रहा है , अधिक जानकारी यहां पाई जा सकती है:
http://bms.zeugner.eu/

पैकेज के साथ वास्तविक दुनिया के उदाहरणों को पुन: प्रस्तुत करने के लिए दो हाथों पर ट्यूटोरियल यहां देखे जा सकते हैं:

बायेसियन विधियों के लिए एक अधिक सामान्य प्रेरक और वर्तमान परिचय निम्नलिखित पेपर है:

समय आ गया है: जॉन के। क्रुस्के, हरमन एग्यूनीस और हैरी जू द्वारा संगठनात्मक विज्ञान में डेटा विश्लेषण के लिए बायेसियन तरीके


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

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

3
@Christoph_J: क्या आप इस कागज को जानते हैं: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - यह BMA के बारे में इतना नहीं है, लेकिन किसी को समझाने के बारे में पहली जगह में सेसियन विधियों का उपयोग करने के बारे में है - शायद यह कुछ ऐसा है जो इसके लिए मददगार है। आप :-)
vonjd

1
मुझे नहीं पता था कि यह एक और बायेसियन विधियों के लिए एक बहुत अच्छा परिचयात्मक पेपर है, इसलिए लिंक के लिए +1। धन्यवाद।
क्रिस्टोफ_जे

@Christoph_J: मैं पद के हिसाब से संपादित: अपनी +1 जवाब के लिए काम नहीं किया, यह अभी भी 0 है तो आप कृपया इसे फिर से कर सकता है - धन्यवाद :-) (?!?)
vonjd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.