मुझे निम्नलिखित वितरण से कुशलता से नमूना कैसे लेना चाहिए?
यदि बहुत बड़ा नहीं है, तो अस्वीकृति नमूनाकरण सबसे अच्छा तरीका हो सकता है, लेकिन मुझे यकीन नहीं है कि जब बड़ी है तो कैसे आगे बढ़ना है। शायद कुछ विषमतापूर्ण सन्निकटन है जो लागू किया जा सकता है?
मुझे निम्नलिखित वितरण से कुशलता से नमूना कैसे लेना चाहिए?
यदि बहुत बड़ा नहीं है, तो अस्वीकृति नमूनाकरण सबसे अच्छा तरीका हो सकता है, लेकिन मुझे यकीन नहीं है कि जब बड़ी है तो कैसे आगे बढ़ना है। शायद कुछ विषमतापूर्ण सन्निकटन है जो लागू किया जा सकता है?
जवाबों:
सबसे सरल तरीका है, और सबसे सामान्य तरीका है, जो किसी भी काटे गए वितरण पर लागू होता है (यह दोनों पक्षों पर छंटनी के लिए भी सामान्यीकृत किया जा सकता है), उलटा रूपांतरण नमूना का उपयोग करना है । यदि ब्याज का संचयी वितरण है, तो सेट करें और लें
जहां , बाएं से पर एक नमूना है । क्वांटाइल फ़ंक्शन से नमूनों की संभावनाओं को मैप करेगा । चूंकि हम केवल "क्षेत्र" से मान लेते हैं जो गैर-छंटनी वाले क्षेत्र से बीटा वितरण के मूल्यों से मेल खाता है, आप केवल उन मूल्यों का नमूना लेंगे।
इस विधि को नीचे दी गई छवि पर चित्रित किया गया है, जहां काटे गए क्षेत्र को एक ग्रे आयत द्वारा चिह्नित किया गया है, लाल रंग के बिंदुओं को वितरण से तैयार किया गया है और फिर नमूने हैं।
scipy.special.betaincमें व्युत्क्रम के लिए है और आर में है pbeta।
qbetaआर में quantile समारोह के लिए)
@ टिम का जवाब दिखाता है कि कैसे उलटा रूपांतर नमूना नमूने को काटे गए वितरण के लिए अनुकूलित किया जा सकता है, थ्रेशोल्ड पर निर्भरता के रन-टाइम को मुक्त कर सकता है । बीटा क्वांटाइल फ़ंक्शन के महंगे संख्यात्मक मूल्यांकन से बचने और अस्वीकृति नमूने के भाग के रूप में उलटा ट्रांसफ़ॉर्म सैंपलिंग का उपयोग करके आगे की दक्षता प्राप्त की जा सकती है।
आकार मानकों के साथ एक बीटा वितरण का घनत्व समारोह और दोगुना पर छोटा कर दिया (थोड़ा और व्यापकता के लिए) है
& बीच घनत्व के किसी भी मोनोटोनॉली बढ़ते हिस्से को लें : for यह लॉग-अवतल है, इसलिए आप इसे स्पर्शरेखा पर खींचे गए घातांक के साथ कवर कर सकते हैं इसके साथ कोई बिंदु:
लॉग डेन्सिटी के ग्रेडिएंट्स को समान करके पता लगाएं
अस्वीकृति के नमूने के लिए सबसे अच्छा लिफाफा वह है जिसके नीचे सबसे छोटा क्षेत्र है। यह क्षेत्र & , और छोड़ने के लिए में भावों का प्रतिस्थापन निरंतर कारक देता है
Writing the derivative is left as an exercise for readers or their computers. Any root-finding algorithm can then be used to find the for which .
The same goes, mutatis mutandis, for monotonically decreasing parts of the density. So the truncated beta distribution can be quite neatly enveloped by two exponential functions, say, one from to the mode & one from the mode to , ready for rejection sampling. (For a truncated uniform random variable , has a truncated exponential distribution with rate parameter .)
The beauty of this approach is that all the hard work's in the set up. Once the envelope function's defined, the normalizing constant for the truncated beta density calculated, all that's left is to generate uniform random variates, & perform on them a few simple arithmetical operations, logs & powers, & comparisons. Tightening the envelope function—with horizontal lines or more exponential curves—can of course reduce the number of rejections.