如何从非负整数的离散分布中采样?


10

我有以下离散分布,其中是已知常数:α,β

p(x;α,β)=Beta(α+1,β+x)Beta(α,β)for x=0,1,2,

有什么方法可以有效地从这种分布中采样?

Answers:


9

这是Beta负二项分布,在您的情况下使用Wikipedia表示法,参数。当为整数时,它也称为Beta-Pascal分布。正如您在评论中指出的那样,这是贝叶斯负二项式模型中的预测分布,其成功概率先于共轭Beta。[R=1个[R

因此,您可以通过对变量进行采样,然后对负二项式变量进行采样(在您的情况下,进行采样说几何分布)。u NB r u r = 1贝塔αβüNB[Rü[R=1个

此分发在R包中实现brr。采样器具有名称rbeta_nbinom,pmf具有名称dbeta_nbinom,等等。符号为,,。校验:C ^ = α d = β一个=[RC=αd=β

> Alpha <- 2; Beta <- 3
> a <- 1
> all.equal(brr::dbeta_nbinom(0:10, a, Alpha, Beta), beta(Alpha+a, Beta+0:10)/beta(Alpha,Beta))
[1] TRUE

查看代码,您可以看到它实际上称为程序包ghyper分布的(广义超几何)族SuppDists

brr::rbeta_nbinom
function(n, a, c, d){
  rghyper(n, -d, -a, c-1)
}

实际上,BNB分布被称为IV型广义超几何分布。请参阅帮助ghyperSuppDists包。我相信这也可以在Johnson&al的书Univariate Discrete Distributions中找到


这个答案很好,但是如果您证明发布的密度OP与负二项式密度相同,那就更好了。
Sycorax说,恢复莫妮卡

1
@ user777我认为OP的作者已经证明了这一点,因为他评论了Xian的答案(在负二项式模型中具有先验共轭Beta的后预测分布)。
斯特凡·洛朗

10

鉴于是随X的话,建议生成均匀变量ù ù0 1 和计算的累积总和小号ķ = ķ Σ X = 0贝塔α + 1 β + X

贝塔α+1个β+X贝塔αβ=αα+β+Xβ+X-1个α+β+X-1个βα+β
Xüü01个直到Sk>u然后,实现等于相应的k。由于 R x = Beta α + 1 β + x
小号ķ=X=0ķ贝塔α+1个β+X贝塔αβ
小号ķ>ü
ķSk=Sk1+Rk计算可以避免完全使用Gamma函数。
[RX=贝塔α+1个β+X贝塔αβ=αα+β+Xβ+X-1个α+β+X-1个βα+β=α+β+X-1个α+β+Xβ+X-1个α+β+X-1个[RX-1个=β+X-1个α+β+X[RX-1个
小号ķ=小号ķ-1个+[Rķ

1
小号ķ=1个-Γ一个+bΓb+ķ+1个ΓbΓ一个+b+ķ+1个

1
ķüαβüΓb+ķ+1个Γ一个+b+ķ+1个αβ都是整数,则解决方案是多项式的根-但即使如此,使用Gamma仍然可能是解决方法。
ub

1
p
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.