लगातार बर्नौली सफलताओं की गैर-पूर्णांक राशि कैसे उत्पन्न करें?


18

दिया हुआ:

  1. अज्ञात पूर्वाग्रह (सिर) के साथ एक सिक्का ।pp
  2. एक सख्ती से सकारात्मक वास्तविकa>0a>0

मुसीबत:

पूर्वाग्रह साथ एक यादृच्छिक बर्नोली संस्करण उत्पन्न करें ।papa

क्या किसी को भी यह करना आता है? उदाहरण के लिए, जब सकारात्मक पूर्णांक होता है, तो कोई सिक्का को बार फ्लिप कर सकता है और देख सकता है कि सभी परिणाम प्रमुख थे: यदि वे तब '0' जारी कर रहे हैं, अन्यथा '1' जारी करें। कठिनाई तथ्य यह है कि में निहित है जरूरी एक पूर्णांक नहीं है। इसके अलावा, अगर मुझे पूर्वाग्रह पता था, तो मैं वांछित पूर्वाग्रह के साथ एक और सिक्का बना सकता था। एक aएक aएक aपीp


2
@ गुंग: मुझे लगता है कि बर्नौली संस्करण उत्पन्न करने के लिए एक सिक्का दिया गया एल्गोरिदम क्या चाहता है।
नील जी

1
मुझे लगता है कि यहां मुद्दा यह है कि जब एक > 1a>1 आप केवल 1 के एक औसत हर से बाहर रखने के लिए एकa सिर पॉप-अप होने और जब एक < 1a<1 , आप सिर के एक औसत से प्रत्येक नकल 1 / एक1/a बार।
मैक्रो

3
@ मैक्रो, क्या आप इस विचार पर विस्तार कर सकते हैं?
पेड्रो ए। ऑर्टेगा

1
प्रिय पेड्रो, (+1) आपकी पोस्ट के लिए, जो एक ऐसा सवाल है जो सीवी को बहुत कम और उत्तेजित करता है, कम से कम मेरे लिए। क्या मैं पूछ सकता हूं कि इस प्रश्न का मूल क्या है?
कार्डिनल

@ कार्डिनल: आपके उत्तर के लिए फिर से धन्यवाद! यह समस्या स्टोकेस्टिक नियंत्रण समस्याओं को हल करने के लिए एक नमूना का एक हिस्सा है जो मैं काम कर रहा हूं। पी क्यों pअज्ञात है इसका कारण यह है कि इसे सामान्यीकृत स्थिरांक को जानने की आवश्यकता होगी (जो इस मामले में एक बुरा विभाजन कार्य है), लेकिन हम अभी भी इसे अस्वीकृति नमूने का उपयोग करके नमूना कर सकते हैं। Btw, यह अच्छा होगा कि आप नाम से ही उद्धृत करें, न कि केवल सीवी ;-) के लिंक।
पेड्रो ए। ऑर्टेगा

जवाबों:


19

हम इसे "ट्रिक्स" और थोड़ा गणित के एक जोड़े के माध्यम से हल कर सकते हैं।

यहाँ बुनियादी एल्गोरिथ्म है:

  1. सफलता पी की संभावना के साथ एक ज्यामितीय यादृच्छिक चर उत्पन्न करें p
  2. इस यादृच्छिक चर के परिणाम एक निश्चित ज्ञात मूल्य निर्धारित करता है n[ 0 , 1 ]fn[0,1]
  3. हमारे B e r ( p ) सिक्के के ब्लॉक वाइज प्लीट्स से उत्पन्न फेयर कॉइन फ्लिप्स का उपयोग करके एक B e r ( f n )Ber(fn) रैंडम वेरिएबल जेनरेट करें ।Ber(p)
  4. जिसके परिणामस्वरूप परिणाम हो जाएगा बी आर ( पी एक )Ber(pa) किसी के लिए एक ( 0 , 1 )a(0,1) जो हम सभी की जरूरत है।

चीजों को अधिक सुपाच्य बनाने के लिए, हम चीजों को टुकड़ों में तोड़ देंगे।

टुकड़ा 1 : व्यापकता के नुकसान के बिना मान लें कि 0 < a < 10<a<1

यदि एक 1a1 है, तो, हम लिख सकते हैं पी एक = पी एन पी बीpa=pnpb कुछ सकारात्मक पूर्णांक के लिए nn और कुछ 0 < 10b<1 । लेकिन, किसी भी दो स्वतंत्र बर्नौली के लिए, हमारे पास P ( X 1 = X 2 = 1 ) = p 1 p 2 है

P(X1=X2=1)=p1p2.
हमस्पष्ट रूप से अपने सिक्के सेएक पी एनpn बर्नौलीउत्पन्न कर सकते हैं। इसलिए, हम केवल चिंता का विषय अपने आप को पैदा करने के साथ की जरूरत बी आर ( पी एक )Ber(pa) जब एक ( 0 , 1 )a(0,1)

टुकड़ा 2 : पता है कि कैसे एक मनमाना बी उत्पन्न करने के लिएBer(q)फेयर कॉइन फ्लिप्स से r ( q )

ऐसा करने का एक मानक तरीका है। विस्तृत क्ष = 0. क्ष 1 क्ष 2 क्ष 3 ...q=0.q1q2q3 अपने द्विआधारी विस्तार में और फिर हमारे निष्पक्ष सिक्का "मैच" के अंकों को flips का उपयोग क्षq । पहला मैच यह निर्धारित करता है कि क्या हम एक सफलता ("प्रमुख") या विफलता ("पूंछ") घोषित करते हैं। यदि q n = 1qn=1 और हमारा सिक्का फ्लिप है, तो सिर की घोषणा करें, यदि q n = 0qn=0 और हमारा सिक्का फ्लिप पूंछ है, तो मेल की घोषणा करें। अन्यथा, एक नया सिक्का फ्लिप के खिलाफ बाद के अंक पर विचार करें।

टुकड़ा 3 : अज्ञात पूर्वाग्रह के साथ अनुचित लोगों से फ्लिप एक निष्पक्ष सिक्का उत्पन्न करने के लिए कैसे पता है।

यह किया जाता है, मानों पी ( 0 , 1 )p(0,1) , जोड़े में सिक्का flipping द्वारा। यदि हम एच टी प्राप्त HTकरते हैं, तो सिर घोषित करें; यदि हमें T H मिलता है TH, तो एक पूंछ घोषित करें, और अन्यथा प्रयोग को दोहराएं जब तक कि दो उल्लिखित परिणामों में से एक न हो। वे समान रूप से संभावित हैं, इसलिए संभावना होनी चाहिए 1 / 21/2

टुकड़ा ४ : कुछ गणित। (बचाव के लिए टेलर)

विस्तार करके ( पी ) = पी एकh(p)=pa के आसपास पी 0 = 1p0=1 , टेलर की प्रमेय का दावा है कि पी एक = 1 - एक ( 1 - पी ) - एक ( 1 - एक )! (1-पी)2-(1-)(2-)! (1-पी)3

pa=1a(1p)a(1a)2!(1p)2a(1a)(2a)3!(1p)3.
ध्यान दें कि क्योंकि 0 < एक < 10<a<1 , के बाद प्रत्येक शब्द पहली बार हैनकारात्मकहै, तो हमारे पास पी एक = 1 - Σ n = 1n ( 1 - पी ) n, जहां 0 n1 में जाना जाता हैएक प्रायोरी। इसलिए 1 - पी एक = Σ n = 1n ( 1 - पी ) n = Σ n = 1n पी ( G n ) = Σ n = 1n पी ( G = n ) =
pa=1n=1bn(1p)n,
0bn1( जी ) , जहां जी ~ जी मीटर ( पी ) ,0 = 0 औरn = Σ n कश्मीर = 1कश्मीर के लिए n 1
1pa=n=1bn(1p)n=n=1bnP(Gn)=n=1fnP(G=n)=Ef(G),
GGeom(p)f0=0fn=nk=1bkn1

और, हम पहले से ही कैसे हमारे सिक्का उपयोग करने के लिए सफलता की संभावना के साथ एक ज्यामितीय यादृच्छिक चर उत्पन्न करने के लिए पता पीp

टुकड़ा 5 : एक मोंटे कार्लो चाल।

चलो एक्स एक असतत यादृच्छिक में मान लेने परिवर्तनशील हो [ 0 , 1 ] के साथ पी ( एक्स = एक्स एन ) = पी एन । चलो यू | एक्स ~ बी आर ( एक्स ) । फिर पी ( यू = 1 ) = Σ एन एक्स एन पी एनX[0,1]P(X=xn)=pnUXBer(X)

P(U=1)=nxnpn.

लेकिन, लेने पी एन = पी ( 1 - पी ) n और एक्स एन = n , अब हम देखते हैं कि कैसे एक उत्पन्न करने के लिए बी आर ( 1 - पी एक ) यादृच्छिक चर और यह एक पैदा करने के बराबर है बी आर ( पी ) एक।pn=p(1p)nxn=fnBer(1pa)Ber(pa)


मैं आपको (या आपके समाधान) कैसे उद्धृत कर सकता हूं?
पेड्रो ए। ऑर्टेगा

2
@Proro: मुझे लगता है कि आप इस उत्तर के नीचे "शेयर" लिंक पर क्लिक कर सकते हैं। यह एक स्थिर कड़ी होनी चाहिए। Math.SE में एक उद्धरण तंत्र है , जो इस साइट पर सक्षम नहीं दिखता है, लेकिन आप इसे अनुकूलित करने में सक्षम हो सकते हैं।
कार्डिनल

1
अब, यह एक शानदार जवाब है!
झेन

1
मैंने एनालिटिक कॉम्बिनेटरिक्स पर कौरसेरा क्लास के जनरल डिस्कशन फ़ोरम में इसे लिखा था क्योंकि यह वहां कवर की गई कुछ सामग्री से संबंधित पावर सीरीज़ का अच्छा उपयोग था। class.coursera.org/introACpartI-001/forum/thread?thread_id=108
डगलस

@ डगलस: धन्यवाद! क्या उस धागे का सार्वजनिक रूप से देखने योग्य संस्करण है या मुझे इसे देखने के लिए पाठ्यक्रम के लिए साइन अप करना होगा? पेड्रो और मैं अपने कुछ शोधों में इस दृष्टिकोण को शामिल करने के लिए संभावित ईमेल के बारे में चर्चा कर रहे हैं।
कार्डिनल

6

निम्नलिखित उत्तर मूर्खतापूर्ण है?

यदि एक्स 1 , ... , एक्स एन हैं स्वतंत्र बी आर ( पी ) और वाई एन वितरण है बी आर ( ( Σ n मैं = 1 एक्स मैं / n ) एक ) , तो Y n लगभग के रूप में वितरित किया जाएगा बी आर ( पी एक ) , जब एन X1,,XnBer(p)YnBer((ni=1Xi/n)a)YnBer(pa)n

इसलिए, अगर आप नहीं जानते कि पी , लेकिन आप इस सिक्के को उछाल कर सकते हैं एक बहुत समय की है, यह संभव नमूने के लिए (लगभग) एक से है बी आर ( पी एक ) यादृच्छिक चर।pBer(pa)

उदाहरण Rकोड:

n <- 1000000
p <- 1/3 # works for any 0 <= p <= 1
a <- 4
x <- rbinom(n, 1, p)
y <- rbinom(n, 1, mean(x)^a)
cat("p^a =", p^a, "\n")
cat("est =", mean(y))

परिणाम:

p^a = 0.01234568 
est = 0.012291 

2
I like this answer but I suspect it misses the point of the question, which I interpreted as asking for an algorithm that generates from the requested distribution without knowing pp (or empirical information about pp). But, the problem does presuppose that you can generate Bernoulli(p)Bernoulli(p) random variables, so this is a perfectly reasonable answer and isn't silly at all! +1
Macro

1
+1: I like it. I assume you mean YnYn is distributed…?
Neil G

Much better! Tks, @Neil G!
Zen

1
This is cute (+1), but we can do it exactly in an almost surely finite number of flips (and, on average, that number will be relatively small).
cardinal

5

I posted the following exposition of this question and cardinal's answer to the General Discussion forum of the current Analytic Combinatorics class on Coursera, "Application of power series to constructing a random variable." I'm posting a copy here as community wiki to make this publicly and more permanently available.


There was an interesting question and answer on stat.stackexchange.com related to power series: "How to generate a non-integer amount of consecutive Bernoulli successes?" I'll paraphrase the question and the answer by cardinal.

Suppose we have a possibly unfair coin which is heads with probability pp, and a positive real number αα. How can we construct an event whose probability is pαpα?

If αα were a positive integer, we could just flip the coin αα times and let the event be that all tosses were heads. However, if αα is not an integer, say 1/21/2, then this doesn't make sense, but we can use this idea to reduce to the case that 0<α<10<α<1. If we want to construct an event whose probability is p3.5p3.5, we take the intersection of independent events whose probabilities are p3p3 and p0.5p0.5.

One thing we can do is construct an event with any known probability p[0,1]p[0,1]. To do this, we can construct a stream of fair bits by repeatedly flipping the coin twice, reading HTHT as 11 and THTH as 00, and ignoring HHHH and TTTT. We compare this stream with the binary expansion of p=0.a1a2a3...2p=0.a1a2a3...2. The event that the first disagreement is where ai=1ai=1 has probability pp. We don't know pαpα, so we can't use this directly, but it will be a useful tool.

The main idea is that we would like to use the power series for pα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3...pα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3... where p=1qp=1q. We can construct events whose probabilities are qnqn by flipping the coin nn times and seeing if they are all tails, and we can produce an event with probability pqnpqn by comparing the binary digits of pp with a fair bit stream as above and checking whether nn tosses are all tails.

Construct a geometric random variable GG with parameter pp. This is the number of tails before the first head in an infinite sequence of coin tosses. P(G=n)=(1p)np=qnpP(G=n)=(1p)np=qnp. (Some people use a definition which differs by 11.)

Given a sequence t0,t1,t2,...t0,t1,t2,..., we can produce tGtG: Flip the coin until the first head, and if there are GG tails before the first head, take the element of the sequence of index GG. If each tn[0,1]tn[0,1], we can compare tGtG with a uniform random variable in [0,1][0,1] (constructed as above) to get an event with probability E[tG]=ntnP(G=n)=ntnqnpE[tG]=ntnP(G=n)=ntnqnp.

This is almost what we need. We would like to eliminate that pp to use the power series for pαpα in qq.

1=p+qp+q2p+q3p+...

1=p+qp+q2p+q3p+...

qn=qnp+qn+1p+qn+2p+...

qn=qnp+qn+1p+qn+2p+...

nsnqn=nsn(qnp+qn+1p+qn+2p+...)=n(s0+s1+...+sn)qnp

nsnqn==nsn(qnp+qn+1p+qn+2p+...)n(s0+s1+...+sn)qnp

Consider 1pα=αq+α(1α)2q2+...1pα=αq+α(1α)2q2+.... Let tntn be the sum of the coefficients of qq through qnqn. Then 1pα=ntnqnp1pα=ntnqnp. Each tn[0,1]tn[0,1] since the coefficients are positive and sum to 10α=110α=1, so we can construct an event with probability 1pα1pα by comparing a fair bit stream with the binary expansion of tGtG. The complement has probability pαpα as required.


Again, the argument is due to cardinal.


1
(+1) Thanks for going to the trouble to post this. The differences in exposition, while relatively slight, help make the approach more clear.
cardinal

4

The very complete answer by cardinal and subsequent contributions inspired the following remark/variant.

Let PZ stand "Probability of Zero" and q:=1pq:=1p. If XnXn is an iid Bernoulli sequence with PZ qq, then Mn:=max(X1,X2,,Xn)Mn:=max(X1,X2,,Xn) is a Bernoulli r.v. with PZ qnqn. Now making nn random i.e., replacing it by an integer rv N1N1 leads to Bernoulli rv MNMN with Pr{MN=0}=n=1Pr{MN=0|N=n}Pr{N=n}=n=1Pr{N=n}qn.

Pr{MN=0}=n=1Pr{MN=0|N=n}Pr{N=n}=n=1Pr{N=n}qn.
So if 0<a<10<a<1 and if we take Pr{N=n}=bnPr{N=n}=bn from cardinal's answer, we find Pr{MN=0}=1paPr{MN=0}=1pa and 1MN1MN is Ber(pa)Ber(pa) as wanted. This is indeed possible since the coefficients bnbn satisfy bn0bn0 and they sum to 11.

The discrete distribution of NN depends only on aa with 0<a<10<a<1, recall Pr{N=n}=ann1k=1(1a/k)(n1).

Pr{N=n}=ank=1n1(1a/k)(n1).
It has interesting features. It turns out to have an infinite expectation and an heavy tail behaviour nbnc/nanbnc/na with c=1/Γ(a)>0c=1/Γ(a)>0.

Though MNMN is the maximum of NN rvs, its determination needs a number of XkXk which is NN since the result is known as soon as one XkXk is 11. The number of computed XkXk is geometrically distributed.


A related idea would be to make the rvs XkXk dependent with extremal index θθ (0<θ<1)(0<θ<1), meaning that MnMn has PZ qnθqnθ rather than qnqn. Taking nθ=anθ=a would do the job for any a>0a>0. Given a sequence of iid rv.s XnXn following a standard Frechet, there are known methods to generate a dependent sequence XnXn with standard Frechet margin and the prescribed extremal index θθ. However, what happens if we replace standard Frechet'' by Bernoulli''?
Yves

(+1) Very nice, @Yves. A few remarks: (1) The first part can be viewed as the complement of the approach I've taken. In fact, when I first got the series in bnqnbnqn, while I immediately saw the connection to the geometric, I first tried something more direct and didn't come up with a natural way to do it. Your answer solves that problem. (2) Your approach can also be implemented using only a Ber(p)Ber(p) coin. In particular, NN can be generated by descending down a full binary tree based on fair coin flips, where the left nodes are leaves and the decision is made by (...)
cardinal

(...) comparing the number in (0,1)(0,1) constructed from the (partial) sequence of coin flips to the partial sums fn=ni=1bifn=ni=1bi. The termination depth gives NN. (3) I believe that nbncn(1+a)nbncn(1+a), which will change your conclusion regarding the finiteness of the mean. (4) In both your approach and mine, it seems we cannot escape computing fn=ni=1bifn=ni=1bi, even if we allow for uniform random variates in addition to our Ber(p)Ber(p) coin for the purposes of sampling. Finding a way to avoid that would seem to be the most obvious way to improve efficiency.
cardinal

1
Thank you @cardinal. I agree with all your comments except perhaps (3). I actually made an error since cc is 1/Γ(a)1/Γ(a) (edited), but the exponent of n seems the right one. I used the representation of Γ(z) as found e.g. on Wikipedia page on infinite product and took z:=a which gives an equivalent for the product n1k=1. I would be more confident if you could check this.
Yves

Dear @Yves, (+1) You are correct about the constant and about (3). My apologies. Somehow, when I went to transcribe things to paper, I ended up focusing on the asymptotics of bn instead of nbn. :-)
cardinal
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.