कुशलता से एक थ्रेसहोल्ड बीटा वितरण का नमूना


10

मुझे निम्नलिखित वितरण से कुशलता से नमूना कैसे लेना चाहिए?

xB(α,β), x>k

यदि बहुत बड़ा नहीं है, तो अस्वीकृति नमूनाकरण सबसे अच्छा तरीका हो सकता है, लेकिन मुझे यकीन नहीं है कि जब बड़ी है तो कैसे आगे बढ़ना है। शायद कुछ विषमतापूर्ण सन्निकटन है जो लागू किया जा सकता है?kk


1
यह स्पष्ट रूप से स्पष्ट नहीं है कि आप " " "द्वारा वहां क्या इरादा रखते हैं । क्या आपका मतलब एक काटे गए बीटा डिस्ट्रीब्यूशन ( पर बाईं ओर छोटा ) है? xB(α,β), x>kk
Glen_b -Reinstate Monica

@Glen_b बिल्कुल।
user1502040

5
1 से अधिक दोनों आकार के मापदंडों के लिए बीटा वितरण लॉग-अवतल है, इसलिए घातीय लिफाफे का उपयोग अस्वीकृति के नमूने के लिए किया जा सकता है। के रूप में असंबद्ध बीटा संस्करण उत्पन्न करने के लिए आप पहले से ही काटे गए घातीय वितरण (जो करना आसान है) से नमूना ले रहे हैं इस पद्धति को अनुकूलित करने के लिए सीधा होना चाहिए।
Scortchi - को पुनः स्थापित मोनिका

जवाबों:


14

सबसे सरल तरीका है, और सबसे सामान्य तरीका है, जो किसी भी काटे गए वितरण पर लागू होता है (यह दोनों पक्षों पर छंटनी के लिए भी सामान्यीकृत किया जा सकता है), उलटा रूपांतरण नमूना का उपयोग करना है । यदि ब्याज का संचयी वितरण है, तो सेट करें और लेंFp0=F(k)

UU(p0,1)X=F1(U)

जहां , बाएं से पर एक नमूना है । क्वांटाइल फ़ंक्शन से नमूनों की संभावनाओं को मैप करेगा । चूंकि हम केवल "क्षेत्र" से मान लेते हैं जो गैर-छंटनी वाले क्षेत्र से बीटा वितरण के मूल्यों से मेल खाता है, आप केवल उन मूल्यों का नमूना लेंगे।XFkF1FU

इस विधि को नीचे दी गई छवि पर चित्रित किया गया है, जहां काटे गए क्षेत्र को एक ग्रे आयत द्वारा चिह्नित किया गया है, लाल रंग के बिंदुओं को वितरण से तैयार किया गया है और फिर नमूने हैं।U(p0,1)B(2,8)

काटे गए वितरण से उलटा रूपांतर नमूना


5
(+1) यह टिप्पणी करने योग्य है कि क्वांटाइल फ़ंक्शन का इतनी आसानी से मूल्यांकन नहीं किया जाता है।
Scortchi - को पुनः स्थापित मोनिका

1
@ स्कोर्टची यदि या तो बी या 1 या कम से कम पूर्णांक हैं, तो इतना बुरा रूप नहीं है (देखें विकिपीडिया )। और पायथन scipy.special.betaincमें व्युत्क्रम के लिए है और आर में है pbeta
ग्रिफ़र

3
@ ग्रीपर: मुझे "सस्ते में, सामान्य रूप से" कहा जाना चाहिए - यदि संभव हो तो न्यूटन-रफसन या अन्य पुनरावृत्त समाधानों से बचना बेहतर होगा। (Btw यह है qbetaआर में quantile समारोह के लिए)
को पुनः स्थापित मोनिका - Scortchi

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

1
निस्संदेह यह एक आम तौर पर लागू हो, हाथ जिसका रन-टाइम के साथ भी नहीं बढ़ता है करने के लिए आसानी से लागू विधि होना अच्छी बात ; & बंद-मात्रात्मक फ़ंक्शंस के साथ वितरण के लिए, उदाहरण के लिए वेइबुल, यह उतना ही अच्छा होना चाहिए जितना इसे मिलता है। फिर भी मुझे संदेह है कि बीटा वितरण के एक बड़े हिस्से को बंद करने के लिए को सेट करना होगा, इससे पहले कि यह कुशल रिजेक्शन-सैंपलिंग एल्गोरिदम को हरा दे जो कि अधिकांश सॉफ्टवेयर में भी उपलब्ध हैं और जो केवल बीटा की प्रायिकता घनत्व की गणना पर निर्भर हैं। kk
Scortchi - को पुनः स्थापित मोनिका

8

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

आकार मानकों के साथ एक बीटा वितरण का घनत्व समारोह और दोगुना पर छोटा कर दिया (थोड़ा और व्यापकता के लिए) हैαβk1<k2

f(x)=x(α1)(1x)(β1)B(k2,α,β)B(k1,α,β)

& बीच घनत्व के किसी भी मोनोटोनॉली बढ़ते हिस्से को लें : for यह लॉग-अवतल है, इसलिए आप इसे स्पर्शरेखा पर खींचे गए घातांक के साथ कवर कर सकते हैं इसके साथ कोई बिंदु:xLxUα,β>1

g(x)=cλeλ(xxL)

लॉग डेन्सिटी के ग्रेडिएंट्स को समान करके पता लगाएंλ

λ=a1xb11x
& को यह पता लगाने के लिए कि उस बिंदु पर घनत्व को पूरा करने के लिए घातीय घनत्व को कितना बढ़ाया जाना चाहिए? c
c=f(x)λeλ(xxL)

यहां छवि विवरण दर्ज करें

अस्वीकृति के नमूने के लिए सबसे अच्छा लिफाफा वह है जिसके नीचे सबसे छोटा क्षेत्र है। यह क्षेत्र & , और छोड़ने के लिए में भावों का प्रतिस्थापन निरंतर कारक देता है

A=c(1eλ(xUxL))
xλc

Q(x)=xa(1x)b(a+b2)xa+1[exp((b1)(xxL)1x+xL(a1)x(a1))exp((b1)(xxU)1x+xU(a1)x(a1))]

Writing the derivative dQdx is left as an exercise for readers or their computers. Any root-finding algorithm can then be used to find the x for which dQdx=0.

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 k1 to the mode & one from the mode to k2, ready for rejection sampling. (For a truncated uniform random variable U, log(1U)λ has a truncated exponential distribution with rate parameter λ.)

enter image description here

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.


1
+1 Nice idea. Because Beta is approximately normal for modest to large values of its parameters, depending on how close to each other they are, using a Gaussian envelope might be quite a bit more efficient yet.
whuber

@whuber: I wanted a distribution with a closed-form quantile distribution for the envelope, but I suppose you could generate the truncated Gaussian variates efficiently using one of those good approximations to the Gaussian quantile function. I'm still interested in what you'd do when α<1 or β<1.
Scortchi - Reinstate Monica

1
For such small α and β, you would want to switch to an exponential tail. I'm unsure what you mean by "closed-form," though: when you look hard at computer implementations of exponentials, Gaussians, hypergeometric functions, etc--that is, all the non-algebraic functions--you discover that none of them have a general "closed form": they are computed through successive approximations such as Taylor series, partial fractions, or asymptotic expansions. There's not much difference between computing an exponential and computing a Gaussian quantile.
whuber

@whuber: (1) The approach I've taken here to constructing envelopes wouldn't work because the densities aren't log-concave. (2) (a) I meant certainly algebraic functions + logs & powers, trig. functions if I'd have been asked, & perhaps even gamma functions - I confess I didn't have a precise notion. (b) Point taken - speedy function evaluations aren't confined to those with closed forms.
Scortchi - Reinstate Monica

1
Good point about failure of log-concavity. I suspect a power law distribution ought to make a good envelope for α<1 or β<1.
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.