问题标签 [r2jags]
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.
winbugs - JAGS - 即使使用伪先验,分层模型比较也不会在模型之间跳转
我正在使用 Kruschke 描述的分层建模框架来 比较 JAGS 中的两个模型。这个框架的想法是通过将每个版本指定为一个类别变量的一个级别来运行和比较模型的多个版本。这个分类变量的后验分布可以解释为各种模型的相对概率。
在下面的代码中,我比较了两个模型。这些模型在形式上是相同的。每个都有一个需要估计的参数,mE
。可以看出,这些模型的先验有所不同。两个先验都分布为众数为 0.5 的 beta 分布。然而,模型 2 的先验分布更加集中。另请注意,我使用了伪先验,我希望这些伪先验可以防止链条卡在其中一个模型上。但无论如何,该模型似乎卡住了。
这是模型:
以下是相关数据的 R 代码:
当我运行这个模型时,MCMC 每次迭代都花费在m = 1
,并且永远不会跳到m = 2
。我尝试了很多不同的先验和伪先验组合,但似乎找不到 MCMC 会考虑的组合m = 2
。我什至尝试为模型 1 和 2 指定相同的先验和伪先验,但这没有帮助。在这种情况下,我预计 MCMC 会在模型之间相当频繁地跳转,大约一半时间考虑一个模型,一半时间考虑另一个模型。但是,JAGS 仍将整个时间都花在了m = 1
. 我已经运行了长达 6000 次迭代的链,这对于像这样的简单模型来说应该足够长了。
如果有人对如何解决此问题有任何想法,我将不胜感激。
干杯,蒂姆
jags - runjags 模型中未使用的变量警告
我正在通过 R 包运行 JAGS 模型runjags
。我刚刚从 JAGS 3.4 更新到 JAGS 4.0.0,并注意到一些似乎与更新有关的意外行为。
首先,当我运行一个模型时,我现在会收到一条警告消息WARNING: Unused variable(s) in data table:
,后面是一个在模型中引用并作为数据提供的数据对象列表。它似乎不影响结果(但它非常令人费解)。然而,我在玩这个时注意到几次,对于某些变量,后验实际上与先验相同(表明没有发生更新)。我现在似乎无法重新创建更新失败,但下面是一个可重现的代码示例,说明了奇怪的警告消息。帮助页面上的代码示例run.jags
也会产生相同的警告。
R2jags
其次,如果我使用 R 包而不是,我想我会检查是否弹出相同的消息runjags
,但R2jags
不会加载,因为显然rjags
(依赖项之一)与 JAGS 4.0 不兼容(它正在寻找 JAGS 3 。X)。此外,在runjags
函数 run.jags 中,该参数method="rjags"
似乎不再起作用,但method="parallel"
确实起作用。
我正在使用 runjags_2.0.1-4 和 R 3.2.2。
所以我的问题是:
1) rjags 真的与 JAGS 4.0 不兼容吗?进入 4.0 的动机是使用向量作为索引(参见https://martynplummer.wordpress.com/2015/08/16/whats-new-in-jags-4-0-0-part-34-r-风格特征/)。
2)未使用的变量警告是怎么回事,我应该关注它吗?
谢谢,格伦
代码:
bayesian - 拟合贝叶斯线性回归并预测不可观察的值
我想使用 Jags 加 R 来调整具有可观察量的线性模型,并对不可观察量进行推断。我在互联网上找到了很多关于如何调整模型的示例,但没有关于在 Jags 环境中拟合模型后如何推断其系数的示例。所以,我会很感激这方面的任何帮助。
我的数据如下所示:
r - 无法将 R dump() 数据导入 JAGS,“意外列表”
我使用 Rdump()
创建了最新 JAGS 手册指定的 data.txt 文件,但我一直遇到此错误:
生成的data.txt dump()
,我从中删除了R分配的“L”:
如果我删除x
,数据将正确导入,但显然这不是我想要的。最奇怪的部分是,如果改用RJAGS
andR2JAGS
包,整个事情都可以正常工作。有谁知道如何格式化这些数据以在 JAGS 中工作?
jags - JAGS 不能处理小的指数值?
我在使用 JAGS 进行贝叶斯数据分析时遇到了一个奇怪的问题。循环说,我有
当 C[i] 很大并且导致 exp(-C[i]) 小于 10^-16 时,A[i] 取 A[i-1] 的值。看起来 JAGS 无法处理小指数值,但 10^-16 并不是一个小数字。
r - R, JAGS, r2jags:访问“for”循环开头的最后一个元素
我正在研究一个实验设计问题,并试图通过和拟合JAGS
模型。R
r2jags
为了测量残留效应,我必须访问i-1
列表中的元素以获取其中一个变量。当 时i=1
,此变量必须返回其值列表中的最后一项。我尝试使用 ifelse() 但这不起作用。
我尝试了什么:
我得到错误:
感谢您对如何实现我的解决方案的任何见解。
如果上述内容不清楚,我在 R 中尝试实现的一个简单示例。对于 variable d
,我必须访问前面的元素。从索引的开头开始时,前面的元素是最后一个元素。对于 JAGS,我不确定如何编写我的模型来执行此操作。
r - 如何在 rjags 中获取采样时间?
我已经用 rjags 实现了 LDA 模型。我成功获得了最终样本:
现在我可以使用samples$theta
orsamples$phi
来获得theta
and的结果phi
。但是我怎么知道采样需要多长时间?谢谢!
r - 在 JAGS/r2jags 中模拟数据
是否有可能滥用 JAGS 作为从具有已知参数的模型生成数据的工具?我需要从预定义的模型中采样数据点,以便进行模拟研究并测试我在 R 中开发的模型的功效。
不幸的是,该模型有些棘手(带有 AR 和 VAR 组件的分层结构),我无法直接在 R 中模拟数据。在搜索互联网时,我发现了一篇博客文章,其中数据是使用 JAGS 中的data{}
Block 生成的JAGS。在帖子中,作者直接在 JAGS 中估计了模型。由于我在 R 中有我的模型,因此我想将数据传输回 R 而无需model{}
阻塞。这可能吗?
最好,赢
r - Rjags Invalid parent value 错误与使用超先验
我正在使用 rjags 使用 N 混合模型和计数数据来计算物种丰度。为了捕捉我的数据的过度分散,我使用了超先验。但我得到一个
我的猜测是我的先验维度有问题,或者先验之一是负数、空值或 NA,这会停止节点 S 的计算。
知道如何解决这个问题吗?可以初始化S吗?
这就是我所说的模型:
r - 在 R (RJAGS) 中运行 jags.model 函数时出现“无需编译”错误
我正在为足球/足球比赛中的投篮建立一个分层贝叶斯模型。我的代码如下。
尝试运行 jags.model 函数时出现以下错误:
和
非常感谢任何帮助。