मान लें कि मेरे पास एक फ़ंक्शन जिसे मैं को एकीकृत करना चाहता हूं निश्चित रूप से समापन बिंदु पर शून्य पर जाता है, कोई ब्लोअप, अच्छा कार्य नहीं करता है। एक तरीका जिससे मैं नमूनों की सूची को वितरण आनुपातिक से उत्पन्न करने के लिए मेट्रोपोलिस-हेस्टिंग्स एल्गोरिथ्म का उपयोग करना , जो सामान्य रूप से निरंतर को याद कर रहा है। जिसे मैं p (x) कहूंगा , और फिर इन x के s पर कुछ सांख्यिकीय f (x) की गणना करूंगा :
चूँकि , मैं अभिन्न से 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 दें । इस तरह से यू (एक्स)
मैंने नमूना फ़ंक्शन g (x) = e ^ {- x ^ 2} के लिए R में यह परीक्षण करने का प्रयास किया । इस मामले में मैं नमूनों को उत्पन्न करने के लिए मेट्रोपोलिस-हेस्टिंग्स का उपयोग नहीं करता हूं, लेकिन नमूनों rnorm
को उत्पन्न करने के लिए (केवल परीक्षण करने के लिए) वास्तविक संभावनाओं का उपयोग करता हूं । मुझे वे परिणाम नहीं मिल रहे हैं जिनकी मुझे तलाश है। मूल रूप से मैं जो गणना करूंगा उसकी पूर्ण अभिव्यक्ति है:
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 को एकीकृत करता है । हालाँकि, मैं अभी भी जानना चाहूंगा कि यह समान वितरण के लिए काम क्यों नहीं करता है।