MCMC在Python中的实现

MCMC在Python中的实现,python,c,statistics,mcmc,Python,C,Statistics,Mcmc,我有以下问题: 有12个样本,每个样本约20000个元素,来自未知分布(有时分布不是单峰的,因此很难自动估计分布的分析族)。 根据这些分布,我计算不同的量。如何以最有效(最简单)的方式探索目标数量的分布 非常清楚,这里有一个简单的例子:数量a等于B*C/D B、 C,D是根据未知的规律分布的,但我有来自它们分布的样本,根据这些样本,我想计算A的分布。 所以事实上,我想要的是一个工具,根据变量的样本来探索目标数量的分布 我知道有MCMC算法可以做到这一点。但是有人知道用Python或C实现MCMC

我有以下问题:

有12个样本,每个样本约20000个元素,来自未知分布(有时分布不是单峰的,因此很难自动估计分布的分析族)。 根据这些分布,我计算不同的量。如何以最有效(最简单)的方式探索目标数量的分布

非常清楚,这里有一个简单的例子:数量a等于B*C/D

B、 C,D是根据未知的规律分布的,但我有来自它们分布的样本,根据这些样本,我想计算A的分布。 所以事实上,我想要的是一个工具,根据变量的样本来探索目标数量的分布

我知道有MCMC算法可以做到这一点。但是有人知道用Python或C实现MCMC采样器的好方法吗?或者有没有其他方法来解决这个问题


马克西姆

你看了吗?正如它在描述中所说:“pymc是一个python包,它将Metropolis Hastings算法作为python类实现,并且非常灵活,适用于一大组问题”,因此您可以使用它来获取一系列随机样本。

您看过了吗?正如它在描述中所说:“pymc是一个python包,它实现了Metropolis Hastings算法作为一个python类,并且非常灵活,适用于大量问题。”因此,您可以使用获取随机样本序列。

探索a分布的最简单方法是使用您的规则基于B、C和D的样本生成样本。也就是说,对于每次迭代,从各自的样本集中独立地重复绘制一个B、C和D值,并计算A=B*C/D


如果B、C和D的样本集大小相同,我建议为相同大小的a生成一个样本。更少的样本将导致信息丢失,更多的样本将无法获得更多信息。是的,即使许多样本不会被绘制,我仍然建议重复绘制。

探索A分布的最简单方法是使用您的规则基于B、C和D的样本生成样本。也就是说,对于每次迭代,从各自的样本集中独立地重复绘制一个B、C和D值,并计算A=B*C/D


如果B、C和D的样本集大小相同,我建议为相同大小的a生成一个样本。更少的样本将导致信息丢失,更多的样本将无法获得更多信息。是的,即使许多样品不会被绘制,我仍然建议重复绘制。

是的,我已经看过了。实际上我用它来产生12个变量样本。这是一个进行贝叶斯分析的强大工具,但我还没有找到一种方法来使用它的MCMC采样器来解决我的特定问题。在这种情况下,你应该重新表述你的问题,也许有更熟悉该软件包的人可以帮你。是的,我已经看过了。实际上我用它来产生12个变量样本。这是一个进行贝叶斯分析的强大工具,但我还没有找到一种方法来使用它的MCMC采样器来解决我的特定问题。如果是这样的话,你应该重新表述你的问题,也许更熟悉该软件包的人可以帮你。