有效采样阈值Beta分布


10

如何从以下分布中有效采样?

Xαβ X>ķ

如果不太大,则拒绝采样可能是最好的方法,但是我不确定很大时如何进行。也许可以应用一些渐近逼近?ķķ


1
通过“ “可以清楚地知道您打算在其中做什么。您的意思是截断的 beta分布(在处截短在左侧)吗?Xαβ X>ķķ
Glen_b-恢复莫妮卡的状态

完全是@Glen_b。
user1502040

5
对于两个大于1的形状参数,β分布都是对数凹形,因此指数包络可用于拒绝采样。要生成未截断的beta变量,您已经从截断的指数分布中采样(这很容易做到),因此采用这种方法应该很简单。
Scortchi-恢复莫妮卡

Answers:


14

适用于任何截断分布的最简单方法也是最通用的方法(也可以将其概括为两侧截断),是使用逆变换采样。如果是感兴趣的累积分布,则设置并取Fp0=Fķ

üüp01个X=F-1个ü

其中是来自的样本,在被截断。分位数函数将概率映射到样本。由于我们仅从与非截断区域的beta分布值匹配的“区域” 中获取值,因此您将仅对那些值进行采样。XFķF-1个Fü

下图显示了此方法,该处的截断区域由灰色矩形标记,红色点从分布中绘制,然后转换为样品。üp01个28

截断分布的逆变换采样


5
(+1)值得一提的是,分位数功能并不是那么容易评估。
Scortchi-恢复莫妮卡

1
@Scortchi如果a或b为1或至少为整数,则格式不是很差(请参阅Wikipedia)。在Python中有scipy.special.betainc逆,在R中有pbeta
Graipher '17

3
@Graipher:我应该说“通常便宜”-最好避免使用Newton-Raphson或其他迭代解决方案。(顺便说一句,它qbeta用于R中的分位数功能。)
Scortchi-恢复Monica

1
@Scortchi是正确的,但是在大多数情况下,对于现代计算机而言,这应该不是主要问题。我也推荐这种方法,因为它可以在大多数软件中直接使用,并且可以推广到任何截断的分布,只有在可以使用分位数功能的情况下。
蒂姆

1
毫无疑问,最好有一种通用的,易于实现的方法来处理其运行时间不随;&对于具有封闭形式的分位数功能的分布(例如Weibull),它必须尽其所能。尽管如此,我怀疑必须将k设置为截取beta分布的相当大的一部分,才能击败大多数软件中也可用的高效拒绝采样算法,该算法仅依赖于beta概率密度的计算。ķķ
Scortchi-恢复莫妮卡

8

@Tim的答案显示了逆变换采样如何适用于截断的分布,从而释放了对阈值的依赖运行时间。通过避免对β分位数函数进行昂贵的数值评估并使用逆变换采样作为拒绝采样的一部分,可以进一步提高效率。ķ

形状参数为β的双分布在k 1 < k 2处被截断的beta分布的密度函数为(略有普遍性)为αβk1<k2

FX=Xα-1个1个-Xβ-1个ķ2αβ-ķ1个αβ

x U之间的任何单调递增的密度部分:对于α β > 1,它是对数凹形,因此您可以用在切线上沿其任意点绘制的指数函数包围它:X大号Xüαβ>1个

GX=CλË-λX-X大号

通过将对数密度的梯度设置为相等来找到λ

&找到Ç通过加工出的指数密度需要多少被缩放,以满足在该点的密度 Ç=˚FX

-λ=一个-1个X-b-1个1个-X
C
C=FXλË-λX-X大号

在此处输入图片说明

一个=C1个-Ë-λXü-X大号
XλC

X=X一个1个-Xb一个+b-2X-一个+1个[经验值b-1个X-X大号1个-X+X大号一个-1个X-一个-1个-经验值b-1个X-Xü1个-X+Xü一个-1个X-一个-1个]

ddXXddX=0

ķ1个ķ2ü-日志1个-üλλ

在此处输入图片说明

这种方法的优点在于所有的辛苦工作都已准备就绪。定义包络函数后,计算出截断的beta密度的归一化常数,剩下的就是生成统一的随机变量,并对它们执行一些简单的算术运算,对数和幂以及比较。用水平线或更多指数曲线来加强包络功能当然可以减少拒绝的次数。


1
+1好主意。由于Beta对于其参数的中等到较大的值大约是正常的,因此取决于它们彼此之间的接近程度,因此使用高斯包络可能会更加高效。
whuber

α<1个β<1个

1
αβ

@whuber:(1)我在这里采用的构造信封的方法行不通,因为密度不是对数凹形的。(2)(a)我的意思当然是代数函数+对数与幂,trig。函数,如果有人问我,甚至还有伽玛函数-我承认我没有一个精确的概念。(b)把握要点-快速的功能评估不限于封闭形式的评估。
Scortchi-恢复莫妮卡

1
α<1个β<1个
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.