问题标签 [mcmc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1708 浏览

c++ - 将 rmultinom 与 Rcpp 一起使用

我想在 C++ 代码中使用 R 函数rmultinom与 Rcpp 一起使用。我收到一个关于没有足够参数的错误 - 我不熟悉这些参数应该是什么,因为它们与 R 中的函数使用的参数不对应。我也没有任何运气使用“::Rf_foo”从 Rcpp 代码访问 R 函数的语法。

下面是我的代码的简化版本(是的,我正在编写一个 gibbs 采样器)。

我是 C++ 的新手,所以我意识到很多这段代码可能很笨拙且效率低下。我愿意接受有关如何改进我的 c++ 代码的建议,但我的首要任务是了解 rmultinom 业务。谢谢!

顺便说一句,我为与此线程的相似之处道歉,但是

  1. 答案对我的目的不起作用
  2. 差异可能足以证明一个不同的问题(你认为是吗?)
  3. 这个问题是在一年前发布并回答的。
0 投票
1 回答
210 浏览

statistics - pymc中的“调整步骤方法”是什么意思

我正在尝试为 pymc 中 MCMC.sample 的参数尝试不同的值。

我查看了 MCMC.sample 的帮助页面,发现:

tune_interval : 整数

Step 方法将以这么多迭代的间隔进行调整,默认为 1000

“调整步骤方法”是什么意思?所以,我不知道保持这个数字高还是低会给我带来更好的结果。

0 投票
1 回答
694 浏览

pymc - TypeError: hasattr(): 属性名必须是 pymc 中的字符串

我查看了以下链接,但没有一个提供我正在寻找的解决方案

https://github.com/pymc-devs/pymc/issues/125

PyMC 错误:hasattr():属性名称必须是字符串

我必须编写一个函数,它给定先验(和其他东西,如数据等)返回一个 pymc 模型。例如

而在调用函数中,当我这样做时,mcmc = pymc.MCMC(model) 它给出了一个很长的错误

另一方面,如果在函数中(返回模型),如果我这样做

它运行良好,但该函数应该返回一个模型,以便用户可以在代码的其他部分对模型做任何他想做的事情。

0 投票
1 回答
497 浏览

python - 在 pymc 中定义先验和边缘化先验

我正在阅读有关使用pymc库的蒙特卡洛马尔可夫链过程的教程。我也是使用pymc的新手,并尝试建立自己的 MCMC 流程。我遇到了几个在 pymc 教程中找不到正确答案的问题:首先:我们如何用 pymc 定义先验,然后在链过程中边缘化先验?

我的第二个问题是关于Dirichlet分布的,这个分布与 MCMC 中的先验信息有什么关系,应该如何定义?

0 投票
1 回答
74 浏览

python - 在参数空间中定义具有跳跃数量级的指数先验

我想为参数定义一个指数先验,如下所示

在此处输入图像描述

因此我在pymc中定义了它

我也希望它满足以下约束

在此处输入图像描述

但是当我运行我的 MCMC 代码时发生的事情MASS变化非常缓慢,而我希望它在 和 之间以这三个数量级更快地1e+13变化1e16。我如何定义我的先验以便在参数空间中进行相当大的更改?

0 投票
0 回答
365 浏览

python - 对 MCMC 代码使用多处理

我是一个新手pymc用户,我编写了一个非常慢的 MCMC 代码,我想修改我的代码以加快速度。是否可以使用多处理来加快pymc的性能?例如,如果我有一个make_model由一堆确定性、随机性和潜在类组成的函数,并且我有兴趣找到几个参数的后验。如果我的 MCMC 代码的结构如下:

当所有链都相关时,我如何使用多处理来决定参数空间中的下一步?如果可行,应该怎么做?

0 投票
1 回答
197 浏览

bayesian - PyMC 代码给出不寻常的结果

我尝试使用 PyMC 解决逻辑回归模型。但是,诊断图显示了非常高的自相关性,并且在从后验分布重复采样后,我有时会得到非常不同的结果,所以我可能没有正确使用 PyMC。

模型如下:

实现是这样的:

当我采样m.sample(500000, 200000, 50)并绘制结果后验分布时,我得到了:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在第二次尝试获得更好的结果时,我使用了@pm.observed:

但它也会产生高自相关。

我增加了样本量但没有取得多大成功。我错过了什么?

0 投票
0 回答
69 浏览

r - 在 adaptMCMC 包中控制 MCMC 函数的输出消息

想知道是否有任何方法可以禁用在包中的MCMC()函数运行期间打印的输出消息。adaptMCMC我多次运行这个函数,这些打印语句填满了我的磁盘。

这是它的外观(直接来自手册):

输出消息是:

我的 gibbs 采样器比导致大量标准输出的采样器复杂得多。

0 投票
1 回答
477 浏览

r - 如何使用 MCMCpack 获得差异的后验?

我正在尝试使用MCMCpack两个转换率之间的差异来获得后验分布,类似于本 PyMC 教程的A 和 B Together部分。

我可以很好地获得两个采样率的后验,但我正在努力如何实现采样增量。有什么想法吗?

编辑真正的增量(如果我们没有捏造数据并且是我们想要使用 MCMC 估计的,这将是未知的)是两个速率之间的差异true_p_atrue_p_b0.01

在此处输入图像描述

0 投票
1 回答
4740 浏览

r - R中的MCMCglmm多项式模型

我正在尝试使用MCMCglmmR 中的包创建模型。

数据的结构如下,其中 dyad、focal、other 都是随机效应,predict1-2 是预测变量,响应 1-5 是捕获不同亚型观察到的行为的结果变量:

因此,只有一个结果(教学)的模型如下:

Hadfield 的课程笔记(第 5 章)给出了一个多项模型的示例,该模型仅使用具有 3 个级别的单个结果变量(3 种类型的羊角)。可以在这里找到类似的处理方法:http: //hlplab.wordpress.com/2009/05/07/multinomial-random-effects-models-in-r/这对我正在做的事情不太正确,但包含有用背景资料。

另一个参考资料(Hadfield 2010)给出了一个多响应 MCMCglmm 的示例,它遵循相同的格式,但使用 cbind() 来预测响应向量,而不是单个结果。具有多个响应的相同模型如下所示:

我在这里有两个编程问题:

  1. 如何为此模型指定先验?我已经查看了这篇文章中提到的材料,但无法弄清楚。

  2. 我运行了一个只有两个响应变量的类似版本,但我只得到一个斜率 - 我认为我应该为每个resp变量得到不同的斜率。我哪里出错了,或者我误解了模型?