来自Dirichlet分布图


25

比方说,我们有一个狄利克雷分布维向量参数→交通α = [ α 1α 2α ķ ]。如何从该分布中绘制样本(K维矢量)?我需要一个(可能)简单的解释。ķα=[α1个α2αķ]ķ

Answers:


25

首先,从Gamma分布中提取独立的随机样本y 1... y K,每个样本均具有密度ķÿ1个ÿķ

伽玛α一世1个=ÿ一世α一世-1个Ë-ÿ一世Γα一世

然后设置

X一世=ÿ一世Ĵ=1个ķÿĴ

现在,将遵循Dirichlet分布X1个Xķ

对狄氏分布维基百科页面告诉你究竟是如何从狄利克雷分布采样。

此外,R库中MCMCpack还有一个函数,用于从Dirichlet分布中采样随机变量。



2

一种简单的方法(虽然不精确)在于使用绘制Dirichlet分布等效于Polya骨灰盒实验的事实。(从一组彩色的球中抽出,每次抽出一个球时,您将其放回with中,再放入另一个同色的球)

α一世

然后 :

重复N次

α一世 多项式分布

->加1 α一世

结束重复

归一化 α 得到你的分布

如果我没有记错,那么该方法是渐近精确的。但是,由于N是有限的,因此您永远都不会绘制具有很小先验概率的分布(而应该以很小的频率绘制它们)。我想在大多数情况下,N = K.10可能会令人满意。


我怀疑这是np.random.dirichlet实现的方式,因为它确实会在采样概率向量中生成精确的零,尽管这样的向量不属于任何Dirichlet支持。这就是让我在这里的原因。
Eli Korvigo
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.