मारो और MCMC चलाओ


16

मैं हिट और एमसीएमसी एल्गोरिदम को चलाने की कोशिश कर रहा हूं, लेकिन मुझे यह समझने में थोड़ी परेशानी हो रही है कि इसके बारे में कैसे जाना जाए। सामान्य विचार, इस प्रकार है:

महाराष्ट्र में प्रस्ताव कूदने के लिए, हम:

  • इकाई क्षेत्र की सतह पर एक वितरण से एक दिशा उत्पन्न करेंdO
  • विवश स्थान के साथ एक हस्ताक्षरित दूरी उत्पन्न करें ।λ

हालांकि, मुझे इस बात का कोई पता नहीं है कि मुझे आर (या किसी अन्य भाषा) में इसे लागू करने के बारे में कैसे जाना चाहिए।

क्या किसी के पास कोड का स्निपेट है जो मुझे सही दिशा में इंगित करेगा?

BTW, मैं उस पुस्तकालय में दिलचस्पी नहीं रखता हूं जो इस पद्धति को करता है, मैं इसे खुद को आज़माना और कोड करना चाहता हूं।

बहुत धन्यवाद।


1
इस एल्गोरिथ्म के बारे में पहले कभी नहीं सुना, लेकिन यह बहुत दिलचस्प लगता है। क्या आप एक व्याख्यात्मक स्रोत का लिंक प्रदान कर सकते हैं? धन्यवाद !
स्टेफेन

@steffen यहां मूल पेपर का लिंक दिया गया है - वास्तव में तकनीकी रिपोर्ट। मैंने कभी भी इस प्रक्रिया का उपयोग नहीं किया है।
csgillespie

1
अन्य तरीकों से MCMC को हिट करने और चलाने का क्या फायदा है? अभिसरण की गति?
रॉकसाइंस

@fRed: यही कारण है कि मैं इनाम की पेशकश की। मैंने हिट एंड रन के बारे में पढ़ा है, लेकिन यह नहीं पता कि यह किन परिस्थितियों में उपयोगी होगा।
csgillespie

3
लिंक अब टूट गया है।
डेकोवेल्स

जवाबों:


11

मैंने आपके द्वारा दिए गए कागज को नहीं देखा, लेकिन मुझे वैसे भी जाने दो:

यदि आपके पास एक -डायमेंशनल पैरामीटर स्पेस है तो आप यूनिट के क्षेत्र में समान रूप से वितरित एक यादृच्छिक दिशा d उत्पन्न कर सकते हैं।pd

x <- rnorm(p)
d <- x/sqrt(sum(x^2))

(सीएफ विकी )।

फिर, अस्वीकृति के नमूने के लिए प्रस्तावों को उत्पन्न करने के लिए इसका उपयोग करें (यह मानते हुए कि आप वास्तव में डी के वितरण का मूल्यांकन कर सकते हैं )।dd

मान लें कि आपने स्थिति शुरू कर दी है और एक डी स्वीकार कर लिया है , तो एक प्रस्ताव y के साथ उत्पन्न करेंxdy

 lambda <- r<SOMEDISTRIBUTION>(foo, bar)
 y <- x + lambda * d

और एक मेट्रोपोलिस-हेस्टिंग्स-स्टेप यह तय करने के लिए कि को स्थानांतरित करना है या नहीं।y

बेशक, यह कितनी अच्छी तरह काम कर सकता है यह के वितरण पर निर्भर करेगा और रिजेक्शन सैंपलिंग स्टेप में इसके घनत्व का कितना (बार-बार) मूल्यांकन है, लेकिन चूंकि डी के लिए प्रस्ताव तैयार करना सस्ता है इसलिए आप इससे दूर हो सकते हैं।dd


@ Csgillespie के लाभ के लिए जोड़ा गया:

मैं जो कुछ गोलगप्पे से इकट्ठा करने में सक्षम था, हिट-एंड-रन MCMC मुख्य रूप से तेजी से मिश्रण के लिए उपयोगी है यदि आपके पास एक (बहुभिन्नरूपी) लक्ष्य है जो मनमाने ढंग से घिरा हुआ है, लेकिन जरूरी नहीं कि जुड़ा हुआ समर्थन है, क्योंकि यह आपको किसी भी बिंदु पर स्थानांतरित करने में सक्षम बनाता है एक कदम में किसी अन्य के समर्थन में। अधिक यहाँ और यहाँ


1
यदि यह उत्तर संतोषजनक नहीं है, तो क्या आप बता सकते हैं कि क्यों?
जॉन साल्वेटियर

मुझे @fred के बारे में निश्चित नहीं है, लेकिन जब मैंने इनाम की पेशकश की तो मुझे लगता है कि मैं हिट-एंड-रन MCMC में थोड़ी अधिक जानकारी चाहता था। उदाहरण के लिए, यह किस प्रकार की समस्याओं के लिए सबसे उपयुक्त होगा। बेशक, अगर कोई अन्य जवाब नहीं है, तो यह सवाल इनाम जीत जाएगा।
csgillespie

3
@csgillespie: मैंने आपकी रुचि को बेहतर बनाने के लिए अपने उत्तर को संपादित किया। यह मत कहो कि मैं इनाम का अवांछनीय था। ;)
फैबियों

2
लिंक के लिए बहुत धन्यवाद। जिन कारणों से मैंने इनाम रखा था, उनमें से एक यह था कि मेरी Google खोजों ने विधि के कुछ गणितीय चर्चाओं को बदल दिया, लेकिन व्यावहारिक अनुप्रयोगों के तरीके में बहुत कम। कृपया इसे मामूली के रूप में न लें अगर मैं इनाम देने से पहले एक और 48 घंटे इंतजार करता हूं (यह एक विशेष रूप से उदार इनाम है!)
18

4

जब मैं हिट-एंड-रन के मूल संदर्भ की तलाश कर रहा था, तो मैं आपके सवाल पर आया था। उसके लिए धन्यवाद! मैंने हाल ही में इस ब्लॉग के अंत में PyMC के हिट-एंड-रन का एक प्रूफ-ऑफ-कॉन्सेप्ट लागू किया ।

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