정수 이외의 연속 Bernoulli 성공을 생성하는 방법은 무엇입니까?


18

주어진:

  1. 바이어스 (헤드) 를 알 수없는 동전 .p
  2. 엄격하게 양의 실수 .a>0

문제:

바이어스 로 임의의 Bernoulli 변수를 생성합니다 .pa

누구든지 이것을하는 방법을 알고 있습니까? 예를 들어, 가 양의 정수이면 동전을 번 뒤집어 모든 결과가 헤드인지 확인할 수 있습니다. 그런 다음 '0'을 발행하면 그렇지 않으면 '1'을 발행하십시오. 어려움은 가 반드시 정수일 필요는 없다는 사실에 . 또한 바이어스 알고 있다면 원하는 바이어스로 다른 코인을 만들 수 있습니다. 페이지aaap


2
@ gung : 원하는 것은 동전이 주어진 Bernoulli 변수를 생성하는 알고리즘이라고 생각합니다.
Neil G

1
여기 지점이 때, 생각 만 매 중 1의 평균을 유지 팝업 때 머리 , 당신의 평균 각각의 헤드 중복 시간을. a>1aa<11/a
매크로

3
@ 매크로, 당신은 아이디어를 확장 할 수 있습니까?
Pedro A. Ortega

1
친애하는 Pedro, (+1) 귀하의 게시물에 대해 CV를 매우 활기차고 자극하게 만드는 일종의 질문입니다. 이 질문의 기원이 무엇인지 물어볼 수 있습니까?
추기경

@cardinal : 답장을 다시 한 번 감사드립니다! 이 문제는 내가 작업하고있는 확률 적 제어 문제를 해결하기위한 샘플러의 일부입니다. 를 알 수없는 이유 는 정규화 상수 (이 경우 불쾌한 분할 함수 임)를 알아야하기 때문에 거부 샘플링을 사용하여 샘플링 할 수 있습니다. Btw, CV에 대한 링크뿐만 아니라 이름으로 당신을 인용하는 것이 좋을 것입니다 ;-). p
Pedro A. Ortega

답변:


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

만약 이라면, 양의 정수 과 대해 를 쓸 수 있습니다 . 그러나 두 개의 독립적 인 Bernoulli의 경우 우리는 생성 할 수 있습니다 확실한 방법으로 우리의 동전에서 베르누이. 따라서 때 생성에만 관심이 필요합니다 .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)

이를 수행하는 표준 방법이 있습니다. 확장 바이너리 확장에 다음 적정 동전이 "일치"의 자리로 뒤집 사용 . 첫 번째 일치는 성공 ( "heads") 또는 실패 ( "tails")를 선언할지 여부를 결정합니다. 경우 하고 동전 던지기가 헤드 선언 헤드이면 하고 경화 플립 꼬리 선언 꼬리이다. 그렇지 않으면, 새로운 동전 뒤집기에 대한 후속 숫자를 고려하십시오.q q n = 1 q n = 0q=0.q1q2q3qqn=1qn=0

3 조 : 알 수없는 편견을 가진 불공평 한 동전에서 공정한 동전 뒤집기를 만드는 법을 배웁니다.

이것은 코인을 쌍으로 뒤집어서 이라고 가정 합니다. 우리가 를 얻는다면 헤드를 선언하십시오. 를 얻으면 꼬리를 선언하고 그렇지 않으면 위에서 언급 한 두 가지 결과 중 하나가 발생할 때까지 실험을 반복하십시오. 그것들은 똑같이 가능하므로 확률 이어야합니다 .H T T H 1 / 2p(0,1)HTTH1/2

조각 4 : 약간의 수학. (구조자에 대한 테일러)

주위의 를 확장함으로써 Taylor의 정리는 참고로 인해 의 후 각 용어는 처음 네거티브 우리가되도록, 은 선험적 으로 알려져 있습니다. 따라서 여기서 , 및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)


어떻게 당신이나 당신의 솔루션을 인용 할 수 있습니까?
Pedro A. Ortega

2
@Pedro :이 답변의 맨 아래에있는 "공유"링크를 클릭 할 수 있다고 가정합니다. 안정적인 링크 여야합니다. Math.SE에는 인용 메커니즘 이 있습니다.이 메커니즘 은이 사이트에서 활성화되어 있지 않지만 조정할 수 있습니다.
추기경

1
자, 이것은 훌륭한 답변입니다!
Zen

1
나는 이것을 Analytic Combinatorics에 대한 Coursera 클래스의 일반 토론 포럼에서 작성했습니다. 왜냐하면 이것이 여기에서 다루는 일부 자료와 관련된 파워 시리즈를 잘 사용했기 때문입니다. class.coursera.org/introACpartI-001/forum/thread?thread_id=108
Douglas Zare

@ Douglas : 감사합니다! 해당 스레드에 공개적으로 볼 수있는 버전이 있습니까? 아니면 코스를 보려면 가입해야합니까? Pedro와 나는 그의 연구 중 일부에이 접근법을 포함시킬 수있는 방법을 (이메일을 통해) 논의했습니다.
추기경

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 전자 R ( P의 )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
Neil G

훨씬 낫다! Tks, @ 닐 G!
Zen

1
이것은 귀엽지 만 (+1) 거의 확실하게 한정된 수의 플립으로 정확하게 수행 할 수 있습니다 (평균적으로이 수는 상대적으로 작습니다).
추기경

5

나는이 질문에 대한 다음의 설명과 Coursera의 현재 Analytic Combinatorics 클래스의 일반 토론 포럼에 대한 추기경 답변을 게시했습니다 . 나는 이것을 공개적이고 영구적으로 사용할 수 있도록 여기에 커뮤니티 위키로 사본을 게시하고 있습니다.


power 시리즈와 관련하여 stat.stackexchange.com에 대한 흥미로운 질문과 답변이있었습니다 : "정수가 아닌 연속적인 Bernoulli 성공을 생성하는 방법?" 나는 추기경으로 질문과 대답을 역설 할 것이다.

확률이 이고 양의 실수 인 헤드 인 불공평 한 동전이 있다고 가정하십시오 . 확률이 인 이벤트를 어떻게 구성 할 수 있습니까?pαpα

만약 가 양의 정수라면, 우리는 동전 번 뒤집기 만하면 모든 던지기가 머리라고 할 수 있습니다. 그러나 가 정수가 아닌 경우 ( )는 의미가 없지만이 아이디어를 사용하여 경우로 줄일 수 있습니다 . 확률이 인 이벤트를 구성하려면 확률이 및 인 독립 이벤트의 교집합을 취합니다 .ααα1/20<α<1p3.5p3p0.5

우리가 할 수있는 한 가지는 알려진 확률 이벤트를 구성하는 것 입니다. 이를 위해 코인을 두 번 반복 반복하고 를 , 를 으로 읽고 와 무시 하여 페어 비트 스트림을 구성 할 수 있습니다 . 이 스트림을 의 이진 확장과 비교합니다 . 첫 번째 불일치 이벤트는 확률 입니다. 우리는 이것을 직접 사용할 수는 없지만 유용한 도구가 될 것입니다.p[0,1]HT1TH0HHTTp=0.a1a2a3...2ai=1ppα

주요 아이디어는 대해 전력 계열을 사용하려는 것입니다. 여기서 입니다. 우리는 그 확률의 이벤트를 구성 할 수 있습니다 동전 뒤집기에 의해 그들은 모두 꼬리가있는 경우 시간과보고, 우리는 확률로 이벤트 생산할 수있는 의 이진수 비교하여 공정한 비트 스트림 위와 같이 토스가 모두 꼬리 인지 확인합니다 .pα=(1q)α=1αqα(1α)2q2α(1α)(2α)3!q3...p=1qqnnpqnpn

매개 변수 로 기하학적 랜덤 변수 를 생성 합니다. 이것은 무한한 동전 던지기 순서에서 첫 번째 머리 앞의 꼬리 수입니다. 입니다. (어떤 사람들은 이 다른 정의를 사용합니다 .)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

고려 . 을 ~ 의 계수의 합 이라고합시다 . 그런 다음 입니다. 계수가 양수이고 이기 때문에 각 이므로 공정 비트 스트림을 이진 확장과 비교하여 확률 인 이벤트를 구성 할 수 있습니다 의 . 보수는 필요에 따라 확률 를 갖습니다 .tnqqn1pα=ntnqnptn[0,1]10α=111pα=αq+α(1α)2q2+...tnqqn1pα=ntnqnptn[0,1]10α=11pαtGpα


다시 말하지만, 그 주장은 추기경 때문입니다.


1
(+1)이 글을 올리는 데 어려움을 겪어 주셔서 감사합니다. 노출의 차이는 비교적 적지 만 접근 방식을보다 명확하게하는 데 도움이됩니다.
추기경

4

추기경 및 후속 기고에 의한 매우 완전한 답변 은 다음과 같은 발언 / 변동에 영감을 주었다.

PZ를 "Probability of Zero"와 . 경우 PZ와 IID의 베르누이 시퀀스 인 그리고, PZ를 가진 베르누이 RV이며 . 이제 무작위로 만듭니다. 즉, 정수 rv 로 바꾸면 Bernoulli rv 이 따라서 이고 을 추기경 의 대답 에서 가져 오면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}=1pa 이고 은 입니다. 계수 만족시키고 합계가 이기 때문에 이것은 실제로 가능합니다 .1MNBer(pa)bnbn01

이산 분포 밖에는 와 , 리콜 흥미로운 기능이 있습니다. 그것은 무한한 기대 와 인 무거운 꼬리 행동 것으로 판명되었습니다 . Na0<a<1

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

비록 최대 인 RVS, 그 결정이 다수 필요 인 결과는 곧 하나로 알려져 있기 때문에 인 . 계산 된 는 기하학적으로 분포됩니다.MNNXkNXk1Xk


관련된 아이디어는 rvs 를 extremal index 종속 되게 만드는 것입니다 . 이는 이 대신 PZ 를 을 의미합니다 . 취하면 대한 작업이 수행 됩니다. 표준 Frechet 다음 에 iid rv.s 시퀀스가 주어지면 표준 Frechet 마진과 처방 된 극한 지수 로 종속 시퀀스 를 생성하는 방법이 알려져 있습니다 . 그러나 Bernoulli 를 교체하면 어떻게됩니까 ? '' θXkθ (0<θ<1)Mnqnθqnnθ=aa>0XnXnθstandard Frechet'' by
이브

(+1) 아주 좋아요, @ 이브 스. 몇 가지 언급 : ( 1 ) 첫 번째 부분은 내가 취한 접근법의 보완으로 볼 수 있습니다. 사실, 내가 에서 시리즈를 처음 받았을 때 , 즉시 지오메트리와의 연결을 보았지만, 더 직접적인 것을 시도했지만 자연스럽게 할 수있는 방법을 찾지 못했습니다. 당신의 대답은 그 문제를 해결합니다. ( 2 ) 코인 만 사용하여 접근을 구현할 수도 있습니다 . 특히, 아래로 하강에 의해 발생 될 수 있습니다 완전 이진 트리를 공정 동전, 화나게 왼쪽 노드가 잎이있는 곳과 결정이 (...)에 의해 이루어집니다를 기반으로bnqnBer(p)N
추기경

(...) 동전의 (부분) 순서로 구성된 의 숫자를 부분 합 합니다. 종료 깊이는 입니다. ( 3 ) 나는 이라고 믿으며 , 이는 평균의 유한성에 대한 결론을 바꿀 것입니다. ( 4 ) 귀하의 접근 방식과 광산에서 동전 외에 균일 한 랜덤 변이를 허용하더라도 계산을 피할 수 없습니다. 샘플링 목적으로. 이를 피할 수있는 방법을 찾는 것이 효율성을 향상시키는 가장 확실한 방법 인 것 같습니다. f n = n i = 1(0,1)fn=i=1nbiNnbncn(1+a)fn=i=1nbiBer(p)
추기경

1
@cardinal 감사합니다. 나는 아마도 (3)을 제외한 모든 의견에 동의합니다. 가 (편집 됨) 이므로 실제로 오류가 발생 했지만 의 지수 는 올바른 것으로 보입니다. I는의 표현에 사용 에 위키 페이지에있는 예로서 무한한 제품 과했다 제품의 등가주는 . 당신이 이것을 확인할 수 있다면 더 확신 할 것입니다. 1 / Γ ( a ) n Γ ( z ) z : = a n 1 k = 1c1/Γ(a)nΓ(z)z:=ak=1n1
이브

@Yves에게, (+1) 상수와 (3)에 대해 정확합니다. 사과드립니다. 어쨌든, 내가 종이에 물건을 쓰려고했을 때, 나는 대신에 의 점근에 초점을 맞추 었습니다 . :-) n b nbnnbn
추기경
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.