Bagaimana cara menghasilkan kesuksesan Bernoulli berturut-turut dalam jumlah non-integer?


18

Diberikan:

  1. Koin dengan bias tidak diketahui (Head).p
  2. A nyata sangat positif .a>0

Masalah:

Hasilkan varian Bernoulli acak dengan bias .pa

Adakah yang tahu bagaimana melakukan ini? Misalnya, ketika adalah bilangan bulat positif, maka seseorang dapat membalik koin itu kali dan melihat apakah semua hasilnya adalah Kepala: jika mereka kemudian mengeluarkan '0', sebaliknya mengeluarkan '1'. Kesulitannya terletak pada kenyataan bahwa tidak harus berupa bilangan bulat. Juga, jika saya tahu bias , saya hanya bisa membangun koin lain dengan bias yang diinginkan. aaap


2
@ung: Saya pikir yang diinginkan adalah algoritma untuk menghasilkan varian Bernoulli yang diberi koin.
Neil G

1
Saya pikir titik di sini adalah, ketika Anda hanya menyimpan rata-rata 1 dari setiap kepala yang muncul dan ketika , Anda menduplikasi masing-masing kepala rata-rata kali. a>1aa<11/a
Makro

3
@ Macro, bisakah Anda mengembangkan ide itu?
Pedro A. Ortega

1
Dear Pedro, (+1) untuk pos Anda, yang merupakan jenis pertanyaan yang membuat CV sangat menyegarkan dan membangkitkan semangat, setidaknya bagi saya. Bisakah saya bertanya apa asal usul pertanyaan ini?
kardinal

@ cardinal: Terima kasih lagi atas jawaban Anda! Masalah ini adalah bagian dari sampler untuk memecahkan masalah kontrol stokastik yang sedang saya kerjakan. Alasan mengapa p tidak diketahui adalah karena p perlu mengetahui konstanta normalisasi (yang dalam hal ini adalah fungsi partisi jahat), tetapi kita masih dapat mengambil sampel darinya menggunakan rejection sampling. Btw, alangkah baiknya mengutip nama Anda, bukan hanya tautan ke CV ;-).
Pedro A. Ortega

Jawaban:


19

Kita dapat menyelesaikan ini melalui beberapa "trik" dan sedikit matematika.

Berikut adalah algoritma dasar:

  1. Hasilkan variabel acak Geometrik dengan probabilitas keberhasilan p .
  2. Hasil dari variabel acak ini menentukan nilai tetap yang diketahui fn[0,1] .
  3. Hasilkan Ber(fn) variabel acak menggunakan koin flips dihasilkan dari blockwise dipasangkan membalik dari kami Ber(p) koin.
  4. Hasil yang dihasilkan akan Ber(pa) untuk semuaa(0,1) , yang kita butuhkan.

Agar lebih mudah dicerna, kami akan memecahnya menjadi beberapa bagian.

Bagian 1 : Tanpa kehilangan sifat umum, anggaplah 0<a<1 .

Jika a1 , maka, kita dapat menulis pa=pnpb untuk beberapa bilangan bulat positif n dan beberapa 0b<1 . Tetapi, untuk dua Bernoulli independen mana pun, kami memiliki Kami dapat menghasilkan p n Bernoulli dari koin kami dengan cara yang jelas. Oleh karena itu, kita hanya perlu menyibukkan diri dengan menghasilkan B e r ( p a ) ketika a

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

Bagian 2 : Tahu bagaimana menghasilkan yang sewenang-wenang dari adil koin membalik.Ber(q)

Ada cara standar untuk melakukan ini. Rentangkan dalam ekspansi binernya dan kemudian gunakan koin jungkir balik kami untuk "mencocokkan" digit q . Pertandingan pertama menentukan apakah kami mendeklarasikan sukses ("kepala") atau gagal ("ekor"). Jika q n = 1q=0.q1q2q3qqn=1 dan flip koin kami adalah kepala, deklarasikan kepala, jika dan flip koin kami adalah ekor, nyatakan ekor. Kalau tidak, pertimbangkan digit berikutnya terhadap flip koin baru.qn=0

Bagian 3 : Tahu bagaimana menghasilkan koin balik yang adil dari yang tidak adil dengan bias yang tidak diketahui.

Ini dilakukan, dengan asumsi , dengan membalik koin berpasangan. Jika kita mendapatkan H T , menyatakan kepala; jika kita mendapatkan T H , menyatakan ekor, dan sebaliknya ulangi percobaan sampai salah satu dari dua hasil tersebut terjadi. Mereka sama-sama kemungkinan, jadi harus memiliki probabilitasp(0,1)HTTH .1/2

Bagian 4 : Beberapa matematika. (Taylor untuk menyelamatkan.)

Dengan memperluas sekitar p 0 = 1 , teorema Taylor menyatakan bahwa p a = 1 - a ( 1 - p ) - a ( 1h(p)=pap0=1 Perhatikan bahwa karena 0 < a < 1 , setiap istilah setelah yang pertama adalahnegatif, jadi kita memiliki p a = 1 - n = 1 b n ( 1 - p ) n

pa=1a(1p)a(1a)2!(1p)2a(1a)(2a)3!(1p)3.
0<a<1 mana 0 b n1 dikenalsebagai apriori. Oleh karena itu 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
pa=1n=1bn(1p)n,
0bn1 n 1 .
1pa=n=1bn(1p)n=n=1bnP(Gn)=n=1fnP(G=n)=Ef(G),
di mana , f 0 = 0 dan f n = n k = 1 b k untukGGeom(p)f0=0fn=k=1nbkn1

Dan, kita sudah tahu bagaimana menggunakan koin kita untuk menghasilkan variabel acak Geometrik dengan probabilitas keberhasilan .p

Bagian 5 : Trik Monte Carlo.

Misalkan adalah variabel acak yang mengambil nilai dalam [ 0 , 1 ] dengan P ( X = x n ) = p n . Biarkan U X B e r ( X ) . Kemudian P ( U = 1 ) = n x n p n .X[0,1]P(X=xn)=pnUXBer(X)

P(U=1)=nxnpn.

Tapi, mengambil dan x n = f n , kita lihat sekarang bagaimana untuk menghasilkan B e r ( 1 - p a ) variabel acak dan ini setara dengan menghasilkan B e r ( p a ) satu.pn=p(1p)nxn=fnBer(1pa)Ber(pa)


Bagaimana saya bisa mengutip Anda (atau solusi Anda)?
Pedro A. Ortega

2
@Pedro: Saya kira Anda dapat mengklik tautan "bagikan" di bagian bawah jawaban ini. Itu harus berupa tautan yang stabil. Math.SE memiliki mekanisme kutipan , yang tampaknya tidak diaktifkan di situs ini, tetapi Anda mungkin dapat mengadaptasinya.
kardinal

1
Sekarang, ini adalah jawaban yang brilian!
Zen

1
Saya menulis ini di forum Diskusi Umum kelas Coursera tentang Analytic Combinatorics karena ini adalah penggunaan rangkaian daya yang bagus terkait dengan beberapa materi yang dibahas di sana. class.coursera.org/introACpartI-001/forum/thread?thread_id=108
Douglas Zare

@Douglas: Terima kasih! Apakah ada versi yang dapat dilihat secara publik dari utas itu atau apakah saya perlu mendaftar untuk kursus untuk melihatnya? Pedro dan saya telah mendiskusikan (melalui email) kemungkinan jalan untuk memasukkan pendekatan ini dalam beberapa penelitiannya.
kardinal

6

Apakah jawaban berikut ini konyol?

Jika adalah independen B e r ( p ) dan Y n memiliki distribusi B e r ( ( n i = 1 X i / n ) a ) , maka Y n akan kira-kira didistribusikan sebagai B e r ( p a ) , ketika n X1,,XnBer(p)YnBer((i=1nXi/n)a)YnBer(pa)n .

Oleh karena itu, jika Anda tidak tahu , tetapi Anda dapat melemparkan koin ini banyak kali, adalah mungkin untuk sampel (kurang-lebih) dari B e r ( p a ) variabel acak.pBer(pa)

RKode contoh :

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

Hasil:

p^a = 0.01234568 
est = 0.012291 

2
Saya suka jawaban ini tetapi saya menduga itu meleset dari pertanyaan, yang saya tafsirkan sebagai meminta algoritma yang dihasilkan dari distribusi yang diminta tanpa mengetahui (atau informasi empiris tentang p ). Tapi, masalahnya tidak mengandaikan bahwa Anda dapat menghasilkan B e r n o u l l i ( p ) variabel acak, jadi ini adalah jawaban yang masuk akal dan tidak konyol sekali! +1ppBernoulli(p)
Makro

1
+1: Saya menyukainya. Saya berasumsi Anda maksud didistribusikan ...? Yn
Neil G

Jauh lebih baik! Tks, @Neil G!
Zen

1
Ini lucu (+1), tetapi kita bisa melakukannya tepat dalam jumlah flips yang hampir pasti (dan, rata-rata, jumlah itu akan relatif kecil).
kardinal

5

Saya memposting eksposisi berikut dari pertanyaan ini dan jawaban kardinal ke forum Diskusi Umum dari kelas Combinatorics Analitik saat ini di Coursera, "Penerapan rangkaian kekuatan untuk membangun variabel acak."Saya memposting salinan di sini sebagai wiki komunitas untuk membuat ini tersedia secara publik dan lebih permanen.


Ada pertanyaan dan jawaban menarik di stat.stackexchange.com terkait dengan seri daya: "Bagaimana menghasilkan jumlah non-integer dari kesuksesan Bernoulli berturut-turut?" Saya akan memparafrasekan pertanyaan dan jawabannya dengan kardinal.

Misalkan kita memiliki koin yang kemungkinan tidak adil, yang berkepala probabilitas , , dan bilangan real positif α . Bagaimana kita dapat membangun suatu peristiwa yang probabilitasnya adalah p α ?pαpα

Jika adalah bilangan bulat positif, kita bisa membalik koin α kali dan membiarkan kejadiannya bahwa semua lemparan adalah kepala. Namun, jika α tidak integer, mengatakan 1 / 2 , maka ini tidak masuk akal, tapi kita bisa menggunakan ide ini untuk mengurangi kasus yang 0 < α < 1 . Jika kita ingin membangun suatu peristiwa yang probabilitasnya adalah p 3.5 , kita mengambil persimpangan dari peristiwa-peristiwa independen yang probabilitasnya adalah p 3 dan p 0,5 .ααα1/20<α<1p3.5p3p0.5

Satu hal yang dapat kita lakukan adalah membuat sebuah peristiwa dengan probabilitas diketahui [ 0 , 1 ] . Untuk melakukan hal ini, kita dapat membuat aliran bit yang adil dengan berulang kali membalik koin dua kali, membaca H T sebagai 1 dan T H sebagai 0 , dan mengabaikan H H dan T T . Kami membandingkan aliran ini dengan ekspansi biner p = 0. a 1 a 2 a 3 . . . 2p[0,1]HT1TH0HHTTp=0.a1a2a3...2. Acara yang ketidaksepakatan pertama adalah di mana memiliki probabilitas p ' . Kami tidak tahu p αai=1ppα , jadi kami tidak bisa menggunakan ini secara langsung, tetapi itu akan menjadi alat yang berguna.

Gagasan utamanya adalah bahwa kami ingin menggunakan seri daya untuk di manap=1-q. Kita dapat membuat peristiwa yang probabilitasnyaqndengan membalik koinnkali dan melihat apakah semuanya berekor, dan kita dapat menghasilkan peristiwa dengan probabilitaspqndengan membandingkan digit binerpdengan bit stream yang adil seperti di atas dan memeriksa apakahnlemparan semuanya ekor.pα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3...p=1qqnnpqnpn

Bangun variabel acak geometrik dengan parameter p . Ini adalah jumlah ekor sebelum kepala pertama dalam urutan lemparan koin yang tak terbatas. P ( G = n ) = ( 1 - p ) n p = q n p . (Beberapa orang menggunakan definisi yang berbeda dengan 1. )GpP(G=n)=(1p)np=qnp1

t0,t1,t2,...tGGGtn[0,1]tG[0,1]E[tG]=ntnP(G=n)=ntnqnp .

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

1pα=αq+α(1α)2q2+...tnqqn1pα=ntnqnptn[0,1]10α=11pαtGpα


Sekali lagi, argumennya adalah karena kardinal.


1
(+1) Terima kasih telah bersusah payah memposting ini. Perbedaan dalam eksposisi, meskipun relatif sedikit, membantu membuat pendekatan lebih jelas.
kardinal

4

Jawaban yang sangat lengkap oleh kontribusi kardinal dan selanjutnya mengilhami komentar / varian berikut.

q:=1pXnqMn:=max(X1,X2,,Xn)qnnN1MN

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

The discrete distribution of N depends only on a with 0<a<1, recall

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/na with c=1/Γ(a)>0.

Though MN is the maximum of N rvs, its determination needs a number of Xk which is N since the result is known as soon as one Xk is 1. The number of computed Xk is geometrically distributed.


Gagasan terkait adalah membuat rv Xk tergantung dengan indeks ekstrim θ (0<θ<1), yang berarti bahwa M.n memiliki PZ qnθ daripada qn. Pengambilannθ=Sebuah akan melakukan pekerjaan untuk apa pun Sebuah>0. Diberi urutan iid rv.sXn mengikuti Frechet standar, ada metode yang dikenal untuk menghasilkan urutan dependen Xn dengan margin Frechet standar dan indeks ekstrim yang ditentukan θ. Namun, apa yang terjadi jika kami mengganti standard Frechet'' by Bernoulli ''?
Yves

(+1) Sangat bagus, @Yves. Beberapa komentar: ( 1 ) Bagian pertama dapat dilihat sebagai pelengkap dari pendekatan yang saya ambil. Bahkan, ketika saya pertama kali seribnqn, sementara saya segera melihat koneksi ke geometris, saya pertama kali mencoba sesuatu yang lebih langsung dan tidak muncul dengan cara alami untuk melakukannya. Jawaban Anda memecahkan masalah itu. ( 2 ) Pendekatan Anda juga dapat diimplementasikan hanya dengan menggunakan aBer(hal)koin. Khususnya,Ndapat dihasilkan dengan menurunkan pohon biner penuh berdasarkan membalik koin yang adil, di mana node kiri adalah daun dan keputusan dibuat oleh (...)
kardinal

(...) membandingkan nomor dalam (0,1) dibangun dari urutan (parsial) koin membalik ke jumlah parsial fn=saya=1nbsaya. Kedalaman terminasi memberiN. ( 3 ) Saya percaya itunbncn-(1+Sebuah), yang akan mengubah kesimpulan Anda tentang kehalusan rata-rata. ( 4 ) Dalam pendekatan Anda dan saya, tampaknya kita tidak bisa lepas dari komputasifn=saya=1nbsaya, bahkan jika kami mengizinkan untuk variasi acak yang seragam selain dari kami Ber(hal)koin untuk keperluan pengambilan sampel. Menemukan cara untuk menghindarinya tampaknya merupakan cara yang paling jelas untuk meningkatkan efisiensi.
kardinal

1
@ Cardinal terima kasih. Saya setuju dengan semua komentar Anda kecuali mungkin (3). Saya sebenarnya membuat kesalahan sejak ituc adalah -1/Γ(-Sebuah) (diedit), tetapi eksponen dari nsepertinya yang benar. Saya menggunakan representasi dariΓ(z)seperti yang ditemukan misalnya pada halaman Wikipedia tentang produk dan pengambilan yang tak terbatasz: =-Sebuah yang memberikan padanan untuk produk k=1n-1. Saya akan lebih percaya diri jika Anda bisa memeriksanya.
Yves

Dear @Yves, (+1) Anda benar tentang konstanta dan tentang (3). Permintaan maaf saya. Entah bagaimana, ketika saya pergi untuk menuliskan sesuatu ke kertas, saya akhirnya fokus pada asimptotik daribn dari pada nbn. :-)
kardinal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.