如何产生连续次数的非整数伯努利成功?


18

鉴于:

  1. 具有未知偏差(正面)的硬币。p
  2. 严格正实数a>0

问题:

生成具有偏差的随机伯努利变量。pa

有谁知道如何做到这一点?例如,当是一个正整数时,则可以掷硬币,并查看所有结果是否都是正面:如果结果为'0',否则为'1'。困难在于不一定是整数。另外,如果我知道偏差,我就可以制造具有期望偏差的另一枚硬币。 一个一个paaap


2
@gung:我认为需要的是一种给定硬币生成伯努利变量的算法。
Neil G

1
我觉得这里的问题是,当a>1只,平均1保持了每一个的a头弹出,当a<1,您复制每个平均的头1/a次。
2013年

3
@Macro,您能否扩展这个想法?
Pedro A. Ortega

1
尊敬的佩德罗(Dear Pedro),(+1)是您的帖子,这种问题使简历变得非常令人振奋和鼓舞,至少对我而言。请问这个问题的来历是什么?
主教

@cardinal:再次感谢您的回答!此问题是用于解决我正在处理的随机控制问题的采样器的一部分。未知的原因是因为它需要知道归一化常数(在这种情况下,这是一个讨厌的分区函数),但是我们仍然可以使用拒绝采样从中进行采样。顺便说一句,很高兴用名字叫你,而不仅仅是CV ;-)的链接。p
Pedro A. Ortega 2013年

Answers:


19

我们可以通过几个“技巧”和一些数学来解决这个问题。

这是基本算法:

  1. 生成成功概率为的几何随机变量。p
  2. 这个随机变量的结果确定一个固定的已知值fn[0,1]
  3. 生成使用公平的硬币随机变量翻转从我们的嵌段配对翻转生成ë - [R p 硬币。Ber(fn)Ber(p)
  4. 将得到的结果将是对于任何一个0 1 ,这是我们所需要的。Ber(pa)a(0,1)

为了使事情更容易消化,我们将把事情分解成碎片。

第1部分:在不失一般性的前提下,假设0<a<1

如果,然后,我们可以写p 一个 = p Ñ p b为正整数Ñ和一些0 b < 1。但是,对于任意两个独立的伯努利,我们有 PX 1 = X 2 = 1 = p 1 p 2a1pa=pnpbn0b<1 我们可以生成一个 p ñ从我们在明显的方式硬币伯努利。因此,我们需要只与产生关注自己ë - [R p 一个一个0 1

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

片2:知道如何产生一个任意从公平的硬币翻转。Ber(q)

有一种标准的方法可以做到这一点。展开在其二进制展开,然后使用我们的公平的硬币翻转到“匹配”的数字q。第一场比赛决定了我们宣布成功(“正面”)还是失败(“尾巴”)。如果q n = 1并且我们的硬币翻转为正面,则声明为正面,如果q n = 0并且我们的硬币翻转为背面,则声明为正面。否则,考虑将后续数字与新的硬币翻转相对。q=0.q1q2q3qqn=1qn=0

第三部分:知道如何从具有未知偏差的不公平硬币中产生公平的硬币翻转。

这样做时,假设,通过翻转在对硬币。如果得到H T,则声明一个头;如果我们得到T H,则声明一个尾巴,否则重复该实验,直到出现上述两个结果之一。他们是同样可能的,所以必须有概率1 / 2p(0,1)HTTH1/2

第四部分:一些数学。(泰勒为营救。)

通过扩大围绕p 0 = 1,泰勒定理断言 p 一个 = 1 - 1 - p - 1 - h(p)=pap0=1 请注意,因为 0 < < 1,在将各第一项是的,所以我们有 p 一个 = 1 - &Sigma; ñ = 1 b Ñ1 - p ñ

pa=1a(1p)a(1a)2!(1p)2a(1a)(2a)3!(1p)3.
0<a<1 其中 0 b Ñ1是已知的先验。因此 1 - p 一个 = &Sigma; ñ = 1 b Ñ1 - p ñ = &Sigma; ñ = 1 b Ñ Pg ^ Ñ = &Sigma; ñ = 1个 ˚F Ñ Pg ^ = Ñ = È
pa=1n=1bn(1p)n,
0bn1 其中 G ^ ģ ë ø p ˚F 0 = 0 ˚F Ñ = Σ Ñ ķ = 1 b ķ Ñ 1
1pa=n=1bn(1p)n=n=1bnP(Gn)=n=1fnP(G=n)=Ef(G),
GGeom(p)f0=0fn=k=1nbkn1

并且,我们已经知道如何使用硬币生成成功概率为的几何随机变量。p

第5部分:蒙特卡洛技巧。

是一个离散随机变量取值在[ 0 1 ]PX = X Ñ= p Ñ。让ü | X Ë [R X 。那么 PU = 1 = n x n p nX[0,1]P(X=xn)=pnUXBer(X)

P(U=1)=nxnpn.

但是,取X Ñ = ˚F Ñ,我们现在看到如何生成ë - [R 1 - p 一个随机变量,这等同于产生ë - [R p 一个。pn=p(1p)nxn=fnBer(1pa)Ber(pa)


我怎样才能引用您(或您的解决方案)?
Pedro A. Ortega,

2
@Pedro:我想您可以单击此答案底部的“共享”链接。它应该是一个稳定的链接。Math.SE具有引用机制,该站点上似乎未启用该机制,但您可以对其进行调整。
主教

1
现在,是一个绝妙的答案!
2013年

1
我在“分析组合法” Coursera班的“一般讨论”论坛上写下了这篇文章,因为这是与此处介绍的某些材料相关的幂级数的很好使用。class.coursera.org/introACpartI-001/forum/thread?thread_id=108
道格拉斯·

@道格拉斯:谢谢!该线程是否有一个公开可见的版本,或者我需要注册该课程才能看到它?佩德罗和我一直在(通过电子邮件)讨论在他的一些研究中包括这种方法的可能途径。
主教

6

以下答案愚蠢吗?

如果是独立的B e rp 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

因此,如果你不知道,但你能折腾这枚硬币有很多的时候,它可以从一个样品(约)Ë [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
我喜欢这个答案,但我怀疑它没有回答问题的要点,我将其解释为要求一种算法,该算法可以根据请求的分布生成而不知道(或关于p的经验信息)。但是,这个问题确实预料你可以生成Ë [R ñ Ø ü p 随机变量,所以这是一个完全合理的答案,是不是傻了!+1ppBernoulli(p)
Macro

1
+1:我喜欢。我想你是说是分布的……?Yn
Neil G

好多了!Tks,@尼尔·G!
2013年

1
这很可爱(+1),但我们可以通过几乎肯定有限的翻转次数来做到这一点(而且平均而言,翻转次数会相对较小)。
主教

5

我在Coursera上当前分析组合类的一般讨论论坛上发布了该问题的以下说明和枢机主教的回答:“幂级数在构造随机变量中的应用”。我在这里发布了一个副本,作为社区Wiki,以使其公开且永久可用。


stat.stackexchange.com上有一个与幂级数有关的有趣问题:“如何生成连续次数的伯努利成功次数不成整数?” 我将通过基数来解释问题和答案。

假设我们有一个可能不公平的硬币,其正面为概率,且实数为正α。我们如何构建其概率事件p αpαpα

如果是一个正整数,我们可以将硬币翻转α次,并假设所有掷出都是正面。然而,如果α不是整数,说1 / 2,那么这是没有意义的,但我们可以用这个思路来减少的情况下0 < α < 1。如果我们要构造一个概率为p 3.5的事件,我们将概率为p 3p 0.5的独立事件相交。ααα1/20<α<1p3.5p3p0.5

一两件事,我们可以做的是与任何已知的概率构造一个事件。为此,我们可以通过重复两次翻转硬币,将H T读取为1并将T H读取为0并忽略H HT T来构造一个公平的比特流。我们比较这流与的二进制展开p ' = 0。一个1 2 32p[0,1]HT1TH0HHTTp=0.a1a2a3...2。第一个分歧是情况的概率为p '。我们不知道p α,因此我们不能直接使用,但它会是一个有用的工具。ai=1ppα

其主要思想是,我们想用幂级数为其中p=1-q。我们可以构建其概率事件qñ通过掷硬币ñ倍,如果他们都尾部看,我们可以生产出概率事件p'qñ通过比较二进制数字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

给定一个序列,我们可以产生t G:翻转硬币直到第一个头部,如果第一个头部之前有G个尾巴,则取下索引为G的元素。如果每个Ñ[ 0 1 ],我们可以比较ģ以均匀随机变量在[ 0 1 ](如上构造),以获得与概率事件ë [ t0,t1,t2,...tGGGtn[0,1]tG[0,1]E[tG]=ntnP(G=n)=ntnqnp

这几乎是我们所需要的。我们想消除使用的电源系列p αqppα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α


同样,该论点是由于枢机主教。


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
Yves

bnnbn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.