问题标签 [runjags]
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.
r - 将多级锯齿模型从宽格式转换为长格式
我有一个多级锯齿模型。我正在尝试将其从宽格式转换为长格式,如下所述:http: //jeromyanglim.tumblr.com/post/37361593128/jags-converting-multilevel-model-from-wide-to但是我的模型比这个例子,所以我在完成这项工作时遇到了一些麻烦。为了说明困难,我做了一个可重复的例子。第一个块创建数据并设置 jags 参数:
好的,所以下一部分是“宽格式”锯齿模型,它在对象中提供了正确的估计mcmcChain
:
因此,BO 输出接近生成数据的相关性。接下来是我对类似于上面链接中的解释的“长格式”模型的尝试。
所以结果与 的结果mcmcChain2
不匹配mcmcChain
,但我看不出哪里出错了。任何人都可以帮忙吗?谢谢。
r - jags.model 中的错误
我是 R 和 JAGS 的新手,甚至没有编程经验。
我正在尝试为某些数据设置分层模型,但出现此错误:
在运行下面的代码结束时。我究竟做错了什么?我怎样才能避免错误?
r - runjags 的大型监视器列表
使用 runjags,我试图监控大量的值。监控列表的格式是一串值,在这种情况下,我要求监控 3、Y[14]、Y[15]、Y[3]。
假设我想监控数百个值。我可以创建这个字符串,但它只是返回到提示符“+”。并且无法运行。
可以创建并作为参数传入的字符串的大小是否有上限?
有没有更好的方法(非字符串)将此列表传递给 run.jags?
我能够让它运行的唯一方法是将字符串文字粘贴到函数调用中,包含字符串的变量不起作用。
较长的运行列表如下所示:
...删除了许多行
r - 从 R 中的 runjags 对象中删除链
我有一个 runjags 对象,它有两条混合得很好的链(链 1 和 3),一个没有混合得很好(链 2)。如何修剪 runjags 对象以仅包含链 1 和 3?
这是一个使用 runjags 生成 JAGS 模型的可重现示例(尽管这里的链混合得很好)。
实现此目的的一种方法是将 runjags 对象转换为 a mcmc.list
,然后使用以下代码删除链:
但是,一旦在这个方向上转换,数据就不能放回 runjags 格式。我真的很想要一个将输出保持为 runjags 格式的解决方案,因为我当前的工作流程依赖于 runjags 摘要输出生成的格式。
r - 在 JAGS 中为 R 指定层次模型
我有一些相关变量的数据,这些y
变量可以建模为协变量x1
和x2
. y
和x1
在“地块”级别x2
观察, 和 在“地点”级别观察。情节嵌套在站点内,分层。y
以下是 100 个与相关协变量数据相关的观察结果。
我可以使用基本上复制 每个站点 10 次的站点级别观察的数据框架,将其建模为 jagsy
的函数x1
并且没有问题。x2
plot_data
x2
然而,我真正想做的是分层拟合模型,
y[i] ~ x1[i] + x2[j]
其中 , where[i]
表示地块级别的观察和[j]
索引站点。我怎样才能修改下面的 JAGS 代码来做到这一点?
bayesian - RJags“无法找到合适的采样器”
我正在尝试使用 Line-Transect Distance Sampling 和数据增强来模拟乌龟洞穴的大小。但是,我不断收到错误消息“无法找到合适的采样器”。
一些背景:洞穴的宽度可以从 4 厘米到 55 厘米不等,并且以各种概率和与景观中的观察者不同的距离被看到。为了实现收敛,我决定使用基于分类的模型。乌龟洞穴被放入 7 个箱中的一个,在给定箱中的概率来自 Dirichlet 分布。
在这部分代码中,增强的洞穴从模型中提取它们的大小:
一旦它们有了大小,就确定了看到洞穴 p[i] 的概率:
所有这些似乎都可以正常工作,但是在评估 y 时问题发生在这里:
我可以运行除 y 之外的每一行,并且模型运行良好。但是添加该行并包含我的 y 数据会引发“无法找到合适的采样器”错误。知道为什么吗?我需要包含这个变量,因为 y 表示我是否真的在调查期间找到了洞穴。
任何建议将不胜感激。
这是带有一些虚假数据的完整代码:
数据:
运行命令:
r - 使用 R 中的 JAGS 进行结果预测
[代码已更新,不再对应错误消息]
我试图了解 JAGS 如何预测结果值(对于混合马尔可夫模型)。m
我已经在包含结果和协变量的数据集上训练了模型x1
,x2
并且x3
.
在不固定参数值的情况下预测结果在 R 中有效,但输出似乎完全随机:
正在编译 rjags 模型... 使用 rjags 方法调用仿真... 注:模型不需要适配 模型中烧录 4000 次迭代... |*************** ***********************************| 100% 运行模型 1 次迭代... 模拟完成 完成运行模拟
但是,一旦我尝试修复参数(即使用模型估计来预测结果m
,我就会得到错误:
正在编译 rjags 模型...错误:使用 rjags 编译和适配模型时出现以下错误:rjags::jags.model(model, data = dataenv, n.chains = length(runjags.object$end.state) 中的错误, : RUNTIME ERROR: 第39行编译错误。beta1[2,1]是逻辑节点,无法观察
beta1
在这种情况下是系数估计的 2x2 矩阵。
- JAGS
m
在第一个示例中如何预测(无固定参数)?它只是完全随机选择m
吗? - 如何包含早期获得的模型估计来模拟新的结果值?
型号为:
r - 在 JAGS 中为 R 拟合多元 dirlichet 模型
我正在尝试使用在 R 中实现的 JAGS 将多元模型拟合到物种组成数据。我有 3 个物种相对丰度的数据(在 [0,1] 之间有界),其中两个是相关的。这是生成类似数据的代码。
y
是我的三个因变量和y1
的数据框。我想为这些数据拟合一个仅截距的模型,使用 dirlichet 分布(beta 分布的多元扩展)来解释因变量之间的协方差。y2
y3
我有点卡住了。我可以使用 R 中的包使用 beta 分布对单个因变量进行编码runjags
,如下所示:
Mu 的问题是:如何使用 JAGS 中的 dirlichet 分布(在 R 中实现)将其扩展到多变量情况?如果我们能解释y
矩阵中的协方差,那就太好了。
r - 将参数向量乘以 JAGS 中的自变量矩阵
我正在使用 dirlichet 分布在 JAGS 中拟合多元模型。我有一个y
包含 3 个物种比例丰度的矩阵。
我有一个x
预测值矩阵,其中第一个是截距。
我指定了一个多元锯齿模型jags.model
:
我设置了 JAGS 数据对象jags.data
:
我使用 R 中的 runjags 包拟合 JAGS 模型。
我收到以下错误:
我在这里做错了什么?作为参考,通过预测组合拼出每个参数仍然很合适:
r - 在 jags / rjags / runjags 中修剪 mcmc.list
我将runjags
R 中模型的输出作为mcmc.list
. 下面是生成 3 个包含 1,000 个样本的链的代码。我想将所有 12 条链修剪到最后 400 个样本。我可以拉开链并将链输出矩阵保存在列表中,但它不再是一个mcmc.list
,我不知道如何将它变成一个 mcmc.list。
以下是一些用于运行runjags
模型并将输出转换为 a 的数据mcmc.list
: