给定全密度时从边缘采样

机器算法验证 采样
2022-04-10 03:29:31

我想从密度分布中采样

f(x)=f(c)i=1nf(xi|c)dc
在哪里x=(x1,x2,...,xn). 在我的特定设置中,很容易根据密度进行采样f(c)f(xi|c),但如何从上面给出的边际中采样并不明显。

下面的工作吗?

  1. 样本c根据f(c).
  2. 样本xi根据f(xi|c), 为了i=1,2,...,n.

为什么这应该起作用的启发式论证:

  • 明显地f(x,c)=f(x|c)f(c), 所以(x,c)我上面的程序生成的对是根据f(x,c). 边缘化等于忽视c是任何一对(x,c). 所以x在我的程序的第2步中产生的,他们自己采取的,是根据f(x), 如预期的。

这是明智的吗?如果是这样,是否有一种简短的方法可以使它变得严格?谢谢!

1个回答

你说的对!

您描述的公式有一个通用名称。该定理被称为可交换序列的de-Finetti定理,是贝叶斯哲学和思想背后的基本定理。具体来说,xis 是可交换的,即xis 的分布与f(x1,,xn).

在你的策略中,如果你画了我会更舒服一些c对于每个i. 也就是生成cf(c)然后生成xi, 并重复这个i=1n. 但我认为如果你产生足够的xs,这应该不是问题。