Wie kann eine nicht ganzzahlige Anzahl aufeinanderfolgender Bernoulli-Erfolge generiert werden?


18

Gegeben:

  1. Eine Münze mit unbekannter Tendenz (Kopf).p
  2. Ein streng positiver Real .a>0

Problem:

Generiere eine zufällige Bernoulli-Variable mit Bias .pa

Weiß jemand, wie man das macht? Wenn zum Beispiel eine positive ganze Zahl ist, kann man die Münze Mal werfen und sehen, ob alle Ergebnisse Heads waren. Wenn sie dann '0' sind, geben Sie andernfalls '1' aus. Die Schwierigkeit liegt in der Tatsache, dass nicht unbedingt eine ganze Zahl ist. Wenn ich auch die Voreingenommenheit kenne , könnte ich einfach eine weitere Münze mit der gewünschten Voreingenommenheit bauen. aaap


2
@gung: Ich denke, es wird ein Algorithmus benötigt, um eine Bernoulli-Variable für eine Münze zu generieren.
Neil G

1
Ich denke , hier ist der Punkt, wenn nur einen Durchschnitt hältst von 1 aus jedem Kopf, das erscheint , und wenn , Sie jeden der Köpfe im Durchschnitt duplizieren mal. a>1a < 1 1 / aaa<11/a
Makro

3
@Macro, könnten Sie die Idee erweitern?
Pedro A. Ortega

1
Lieber Pedro, (+1) für deinen Beitrag, das ist die Art von Frage, die den Lebenslauf zumindest für mich sehr belebend und anregend macht. Könnte ich fragen, woher diese Frage stammt?
Kardinal

@ Cardinal: Nochmals vielen Dank für Ihre Antwort! Dieses Problem ist Teil eines Samplers zur Lösung stochastischer Steuerungsprobleme, an denen ich arbeite. Der Grund, warum unbekannt ist, ist, dass es erforderlich wäre, die Normalisierungskonstante zu kennen (die in diesem Fall eine unangenehme Partitionsfunktion ist), aber wir können immer noch unter Verwendung von Zurückweisungsabtastung davon abtasten. Übrigens wäre es schön, Sie beim Namen zu nennen, nicht nur den Link zum Lebenslauf ;-). p
Pedro A. Ortega

Antworten:


19

Wir können das mit ein paar "Tricks" und ein bisschen Mathe lösen.

Hier ist der grundlegende Algorithmus:

  1. Generieren Sie eine geometrische Zufallsvariable mit Erfolgswahrscheinlichkeit p .
  2. Das Ergebnis dieser Zufallsvariablen bestimmt einen festen bekannten Wert fn[0,1] .
  3. Generieren einer Ber(fn) Zufallsvariable faire Münze Flips von blockartig zusammengepaßt Flips unserer erzeugten Ber(p) Münze.
  4. Das resultierende Ergebnis wird Ber(pa) für jedes a(0,1) , die alle wir benötigen , ist.

Um die Verdaulichkeit zu verbessern, werden wir die Dinge in Stücke zerbrechen.

Teil 1 : Ohne Einschränkung der Allgemeinheit wird angenommen, dass 0<a<1 .

Wenn a1 ist, können wir pa=pnpb für eine positive ganze Zahl n und eine schreiben 0b<1. Aber für zwei beliebige unabhängige Bernoullis haben wir Wir können auf offensichtliche Weise aus unserer Münze ein Bernoulli erzeugen . Daher müssen wir uns nur mit der Erzeugung des befassen, wenn .p n B e r ( p a ) a ( 0 , 1 )

P(X1=X2=1)=p1p2.
pnBer(pa)a(0,1)

Teil 2 : Wissen, wie man aus fairen Münzwürfen ein beliebiges .Ber(q)

Es gibt einen Standardweg, um dies zu tun. Erweitern Sie in seiner binären Erweiterung und verwenden Sie dann unsere fairen Münzwürfe, um die Ziffern von " " . Die erste Übereinstimmung bestimmt, ob ein Erfolg ("Kopf") oder ein Misserfolg ("Zahl") gemeldet wird. Wenn und unser Münzwurf Heads ist, deklarieren Sie Heads. Wenn und unser Münzwurf Tails sind, deklarieren Sie Tails. Andernfalls wird die nachfolgende Ziffer mit einem neuen Münzwurf verglichen.q q n = 1 q n = 0q=0.q1q2q3qqn=1qn=0

Teil 3 : Wissen, wie man einen fairen Münzwurf aus unfairen mit unbekannter Tendenz generiert.

Dies geschieht unter der Annahme von , indem die Münze paarweise geworfen wird. Wenn wir bekommen , erklären Sie Köpfe; Wenn wir bekommen , deklarieren Sie einen Schwanz und wiederholen Sie das Experiment ansonsten, bis eines der beiden oben genannten Ergebnisse eintritt. Sie sind gleich wahrscheinlich, müssen also die Wahrscheinlichkeit .H T T Hp(0,1)HTTH1/2

Teil 4 : Ein bisschen Mathe. (Taylor zur Rettung.)

Durch Erweitern von um behauptet Taylors Theorem, dass Beachten Sie, dass, da jeder Ausdruck nach dem ersten negativ ist, wir also wobei sind a priori bekannt . Also wobei , undp 0 = 1 p a = 1 - a ( 1 - p ) - a ( 1 - a )h(p)=pap0=10 < a < 1

pa=1a(1p)a(1a)2!(1p)2a(1a)(2a)3!(1p)3.
0<a<1
pa=1n=1bn(1p)n,
0bn1 f n =) f 0 = 0 n
1pa=n=1bn(1p)n=n=1bnP(Gn)=n=1fnP(G=n)=Ef(G),
GGeom(p)f0=0fn=k=1nbkfür .n1

Und wir wissen bereits, wie wir mit unserer Münze eine geometrische Zufallsvariable mit Erfolgswahrscheinlichkeit erzeugen können .p

Teil 5 : Ein Monte-Carlo-Trick.

Sei eine diskrete Zufallsvariable mit Werten in mit . Lass . Dann ist [ 0 , 1 ] P ( X = x n ) = p n U | X ~ B e r ( X ) , P ( U = 1 ) = Σ n x n p n .X[0,1]P(X=xn)=pnUXBer(X)

P(U=1)=nxnpn.

Aber wir und , sehen wir nun, wie wir Zufallsvariable erzeugen, und dies ist äquivalent zu der Erzeugung einer eins.x n = f n B e r ( 1 - p a ) B e r (pn=p(1p)nxn=fnBer(1pa)Ber(pa)


Wie kann ich Sie (oder Ihre Lösung) zitieren?
Pedro A. Ortega

2
@Pedro: Ich nehme an, Sie können unten in dieser Antwort auf den Link "Teilen" klicken. Es sollte eine stabile Verbindung sein. Math.SE verfügt über einen Zitiermechanismus , der auf dieser Site anscheinend nicht aktiviert ist, den Sie jedoch möglicherweise anpassen können.
Kardinal

1
Nun, dies ist eine brillante Antwort!
Zen

1
Ich habe dies im allgemeinen Diskussionsforum der Coursera-Klasse für analytische Kombinatorik geschrieben, da dies eine gute Verwendung von Potenzreihen war, die sich auf einige der dort behandelten Materialien bezogen. class.coursera.org/introACpartI-001/forum/thread?thread_id=108
Douglas Zare

@Douglas: Danke! Gibt es eine öffentlich zugängliche Version dieses Threads oder muss ich mich für den Kurs anmelden, um ihn zu sehen? Pedro und ich haben (per E-Mail) mögliche Wege diskutiert, um diesen Ansatz in einige seiner Forschungen einzubeziehen.
Kardinal

6

Ist die folgende Antwort dumm?

Wenn sind unabhängig B e r ( p ) und Y n hat VerteilungX1,,XnBer(p)Yn , dann Y n wird etwa so verteilt werden B e r ( p a ) , wenn n .Ber((i=1nXi/n)a)YnBer(pa)n

Daher, wenn Sie nicht wissen , , aber Sie können diese Münze werfen viele Male ist es möglich (ca.) von einer Probe B e r ( p a ) Zufallsvariable.pBer(pa)

Beispielcode 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))

Ergebnisse:

p^a = 0.01234568 
est = 0.012291 

2
Ich mag diese Antwort, aber ich vermute, dass sie den Punkt der Frage verfehlt, die ich dahingehend interpretierte, dass sie nach einem Algorithmus fragt, der aus der angeforderten Verteilung generiert, ohne (oder empirische Informationen über p ) zu kennen. Aber, tritt das Problem setzen voraus , dass Sie generieren können B e r n o u l l i ( p ) Zufallsvariablen, so ist dies eine durchaus vernünftige Antwort und ist nicht dumm an alle! +1ppBernoulli(p)
Makro

1
+1: Ich mag es. Ich nehme an, du meinst, ist verteilt ...? Yn
Neil G

Viel besser! Tks, @Neil G!
Zen

1
Dies ist niedlich (+1), aber wir können es genau in einer beinahe endlichen Anzahl von Flips tun (und im Durchschnitt wird diese Anzahl relativ klein sein).
Kardinal

5

Ich habe die folgende Erläuterung dieser Frage und die Antwort des Kardinals im Allgemeinen Diskussionsforum der aktuellen Klasse für analytische Kombinatorik in Coursera veröffentlicht: "Anwendung von Potenzreihen zur Konstruktion einer Zufallsvariablen". Ich poste hier eine Kopie als Community-Wiki, um diese öffentlich und dauerhaft verfügbar zu machen.


Auf stat.stackexchange.com gab es eine interessante Frage und Antwort zu Potenzreihen: "Wie kann man eine nicht ganzzahlige Anzahl aufeinanderfolgender Bernoulli-Erfolge generieren?" Ich werde die Frage und die Antwort von Kardinal umschreiben.

Angenommen, wir haben eine möglicherweise unfaire Münze, die Köpfe mit der Wahrscheinlichkeit , und eine positive reelle Zahl α . Wie können wir ein Ereignis konstruieren, dessen Wahrscheinlichkeit p α ist ?pαpα

Wenn eine positive ganze Zahl wäre, könnten wir einfach die Münze werfenα mal werfen und das Ereignis annehmen, dass alle Würfe Köpfe waren. Wenn jedoch α nicht eine ganze Zahl ist, sagen wir 1 / 2 , dann bedeutet dies nicht Sinn machen, aber wir diese Idee verwenden könnenum den Fall zu verringerndass 0 < α < 1 . Wenn wir ein Ereignis mit einer Wahrscheinlichkeit von p 3,5 konstruieren wollen, nehmen wir den Schnittpunkt unabhängiger Ereignisse mit einer Wahrscheinlichkeit von p 3 und p 0,5 .αα1/20<α<1p3.5p3p0.5

Wir können ein Ereignis mit jeder bekannten Wahrscheinlichkeit konstruieren . Um dies zu tun, können wir einen Strom von fairen Bits konstruieren, indem wir die Münze zweimal umwerfen und H T als 1 lesenp[0,1]HT1 und als 0 , und ignorieren H H und T T . Wir vergleichen diesen Strom mit der binären Expansion von p = 0. a 1 a 2 a 3 . . . 2TH0HHTTp=0.a1a2a3...2. Der Fall, dass die erste Meinungsverschiedenheit darin besteht, dass die Wahrscheinlichkeit p 'hat . Wir kennen p α nicht , können dies also nicht direkt verwenden, aber es wird ein nützliches Werkzeug sein.ai=1ppα

Die Hauptidee ist, dass wir die Potenzreihe für p α = ( 1 - q ) α = 1 - α q - α ( 1 - α ) verwenden möchten.pα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3...wo . Wir können Ereignisse , die Wahrscheinlichkeiten sind konstruieren q n durch die Münzwurf n - mal und sehen , ob sie alle Schwänze sind, und wir können ein Ereignis mit einer Wahrscheinlichkeit erzeugen p ' q n durch die binären Ziffern des Vergleichen p ' mit einem fairen Bitstrom wie oben und Überprüfen, ob n Würfe alle Schwänze sind.p=1qqnnpqnpn

Konstruieren Sie eine geometrische Zufallsvariable mit dem Parameter p . Dies ist die Anzahl der Schwänze vor dem ersten Kopf in einer unendlichen Folge von Münzwürfen. P ( G = n ) = ( 1 - p ) n p = q n p . (Einige Leute verwenden eine Definition, die sich um 1 unterscheidet .)GpP(G=n)=(1p)np=qnp1

Bei einer Sequenz , , wir können t G produzieren : Wirf die Münze bis zum ersten Kopf, und wenn es G gibtt0,t1,t2,...tGG tails vor dem ersten Kopf, nehmen das Element der Folge von Index - . Wenn jedes t n[ 0 , 1 ] ist , können wir t G mit einer einheitlichen Zufallsvariablen in [ 0 , 1 ] (wie oben konstruiert) vergleichen, um ein Ereignis mit der Wahrscheinlichkeit E [ t zu erhaltenGtn[0,1]tG[0,1] .E[tG]=ntnP(G=n)=ntnqnp

Das ist fast das, was wir brauchen. Wir möchten dieses eliminieren, um die Potenzreihe für p α in q zu verwenden .ppαq

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

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

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

Betrachten wir . Seitndie Summe der Koeffizienten vonqbisqn. Dann gilt1-pα=ntnqnp. Jedestn[0,1],da die Koeffizienten positiv sind und sich zu1-0α=1summieren, können wir ein Ereignis mit der Wahrscheinlichkeit1-pαkonstruieren1pα=αq+α(1α)2q2+...tnqqn1pα=ntnqnptn[0,1]10α=11pαdurch einen fairen Bitstrom mit der binären Erweiterung des Vergleichen . Das Komplement hat Wahrscheinlichkeit p α je nach Bedarf.tGpα


Auch hier ist das Argument auf Kardinal zurückzuführen.


1
(+1) Vielen Dank, dass Sie sich die Mühe gemacht haben, dies zu posten. Die relativ geringen Expositionsunterschiede helfen dabei, den Ansatz klarer zu machen.
Kardinal

4

Die sehr vollständige Antwort von Kardinal und nachfolgenden Beiträgen inspirierte die folgende Bemerkung / Variante.

Lassen Sie PZ "Wahrscheinlichkeit von Null" stehen und . Obq:=1p eine iid Bernoulli-Sequenz mit PZ q ist , dann ist M n : = max ( X 1 ,Xnq ist ein Bernoulli rv mit PZ q n . Wenn Sie nun n zufällig machen, dh durch eine ganze Zahl rv N 1 ersetzen, erhalten SieBernoulli rv M N mit P r { M N = 0 } = n = 1 P r { M N = 0Mn:=max(X1,X2,,Xn)qnnN1MN Wenn also 0 < a < 1 ist und wir P r { N = n } = b n ausder Antwortdes Kardinals nehmen, finden wir P r { M N = 0 } = 1 - p a und 1 - M N ist B e r ( p a ) wie gewünscht. Dies ist zwar möglich, da die Koeffizienten b n

Pr{MN=0}=n=1Pr{MN=0|N=n}Pr{N=n}=n=1Pr{N=n}qn.
0<a<1Pr{N=n}=bnPr{MN=0}=1pa1MNBer(pa)bnerfüllen und addieren sich zu 1 .bn01

Die diskrete Verteilung von hängt nur von a mit 0 < a < 1 ab , siehe P r { N = n } = aNa0<a<1 Es hat interessante Funktionen. Es stellt sich heraus eine unendliche Erwartung zu habenund einen schweren Schwanz Verhalten n

Pr{N=n}=ank=1n1(1a/k)(n1).
nbnc/nac=1/Γ(a)>0

MNNXkNXk1Xk


A related idea would be to make the rvs Xk dependent with extremal index θ (0<θ<1), meaning that Mn has PZ qnθ rather than qn. Taking nθ=a would do the job for any a>0. Given a sequence of iid rv.s Xn following a standard Frechet, there are known methods to generate a dependent sequence Xn 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 bnqn, 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) coin. In particular, N 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) constructed from the (partial) sequence of coin flips to the partial sums fn=i=1nbi. The termination depth gives N. (3) I believe that 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=i=1nbi, even if we allow for uniform random variates in addition to our 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 c is 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 k=1n1. 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.