Jak wygenerować niecałkowitą liczbę kolejnych sukcesów Bernoulliego?


18

Dany:

  1. Moneta o nieznanym nastawieniu (Głowa).p
  2. Ściśle dodatni realny .a>0

Problem:

Wygeneruj losową zmienną Bernoulliego z odchyleniem .pa

Czy ktoś wie jak to zrobić? Na przykład, gdy jest dodatnia, to można odwrócić monetę czasu i zobaczyć, czy wszystkie wyniki były Głowy: jeśli są one wtedy problem „0”, w przeciwnym razie problem „1”. Trudność polega na tym, że niekoniecznie jest liczbą całkowitą. Ponadto, gdybym znał stronniczość , mógłbym po prostu zbudować kolejną monetę z pożądanym uprzedzeniem. paaap


2
@gung: Myślę, że potrzebny jest algorytm do generowania wariantu Bernoulliego, biorąc pod uwagę monetę.
Neil G

1
Myślę, że chodzi o to, gdy tylko zachować średnio 1 na każde głów, które pojawia się i gdy , powielać każdej z głowic średnio czasach. a>1aa<11/a
Makro

3
@Macro, czy mógłbyś rozwinąć ten pomysł?
Pedro A. Ortega

1
Drogi Pedro, (+1) do twojego postu, co jest pytaniem, które sprawia, że ​​CV jest bardzo orzeźwiające i stymulujące, przynajmniej dla mnie. Czy mogę zapytać, jakie jest źródło tego pytania?
kardynał

@cardinal: Jeszcze raz dziękuję za odpowiedź! Ten problem jest częścią próbnika do rozwiązywania stochastycznych problemów kontrolnych, nad którymi pracuję. Powodem, dla którego jest nieznane, jest to, że wymagałoby znajomości stałej normalizującej (która w tym przypadku jest nieprzyjemną funkcją podziału), ale nadal możemy próbkować z niej przy użyciu próbkowania odrzucającego. Przy okazji fajnie byłoby zacytować cię po imieniu, a nie tylko link do CV ;-). p
Pedro A. Ortega

Odpowiedzi:


19

Możemy to rozwiązać za pomocą kilku „sztuczek” i odrobiny matematyki.

Oto podstawowy algorytm:

  1. Wygeneruj losową zmienną geometryczną z prawdopodobieństwem sukcesu .p
  2. Wynik tej zmiennej losowej określa stałą znaną wartość .fn[0,1]
  3. Wygeneruj losową zmienną używając uczciwych rzutów monetą wygenerowanych z blokowanych sparowanych rzutów naszej monety .B e r ( p )Ber(fn)Ber(p)
  4. Wynikowy wynik to dla dowolnego , co jest wszystkim, czego potrzebujemy.a ( 0 , 1 )Ber(pa)a(0,1)

Aby uczynić rzeczy bardziej strawnymi, podzielimy je na kawałki.

Część 1 : bez utraty ogólności założono, że .0<a<1

Jeśli , możemy napisać dla pewnej dodatniej liczby całkowitej a dla . Ale dla dwóch niezależnych Bernoulli mamy Możemy wygenerować Bernoulliego naszych monet w sposób oczywisty. Dlatego musimy się tylko zajmować generowaniem gdy .p a = p n p b n 0 b < 1 P ( X 1 = X 2 = 1 ) = p 1 p 2a1pa=pnpbn0b<1p n

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

Część 2 : Dowiedz się, jak wygenerować dowolny z rzutu uczciwą monetą.Ber(q)

Istnieje standardowy sposób, aby to zrobić. Rozwiń w rozwinięciu binarnym, a następnie użyj naszych uczciwych rzutów monet, aby „dopasować” cyfry . Pierwsze dopasowanie określa, czy zadeklarujemy sukces („główki”), czy porażkę („ogony”). Jeśli a nasze monetą są głowami, zadeklaruj głowy, jeśli a nasze monetą stanowią reszki, zadeklaruj reszki. W przeciwnym razie rozważ kolejną cyfrę w stosunku do nowego rzutu monetą.q q n = 1 q n = 0q=0.q1q2q3qqn=1qn=0

Część 3 : Dowiedz się, jak wygenerować uczciwą monetę od nieuczciwych z nieznanym uprzedzeniem.

Odbywa się to przy założeniu , poprzez przerzucanie monety parami. Jeśli otrzymamy , zadeklaruj głowy; jeśli otrzymamy , zadeklaruj ogony i w przeciwnym razie powtórz eksperyment, aż wystąpi jeden z dwóch wyżej wymienionych wyników. Są one równie prawdopodobne, więc musi mieć prawdopodobieństwo .H T T H 1 / 2p(0,1)HTTH1/2

Część 4 : Trochę matematyki. (Taylor na ratunek.)

Rozwijając wokół , twierdzenie Taylora stwierdza, że Zauważ, że ponieważ każdy termin po pierwszym jest ujemny, więc mamy gdzie są znane z góry . Stąd gdzie , ip 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<10 b n1 1 - p a = n = 1 b n ( 1 - p ) n = n = 1 b n P ( G n ) = n = 1 f n P ( G = n ) = E f ( G ) , G
pa=1n=1bn(1p)n,
0bn1
1pa=n=1bn(1p)n=n=1bnP(Gn)=n=1fnP(G=n)=Ef(G),
f 0 = 0 f n = n k = 1 b k n 1GGeom(p)f0=0fn=k=1nbkdla .n1

I już wiemy, jak wykorzystać naszą monetę do wygenerowania losowej zmiennej geometrycznej z prawdopodobieństwem sukcesu .p

Część 5 : Sztuczka Monte Carlo.

Niech będzie dyskretną zmienną losową przyjmującą wartości w z . Niech . Następnie [ 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.

Ale biorąc i , widzimy teraz, jak wygenerować zmienną losową i jest to równoważne z generowaniem jeden.x n = f n B e rpn=p(1p)nxn=fnB e r ( p a )Ber(1pa)Ber(pa)


Jak mogę zacytować ciebie (lub twoje rozwiązanie)?
Pedro A. Ortega,

2
@Pedro: Przypuszczam, że możesz kliknąć link „udostępnij” na dole tej odpowiedzi. Powinien to być stabilny link. Math.SE ma mechanizm cytowania , który nie wydaje się być włączony na tej stronie, ale możesz go dostosować.
kardynał

1
Teraz, to jest genialny odpowiedź!
Zen,

1
Napisałem to na forum dyskusji ogólnej klasy Coursera na temat kombinatoryki analitycznej, ponieważ było to miłe zastosowanie szeregów mocy związanych z niektórymi materiałami tam zawartymi. class.coursera.org/introACpartI-001/forum/thread?thread_id=108
Douglas Zare

@Douglas: Dzięki! Czy istnieje publicznie dostępna wersja tego wątku, czy też muszę zapisać się na kurs, aby go zobaczyć? Pedro i ja omawialiśmy (za pośrednictwem poczty elektronicznej) możliwe sposoby włączenia tego podejścia do niektórych jego badań.
kardynał

6

Czy poniższa odpowiedź jest głupia?

Jeśli są niezależne a ma rozkład , wtedy będzie w przybliżeniu dystrybuowane jako , kiedy .B e r ( p ) Y n B e r ( ( n i = 1 X i / n ) a ) Y n B e r ( p a ) n X1,,XnBer(p)YnBer((i=1nXi/n)a)YnBer(pa)n

Dlatego jeśli nie znasz , ale możesz rzucić tę monetą wiele razy, możesz spróbować (w przybliżeniu) z losowej zmiennej .B e r ( p a )pBer(pa)

Przykładowy Rkod:

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

Wyniki:

p^a = 0.01234568 
est = 0.012291 

2
Podoba mi się ta odpowiedź, ale podejrzewam, że pomija sens pytania, które zinterpretowałem jako prośbę o algorytm, który generuje z żądanego rozkładu bez znajomości (lub informacji empirycznych o ). Ale problem zakłada, że ​​możesz wygenerować zmienne losowe , więc jest to całkowicie rozsądna odpowiedź i wcale nie jest głupia! +1p B e r n o u l l i ( p )ppBernoulli(p)
Makro

1
+1: Podoba mi się. Zakładam, że masz na myśli, że jest rozpowszechniany…? Yn
Neil G

Dużo lepiej! Tks, @Neil G!
Zen,

1
To urocze (+1), ale możemy to zrobić dokładnie w prawie na pewno skończonej liczbie przewrotów (i średnio ta liczba będzie względnie mała).
kardynał

5

Poniższą ekspozycję tego pytania i odpowiedź kardynała opublikowałem na forum dyskusyjnym bieżącej klasy Analitycznej Kombinatorii na Coursera: „Zastosowanie szeregów mocy do konstruowania zmiennej losowej”. Publikuję tutaj kopię jako wiki społeczności, aby uczynić to publicznie i bardziej trwałym dostępnym.


Na stat.stackexchange.com pojawiło się interesujące pytanie i odpowiedź dotyczące serii potęg: „Jak wygenerować liczbę całkowitą kolejnych sukcesów Bernoulliego?” Sparafrazuję pytanie i odpowiedź kardynałem.

Załóżmy, że mamy potencjalnie niesprawiedliwą monetę, która jest głowami z prawdopodobieństwem , i dodatnią liczbą rzeczywistą . Jak możemy skonstruować zdarzenie, którego prawdopodobieństwem jest ?α p αpαpα

Gdyby była dodatnią liczbą całkowitą, moglibyśmy po prostu odwrócić monetę i pozwolić, aby zdarzenie polegało na tym, że wszystkie rzuty były główkami. Jeśli jednak nie jest liczbą całkowitą, powiedzmy , to nie ma to sensu, ale możemy użyć tego pomysłu, aby zredukować do przypadku, że . Jeśli chcemy skonstruować zdarzenie, którego prawdopodobieństwo wynosi , przyjmujemy przecięcie niezależnych zdarzeń, których prawdopodobieństwem jest i .α α 1 / 2 0 < α < 1 s 3,5 s 3 s 0,5ααα1/20<α<1p3.5p3p0.5

Jedyne, co możemy zrobić, to skonstruować zdarzenie z dowolnym znanym prawdopodobieństwem . Aby to zrobić, możemy skonstruować strumień uczciwych bitów, wielokrotnie przewracając monetę, odczytując jako i jako oraz ignorując i . Porównujemy ten strumień z binarnym rozszerzeniem . Zdarzenie, w którym pierwsze nieporozumienie występuje, gdy ma prawdopodobieństwo . Nie znamy , więc nie możemy użyć tego bezpośrednio, ale będzie to przydatne narzędzie.H T 1 T H 0 H H T T p = 0. a 1 a 2 a 3 . . . 2 a i = 1 p p αp[0,1]HT1TH0HHTTp=0.a1a2a3...2ai=1ppα

Główną ideą jest to, że chcielibyśmy użyć szeregu mocy dla gdzie . Możemy konstruować zdarzenia o prawdopodobieństwie , odwracając monetę razy i sprawdzając, czy wszystkie są ogonami, i możemy wygenerować zdarzenie z prawdopodobieństwem , porównując binarne cyfry ze sprawiedliwym strumieniem bitów jak wyżej i sprawdzenie, czy rzutów są ogony.p=1-qqnnpqnpnpα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3...p=1qqnnpqnpn

Skonstruuj geometryczną zmienną losową z parametrem . Jest to liczba ogonów przed pierwszą głową w nieskończonej sekwencji rzutów monetą. . (Niektóre osoby używają definicji, która różni się o ).p P ( G = n ) = ( 1 - p ) n p = q n p 1GpP(G=n)=(1p)np=qnp1

Biorąc pod uwagę kolejność , możemy produkować : Przerzuć monetę do pierwszego głowie, a jeśli istnieją ogony przed pierwszym głowy, podejmują element sekwencji indeksu . Jeżeli każdy , możemy porównać z jednolitą zmienną losową w (skonstruowanym jak powyżej), aby otrzymać zdarzenie z prawdopodobieństwem .t0,t1,t2,...tGGGtn[0,1]tG[0,1]E[tG]=ntnP(G=n)=ntnqnp

To jest prawie to, czego potrzebujemy. Chcielibyśmy wyeliminować to aby użyć szeregu mocy dla w .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

Rozważmy . Niech będzie sumą współczynników od do . Następnie . Każdy ponieważ współczynniki są dodatnie i sumują się do , więc możemy skonstruować zdarzenie z prawdopodobieństwem , porównując strumień bitów z ekspansją binarną z . Uzupełnienie ma prawdopodobieństwo zgodnie z wymaganiami.1pα=αq+α(1α)2q2+...tnqqn1pα=ntnqnptn[0,1]10α=11pαtGpα


Ponownie argumentem jest kardynał.


1
(+1) Dziękujemy za włożenie kłopotów z opublikowaniem tego. Różnice w ekspozycjach, choć stosunkowo niewielkie, pomagają wyjaśnić podejście.
kardynał

4

Bardzo kompletna odpowiedź kardynała i późniejsze wypowiedzi zainspirowały następującą uwagę / wariant.

Niech PZ oznacza „Prawdopodobieństwo zera” i . Jeśli jest identyczną sekwencją Bernoulliego z PZ , to jest rv Bernoulliego z PZ . Teraz czyni losowym, tzn. Zastąpienie go liczbą całkowitą rv prowadzi do Bernoulli rv z Jeśli więc i jeśli weźmiemy z odpowiedzi kardynała , znajdziemyq:=1pXnqMn:=max(X1,X2,,Xn)qnnN1MN

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}=1pa a to zgodnie z . Jest to rzeczywiście możliwe, ponieważ współczynniki spełniają i sumują się do .1MNBer(pa)bnbn01

Dyskretny rozkład zależy tylko od z , wycofywanie Ma ciekawe funkcje. Okazuje się, że ma nieskończone oczekiwania i zachowanie ciężkiego ogona przy . Na0<a<1

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

Chociaż jest maksymalnym rvs, jego określenie wymaga liczby która jest ponieważ wynik jest znany, gdy tylko jeden wynosi . Liczba obliczonych jest rozkładem geometrycznym.MNNXkNXk1Xk


pomysłem byłoby uzależnienie od ekstremalnego indeksu , co oznacza, że ma PZ zamiast . Wzięcie wykonałoby zadanie dla dowolnego . Biorąc pod uwagę sekwencję iid rv.s po standardowym Frechecie, znane są metody generowania zależnej sekwencji ze standardowym marginesem Frecheta i zalecanym wskaźnikiem ekstremalnym . Co się jednak stanie, jeśli zastąpimy Bernoulli ''? Xkθ (0<θ<1)Mnqnθqnnθ=aa>0XnXnθstandard Frechet'' by
Yves

(+1) Bardzo fajnie, @Yves. Kilka uwag: ( 1 ) Pierwszą część można postrzegać jako uzupełnienie przyjętego przeze mnie podejścia. W rzeczywistości, kiedy po raz pierwszy dostałem serię w , gdy natychmiast zobaczyłem związek z geometrią, najpierw spróbowałem czegoś bardziej bezpośredniego i nie wpadłem na naturalny sposób, aby to zrobić. Twoja odpowiedź rozwiązuje ten problem. ( 2 ) Twoje podejście można również wdrożyć, używając tylko monety . W szczególności można wygenerować, schodząc w dół pełnego drzewa binarnego opartego na rzetelnych rzutach monetą, gdzie lewe węzły są liśćmi, a decyzję podejmuje (...)bnqnBer(p)N
kardynał

(...) porównując liczbę w skonstruowaną z (częściowej) sekwencji przewracania monet do sum częściowych . Głębokość rozwiązanie daje . ( 3 ) Uważam, że , co zmieni twoje wnioski dotyczące skończoności średniej. ( 4 ) Zarówno w twoim, jak i moim podejściu wydaje się, że nie możemy uniknąć obliczeń , nawet jeśli pozwolimy na jednolite losowe zmienne oprócz naszej monety do celów pobierania próbek. Znalezienie sposobu na uniknięcie tego wydaje się najbardziej oczywistym sposobem na poprawę wydajności. (0,1)fn=i=1nbiNnbncn(1+a)fn=i=1nbiBer(p)
kardynał

1
Dziękuję @cardinal. Zgadzam się ze wszystkimi twoimi komentarzami, z wyjątkiem być może (3). Naprawdę popełniłem błąd, ponieważ wynosi (edytowany), ale wykładnik wydaje się właściwy. Użyłem reprezentacji znalezionej np. Na stronie Wikipedii na nieskończonym produkcie i wziąłem co daje odpowiednik dla produktu . Byłbym bardziej pewny, gdybyś mógł to sprawdzić. - 1 / Γ ( - a ) n Γ ( z ) z : = - a n - 1 k = 1c1/Γ(a)nΓ(z)z:=ak=1n1
Yves

Drogi @ Yves, (+1) Masz rację co do stałej i około (3). Przepraszam. W jakiś sposób, kiedy zacząłem przepisywać rzeczy na papier, ostatecznie skupiłem się na asymptotykach zamiast . :-) n b nbnnbn
kardynał
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.