मेट्रोपोलिस-हेस्टिंग्स एकीकरण - मेरी रणनीति काम क्यों नहीं कर रही है?


16

मान लें कि मेरे पास एक फ़ंक्शन g(x) जिसे मैं को एकीकृत करना चाहता हूं निश्चित रूप से समापन बिंदु पर शून्य पर जाता है, कोई ब्लोअप, अच्छा कार्य नहीं करता है। एक तरीका जिससे मैं नमूनों की सूची को वितरण आनुपातिक से उत्पन्न करने के लिए मेट्रोपोलिस-हेस्टिंग्स एल्गोरिथ्म का उपयोग करना , जो सामान्य रूप से निरंतर को याद कर रहा है। जिसे मैं p (x) कहूंगा , और फिर इन x के s पर कुछ सांख्यिकीय f (x) की गणना करूंगा :

g(x)dx.
g(x)x1,x2,,xng(x)
N=g(x)dx
p(x)f(x)x
1ni=0nf(xi)f(x)p(x)dx.

चूँकि p(x)=g(x)/N , मैं अभिन्न से g को रद्द करने के लिए f (x) = U (x) / g (x) में स्थानापन्न कर सकता हूँ , जिसके परिणामस्वरूप फॉर्म \ frac {1} का एक अभिव्यक्ति है। {N} \ int _ {- \ infty} ^ {\ infty} \ frac {U (x)} {g (x)} g (x) dx = \ frac {1} {N} \ int _ {- \ inf inf} ^ \ infty U (x) dx। इसलिए बशर्ते कि उस क्षेत्र में U (x) 1 के साथ एकीकृत हो , मुझे 1 / N परिणाम प्राप्त करना चाहिए , जिसे मैं केवल वांछित उत्तर प्राप्त करने के लिए पारस्परिक ले सकता था। इसलिए मैं अपने नमूने की सीमा ले सकता था (सबसे प्रभावी रूप से बिंदुओं का उपयोग करने के लिए) r = x_ \ max - x_ \ min और मैंने जो नमूना लिया है, उसके लिए U (x) = 1 / r दें । इस तरह से यू (एक्स)f(x)=U(x)/g(x)g

1NU(x)g(x)g(x)dx=1NU(x)dx.
U(x)11/Nr=xmaxxminU(x)=1/rU(x)उस क्षेत्र के बाहर शून्य का मूल्यांकन करता है जहां मेरे नमूने नहीं हैं, लेकिन उस क्षेत्र में 1 से एकीकृत 1होता है। इसलिए यदि मैं अब अपेक्षित मूल्य लेता हूं, मुझे प्राप्त करना चाहिए:
E[U(x)g(x)]=1N1ni=0nU(x)g(x).

मैंने नमूना फ़ंक्शन g (x) = e ^ {- x ^ 2} के लिए R में यह परीक्षण करने का प्रयास किया g(x)=ex2। इस मामले में मैं नमूनों को उत्पन्न करने के लिए मेट्रोपोलिस-हेस्टिंग्स का उपयोग नहीं करता हूं, लेकिन नमूनों rnormको उत्पन्न करने के लिए (केवल परीक्षण करने के लिए) वास्तविक संभावनाओं का उपयोग करता हूं । मुझे वे परिणाम नहीं मिल रहे हैं जिनकी मुझे तलाश है। मूल रूप से मैं जो गणना करूंगा उसकी पूर्ण अभिव्यक्ति है:

1n(xmaxxmin)i=0n1exi2.
यह मेरे सिद्धांत में 1 / \ sqrt {\ pi} का मूल्यांकन करना चाहिए 1/π। यह करीब हो जाता है लेकिन यह निश्चित रूप से अपेक्षित तरीके से नहीं होता है, क्या मैं कुछ गलत कर रहा हूं?
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896

क्लिफब के लिए संपादित करें

जिस कारण से मैं रेंज का उपयोग करता हूं वह आसानी से एक फ़ंक्शन को परिभाषित करने के लिए है जो उस क्षेत्र पर गैर-शून्य है जहां मेरे अंक हैं, लेकिन यह रेंज [- \ infty, \ infty] पर 1 से एकीकृत होता है । फ़ंक्शन का पूरा विनिर्देश है: U (x) = \ start {case} \ frac {1} {x_ \ max - x_ \ min} और x_ \ max> x> x_ \ min \\ 0 & \ text {अन्यथा ।} \ end {मामले} मुझे इस एकसमान घनत्व के रूप में यू (x) का उपयोग नहीं करना पड़ा। मैं कुछ अन्य घनत्व का उपयोग कर सकता था जो कि 1 से एकीकृत हो , उदाहरण के लिए प्रायिकता घनत्व P (x) = \ frac {1} {\ sqrt {\ pi}} e ^ {- x ^ 2}। हालाँकि इसने व्यक्तिगत नमूनों को तुच्छ बना दिया होगा 1[,]

U(x)={1xmaxxminxmax>x>xmin0otherwise.
U(x)1
P(x)=1πex2.
1ni=0nP(x)g(x)=1ni=0nexi2/πexi2=1ni=0n1π=1π.

मैं इस तकनीक को अन्य वितरणों के लिए आज़मा सकता हूं जो 1 को एकीकृत करता है 1। हालाँकि, मैं अभी भी जानना चाहूंगा कि यह समान वितरण के लिए काम क्यों नहीं करता है।


केवल इस पर जल्दी से देख रहे हैं, इसलिए मुझे यकीन नहीं है कि आपने रेंज (x) का उपयोग करने का निर्णय क्यों लिया है। सशर्त रूप से मान्य होने पर, यह बेहद अक्षम है! उस आकार के नमूने की सीमा आपके द्वारा ली जा सकने वाली सबसे अस्थिर सांख्यिकी के बारे में है।
क्लिफ एबी

@CliffAB सीमा का उपयोग करने के बारे में विशेष रूप से कुछ भी नहीं है, एक तरफ अंतराल पर एक समान वितरण को परिभाषित करने से जहां मेरे बिंदु झूठ बोलते हैं। संपादन देखें।
माइक फ्लिन

1
मैं इसे बाद में और अधिक विस्तार से देखूंगा। लेकिन विचार करने के लिए कुछ ऐसा है कि जैसे कि x एक समान RV का सेट है, तो , range । लेकिन अगर x गैर-सामान्य सामान्य RV का सेट है, तो , । n(x)1nrange(x)
क्लिफ एबी

@ क्लिफ़ब आप सही हो सकते हैं, मुझे लगता है कि इसका कारण यह था कि अभिन्न की सीमा तय नहीं थी, और इसलिए अनुमानक का विचरण कभी नहीं होगा ...
माइक फ्लिन

जवाबों:


13

यह एक सबसे दिलचस्प सवाल है, जो एक ही घनत्व से MCMC आउटपुट पर आधारित घनत्व एक सामान्य स्थिरांक को अनुमानित करने के मुद्दे से संबंधित है । (एक पक्ष की टिप्पणी यह ​​है कि बनाने के लिए सही धारणा यह है कि पूर्णांक है, अनंत पर शून्य में जाना पर्याप्त नहीं है।)ggg

मेरी राय में, आपके सुझाव के संबंध में इस विषय पर सबसे अधिक प्रासंगिक प्रविष्टि गेलफैंड और डे (1994, जेआरएसएस बी ) का एक पेपर है , जहां लेखक को खोजने के लिए एक समान दृष्टिकोण विकसित करते हैं से उत्पन्न करते समय । इस पत्र में एक परिणाम यह है कि, किसी भी प्रायिकता घनत्व [यह आपके ] के समतुल्य है, जैसे कि निम्नलिखित पहचान पता चलता है कि से एक नमूना एक उत्पादन कर सकते हैं

Xg(x)dx
p(x)g(x)α(x)U(x)
{x;α(x)>0}{x;g(x)>0}
Xα(x)g(x)p(x)dx=Xα(x)Ndx=1N
p के महत्व के नमूने का निष्पक्ष मूल्यांकन करके आकलनकर्ता स्पष्ट रूप से, आकलनकर्ता ( गति, एक विचरण का अस्तित्व, और tc।) आकलनकर्ता की करते हैं, जो [ की पसंद पर निर्भर करते हैं ] हालांकि इसकी उम्मीद] नहीं है। एक बायेसियन ढांचे में, एक विकल्प द्वारा की वकालत Gelfand और डे लेने के लिए है , पूर्व घनत्व। इससे जहां संभावना कार्य है, क्योंकि1/N
η^=1ni=1nα(xi)g(xi)xiiidp(x)
η^αα=π
α(x)g(x)=1(x)
(x)g(x)=π(x)(x)। दुर्भाग्य से, जिसके परिणामस्वरूप आकलनकर्ता है हरात्मक माध्य आकलनकर्ता भी कहा जाता है सबसे खराब मोंटे कार्लो आकलनकर्ता कभी द्वारा रेडफोर्ड नील, टोरंटो विश्वविद्यालय से। तो यह हमेशा अच्छी तरह से काम नहीं करता है। या शायद ही कभी।
N^=ni=1n1/(xi)

आपके नमूने की सीमा का उपयोग करने का आपका विचार और उस सीमा पर वर्दी हार्मोनिक माध्य मुद्दे के साथ जुड़ा हुआ है: इस अनुमानक के पास केवल _ की वजह से विचरण नहीं होता है अंश में दिखाई दे रहा है (मुझे संदेह है कि यह हमेशा एक अनबाउंड समर्थन के लिए मामला हो सकता है!) और यह इस प्रकार बहुत धीरे-धीरे सामान्य करने वाले स्थिर में परिवर्तित होता है। उदाहरण के लिए, यदि आप अपने कोड को कई बार रीयर करते हैं, तो आपको 10⁶ पुनरावृत्तियों के बाद बहुत भिन्न संख्यात्मक मान मिलते हैं। इसका मतलब है कि आप उत्तर की भयावहता पर भी भरोसा नहीं कर सकते।(min(xi),max(xi))exp{x2}

इस अनंत विचरण मुद्दे पर एक सामान्य आकलन के लिए उपयोग करने के लिए है एक अधिक केंद्रित घनत्व, उदाहरण के लिए अपने नमूने के चतुर्थकों का उपयोग कर , क्योंकि तो इस अंतराल पर कम-बाउंड रहता है।α(q.25(xi),q.75(xi))g

अपने कोड को इस नए घनत्व में बदलने पर, सन्निकटन बहुत करीब होता है :1/π

ys = rnorm(1e6, 0, 1/sqrt(2))
r = quantile(ys,.75) - quantile(ys,.25)
yc=ys[(ys>quantile(ys,.25))&(ys<quantile(ys,.75))]
sum(sapply(yc, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.5649015. 1/sqrt(pi) = 0.5641896

हम डैरेन व्रेथ और जीन-मिशेल मारिन के साथ दो पत्रों में विवरण में इस पद्धति पर चर्चा करते हैं ।

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