Як створити не цілу кількість послідовних успіхів Бернуллі?


18

Подано:

  1. Монета з невідомим ухилом (Голова).p
  2. Строго позитивний реальний .a>0

Проблема:

Утворіть випадкову змінну Бернуллі з ухилом .pa

Хтось знає, як це зробити? Наприклад, коли є додатним цілим числом, тоді можна перевернути монету рази і побачити, чи всі результати були Heads: якщо вони потім видають "0", в іншому випадку видають "1". Складність полягає в тому, що не обов'язково є цілим числом. Крім того, якби я знав зміщення , я міг би просто побудувати ще одну монету з потрібним ухилом. aaap


2
@gung: Я думаю, що потрібне - це алгоритм для генерування змінної Бернуллі, даної монети.
Ніл Г

1
Я думаю , що справа тут, коли ви тільки тримати в середньому 1 з кожних голову , що вискакує і при , то дублюють кожної з головок в середньому на раз. a>1aa<11/a
Макрос

3
@Macro, ти міг би розширити ідею?
Педро А. Ортега

1
Шановний Педро, (+1) за вашу посаду, це питання, яке робить резюме дуже бадьорим та стимулюючим для мене. Чи можу я запитати, в чому походження цього питання?
кардинал

@cardinal: Ще раз дякую за вашу відповідь! Ця проблема є частиною вибірки для вирішення проблем стохастичного контролю, над якими я працюю. Причина, чому невідома, полягає в тому, що вона вимагатиме знання константи нормалізації (що в даному випадку є неприємною функцією розділення), але ми все одно можемо вибирати з неї вибірку відхилення. Btw, було б непогано посилатись на ім'я, а не лише на посилання на резюме ;-). p
Педро А. Ортега

Відповіді:


19

Ми можемо вирішити це через пару «трюків» і трохи математики.

Ось основний алгоритм:

  1. Створіть геометричну випадкову змінну з вірогідністю успіху .p
  2. Результат цієї випадкової величини визначає відоме фіксоване значення .fn[0,1]
  3. Створіть випадкову змінну, використовуючи справедливі фліп-монети, згенеровані з блоково-парних фліп нашої монети.B e r ( p )Ber(fn)Ber(p)
  4. Отриманий результат буде для будь-якого , що все, що нам потрібно.a ( 0 , 1 )Ber(pa)a(0,1)

Щоб зробити речі більш засвоюваними, ми розбимо їх на частини.

Частина 1 : Без втрати загальності припустимо, що .0<a<1

Якщо , то ми можемо записати для деякого додатного цілого числа та деякого . Але для будь-яких двох незалежних Бернуллі ми маємо Ми можемо генерувати Бернуллі з нашої монети очевидним чином. Отже, нам потрібно лише потурбуватися про генерування коли .p a = p n p b n 0 b < 1 P ( X 1 = X 2 = 1 ) = p 1 p 2a1pa=pnpbn0b<1p n B e r ( p a ) a ( 0 , 1 )

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

Частина 2 : Знайти, як генерувати довільну з справедливої ​​монети.Ber(q)

Існує стандартний спосіб зробити це. Розгорніть у своєму двійковому розширенні, а потім використовуйте нашу справедливу монету, щоб "відповідати" . Перша відповідність визначає, чи ми оголосимо про успіх ("голови") чи провал ("хвости"). Якщо а наш монетний фліп - це голови, голови, якщо а наш монетний фліп - хвости, оголосити хвости. В іншому випадку розгляньте наступну цифру проти нового перевертання монети.q q n = 1 q n = 0q=0.q1q2q3qqn=1qn=0

Частина 3 : Знайте, як генерувати справедливий відкид монети від несправедливих з невідомими зміщеннями.

Це робиться, припускаючи , перегортаючи монету парами. Якщо ми отримаємо , оголосимо голову; якщо ми отримаємо , оголосимо хвостик і в іншому випадку повторимо експеримент, поки не відбудеться один із двох вищезгаданих результатів. Вони однаково вірогідні, тому повинні мати ймовірність .Н Т Т Н 1 / 2p(0,1)HTTH1/2

Частина 4 : Деякі математики. (Тейлор на допомогу.)

Розширюючи навколо , теорема Тейлора стверджує, що Зауважимо, що оскільки кожен доданок після першого є від'ємним, тож маємо де відомі апріорі . Звідси де , іp 0 = 1 p a = 1 - a ( 1 - p ) - a ( 1 - a )h(p)=pap0=10 < a < 1 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<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=1nbkдля .n1

І ми вже знаємо, як використовувати нашу монету для створення Геометричної випадкової величини з вірогідністю успіху .p

5 твір : фокус Монте-Карло.

Нехай - дискретна випадкова величина, що приймає значення в з . Нехай . Тоді [ 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.

Але, беручи і , тепер ми бачимо, як генерувати випадкову змінну і це еквівалентно генеруванню один.x n = f n B e r ( 1 - p a ) B e r ( p a )pn=p(1p)nxn=fnBer(1pa)Ber(pa)


Як я можу процитувати вас (або ваше рішення)?
Педро А. Ортега

2
@ Педро: Я думаю, ви можете натиснути на посилання "поділитися" внизу цієї відповіді. Це має бути стійкою ланкою. Math.SE має механізм цитування , який, здається, не ввімкнено на цьому веб-сайті, але ви, можливо, зможете його адаптувати.
кардинал

1
Тепер це геніальна відповідь!
Дзен

1
Я написав це на форумі загальних дискусій класу Coursera з аналітичної комбінаторики, оскільки це було приємним використанням силових серій, пов’язаних з деяким матеріалом, який там висвітлювався. class.coursera.org/introACpartI-001/forum/thread?thread_id=108
Дуглас Заре

@Douglas: Дякую! Чи є публічно доступна версія цієї теми або мені потрібно зареєструватися для курсу, щоб побачити її? Ми з Педро обговорювали (по електронній пошті) можливі шляхи для включення цього підходу до деяких своїх досліджень.
кардинал

6

Наступна відповідь нерозумна?

Якщо є незалежними а має розподіл , тоді буде приблизно розподілений як , коли .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

Отже, якщо ви не знаєте , але ви можете кинути цю монету багато разів, можна відібрати вибірку (приблизно) з випадкової величини.B e r ( p a )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
Мені подобається ця відповідь, але я підозрюю, що вона пропускає пункт питання, який я трактував як запит алгоритму, який генерується із запитуваного розподілу, не знаючи (або емпіричної інформації про ). Але проблема передбачає, що ви можете генерувати випадкові величини , тому це цілком розумна відповідь і зовсім не дурно! +1p B e r n o u l l i ( p )ppBernoulli(p)
Макрос

1
+1: Мені це подобається. Я припускаю, ви маєте на увазі, що поширюється…? Yn
Ніл G

Значно краще! Tks, @Neil G!
Дзен

1
Це мило (+1), але ми можемо це зробити точно за майже напевно обмеженою кількістю фліп (і, в середньому, це число буде порівняно невеликим).
кардинал

5

Наступний виклад цього питання та відповідь кардинала я розмістив на загальному дискусійному форумі поточного класу аналітичної комбінаторики на Coursera: "Застосування рядів потужності для побудови випадкової величини". Я публікую копію тут як вікі спільноти, щоб зробити це загальнодоступним та більш постійним доступним.


На stat.stackexchange.com з'явилось цікаве запитання та відповідь, пов’язаний із енергетичними серіями: "Як генерувати не цілу кількість послідовних успіхів Бернуллі?" Я перефразую питання і відповідь кардиналом.

Припустимо, у нас можлива несправедлива монета, яка є головами з вірогідністю , і додатне дійсне число α . Як можна побудувати подію, ймовірність якої p α ?pαpα

Якби було додатним цілим числом, ми могли б просто перевернути монету α рази і нехай подія буде так, щоб усі кидки були головами. Однак, якщо α не є цілим числом, скажімо , 1 / 2 , то це не має сенсу, але ми можемо використовувати цю ідею , щоб знизити до випадку, коли 0 < α < 1 . Якщо ми хочемо побудувати подію, ймовірність якої p 3,5 , ми беремо перетин незалежних подій, ймовірності яких p 3 та p 0.5 .ααα1/20<α<1p3.5p3p0.5

Одне, що ми можемо зробити, - це побудувати подію з будь-якою відомою ймовірністю . Щоб зробити це, ми можемо побудувати потік бітів справедливим шляхом багаторазового гортати монету в два рази, читання H T , як 1 і Т Н в 0 , і ігноруючи H H і T T . Порівняємо цей потік із двійковим розширенням p = 0. a 1 a 2 a 3 . . . 2p[0,1]HT1TH0HHTTp=0.a1a2a3...2. Подія , що перше розбіжність , де я = 1 має ймовірність р ' . Ми не знаємо p α , тому ми не можемо використовувати це безпосередньо, але це буде корисним інструментом.ai=1ppα

Основна ідея полягає в тому, що ми б хотіли використовувати ряд потужностей для дер=1-q. Ми можемо побудувати події, ймовірності якихqn, перевернувши монетуnразів і побачивши, чи всі вони хвости, і ми можемо створити подію з ймовірністюp'qn, порівнюючи двійкові цифриp'з справедливим бітовим потоком, як вище і перевірити, чине всіnкидки - всі хвости.pα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3...p=1qqnnpqnpn

Побудуйте геометричну випадкову змінну з параметром p . Це кількість хвостів перед першою головою в нескінченній послідовності кидання монети. P ( G = n ) = ( 1 - p ) n p = q n p . (Деякі люди використовують визначення, яке відрізняється на 1. )GpP(G=n)=(1p)np=qnp1

Беручи під увагу послідовність Ми можемо виготовити т G : чи не Фліп монети до першого розділу, і якщо є G хвости перед першою головкою, візьміть елемент послідовності індексу G . Якщо кожен t n[ 0 , 1 ] , ми можемо порівняти t G з рівномірною випадковою змінною в [ 0 , 1 ] (побудованої як вище), щоб отримати подію з ймовірністю E [ tt0,t1,t2,...tGGGtn[0,1]tG[0,1] .E[tG]=ntnP(G=n)=ntnqnp

Це майже те, що нам потрібно. Ми хотіли б усунути цей щоб використовувати ряд потужностей для p α в q .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

Розглянемо . Нехайtn- сума коефіцієнтів відqдоqn. Тоді1-pα=ntnqnp. Коженtn[0,1],оскільки коефіцієнти позитивні і дорівнюють1-0α=1, тому ми можемо побудувати подію з вірогідністю1-pα1pα=αq+α(1α)2q2+...tnqqn1pα=ntnqnptn[0,1]10α=11pαшляхом порівняння справедливої бітового потоку з двійкового розкладу . Комплемент має ймовірність p α у міру необхідності.tGpα


Знову ж таки, аргумент пояснюється кардинальним.


1
(+1) Дякуємо за те, що помилилися, щоб опублікувати це. Відмінності в експозиції, хоча і відносно незначні, допомагають зробити підхід більш зрозумілим.
кардинал

4

Дуже повна відповідь кардинала та подальші внески надихнули на наступне зауваження / варіант.

q:=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}=1pa1MNBer(pa)bnbn01

Na0<a<1

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

MNNXkNXk1Xk


Xkθ (0<θ<1)Mnqnθqnnθ=aa>0XnXnθstandard Frechet'' by

bnqnBer(p)N
кардинал

(0,1)fn=i=1nbiNnbncn(1+a)fn=i=1nbiBer(p)

1
c1/Γ(a)nΓ(z)z:=ak=1n1
Ів

bnnbn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.