问题标签 [rjags]

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 投票
1 回答
294 浏览

r - 从 mcmc 对象重构变量

rjags用作采样器。该模型定义了 3 个矩阵。该coda.samples函数返回样本列表。如果我采用第一个示例列表,列名看起来像这样:

显然,A、B 和 C 是我模型中的矩阵。我想根据这些样本的平均值重建它们。我可以很容易地得到手段,colMeans(output[[1]])但我不知道如何轻松地从这个向量重建矩阵。

重建的一个好方法是relist()函数。因此,如果我在列表中有矩阵 A、B 和 C,L = list(A=A,B=B,C=C)那么我可以将此列表转换为带有 的向量unlist()并转换回relist(). 我正在为 mcmc 对象寻找类似/现成的东西,但到目前为止无济于事 - 我不敢相信我是第一个需要这个的人。显然,relist(colMeans(output[[1]]))行不通。

有人可以帮我重建吗?

编辑:还请注意,该relist()函数只需要一个骨架,因此从中提取骨架colnames(output[[1]])也可以解决问题。还是我复杂了?

0 投票
2 回答
451 浏览

statistics - 贝叶斯 t 检验假设

下午好,

我知道传统的独立 t 检验假设同方差(即组间方差相等)和残差的正态性。

通常使用 levene 检验方差齐性,使用 shapiro-wilk 检验和 qqplots 检验正态性假设。

我必须使用贝叶斯独立 t 检验检查哪些统计假设?我如何使用 coda 和 rjags 在 R 中检查它们?

0 投票
1 回答
643 浏览

r - 使用 JAGS 生成预测

我有一个参数化的线性高斯贝叶斯网络,我正在尝试使用rjags. 我可以为一次观察做到这一点,但不知道如何传递多个观察。这是一个例子

初始模型

这可以按预期工作,但是,我有多行数据要为其生成预测。如果我尝试扩展data=list(参数以包含更多行,则会引发错误。因此,在重新运行模型文本和以下命令后,我得到了错误

jags.model 中的错误(mod,n.chains = 1,n.adapt = 1000,data = list(wt = 1:2
,:节点 dnorm 中的错误(230.722,(a1/(a123.939^2)))
Node::setValue 中的长度不匹配

我如何将其扩展到更多观察?

0 投票
1 回答
304 浏览

bayesian - JAGS:分布内的先验分布

这是我们的第一个模型:

现在我们被要求将 alpha 添加为 Normal,具有已知的均值和未知的方差。但是如图所示,方差有一个统一的先验:

型号说明

不知道怎么给模型加alpha,然后在priors中指定新参数...

0 投票
1 回答
164 浏览

multi-level - 将 glmer(二项式)转换为锯齿以包含相关的随机效应(时间)

语境:

我有一个 12 项风险评估,其中个人的评分为 0-4(4 是最高风险)。可以对每个人进行多次风险评估(最多 = 19,但大多数只有少于 5 次测量)。风险的基线水平因人而异,因此我正在寻找一个随机截距模型,但还需要反映风险的动态性质,即添加“时间”作为随机系数。

结果是二进制的:

  • 在测量级别发生的进一步犯罪 (FO.bin),这意味着我基本上是在查看 12 项中的一项或多项发生了哪些动态变化,以及它们如何导致个人在此期间再次犯罪测量之间

最终,我主要想做的是根据其他人(具有相同特征的人)的评估历史、背景因素和可能随时间变化的因素来预测个人将来是否会犯罪。  

目标:

我希望通过添加时变(级别 1)和时不变(级别 2)预测器来添加到我的“基本”模型中:

  • 时变包括围绕刑事司法程序的虚拟变量,例如不合规、上法庭和在押时间。这些被反映为在两次评估之间发生的“事件”

  • 时不变包括虚拟变量,例如女性、非白人,以及连续预测变量,例如首次进攻时的年龄2 个预测变量,包括存在交互和交叉交互的位置。然而,增强模型的复杂性正在引发各种警告消息,包括关于未能收敛的警告消息。因此,我觉得使用 Rjags 切换到贝叶斯框架是合适的,这样我就可以对我的发现更有信心。 

问题:

基本上它是一种翻译。这是我基于时间和使用 lme4 进行风险评估的 12 个项目的“基本”模型:

这是我尝试将其转换为 BUGS 模型:

查看输出,我的直觉是我没有添加时间的变化系数,到目前为止我所做的只是相当于

如何调整我的 BUGS 代码以将时间反映为不同的系数,即 Basic_Model1 ? 

根据我设法找到的示例,我知道我需要在 J 循环中进行额外的规范,以便我可以监视 U[j],并且需要更改 logit 语句的第二部分涉及时间,但它到了我看不到树木的地步!

我希望比我更专业的人可以为我指明正确的方向。最终,我希望通过添加额外的 1 级和 2 级预测器来扩展模型。使用 lme4 查看了这些内容后,我预计必须指定交互跨级别交互,因此我正在寻找一种足够灵活的方法来以这种方式扩展。我对编码很陌生,所以请对我温柔一点!

0 投票
1 回答
1503 浏览

r - jags.model 中的错误

我是 R 和 JAGS 的新手,甚至没有编程经验。

我正在尝试为某些数据设置分层模型,但出现此错误:

在运行下面的代码结束时。我究竟做错了什么?我怎样才能避免错误?

0 投票
0 回答
169 浏览

python - 将 rJAGS 审查线性回归模型转换为 PyMC3

我目前正在尝试将我老板最初用 R/rJAGS 编写的程序翻译成 Python/PyMC3,部分是因为他想看看这是否是 python 可以做的事情,部分是因为我想学习如何做这种事情,知道这似乎是件好事。我已经在 PyMC3 中得到了一个线性拟合模型,但我在尝试复制审查位时遇到了困难。

R 程序读入一个表格,每行具有三个 y 值,用于三个特定的 x 值,这些 x 值在整个数据集中是恒定的。每个 y 值也有一些与之相关的误差。如果是这样,那么我有一个 PyMC3 模型可以做到这一点;这是我为它设置的玩具模型:

上面的模型是从我在网上找到的例子中拼凑起来的,它在一条线上生成点,添加一些噪音和一些“错误”,然后对有错误的噪音点进行拟合。之后,它会获取斜率的中值以及与之相关的一些错误。

但现在我需要能够解释这些有时会弹出的审查点。在这种情况下,某些 y 值可能未被检测到,因此该点的值被视为审查限制,然后将该点设置为 NaN,但仍与该点相关联的错误。处理此问题的 R 代码模型(另存为 lin_regress_model.bug)如下所示:

以下是它可能会获取的数据示例:

所以所有这些都被传递到了 jags 模型中,它能够适应这些被审查的数据,但我终其一生都无法弄清楚如何将该位转换为 PyMC3 语言。听起来这里的 dinterval 函数可能类似于 PyMC3 中的 Uniform,但我真的不知道该怎么做,因为我不能直接翻译公式行(R 中波浪号本身的概念仍然是对我来说有点奇怪)。

如果有人可以帮助我,将不胜感激。据我所知,PyMC3 甚至可能无法实现,或者它很容易,我只是错过了一些东西。无论如何,我已经把头撞在墙上好几天了,所以我认为此时最好寻求帮助。

0 投票
0 回答
156 浏览

r - R JAGS:节点中的父值无效(结合 dcat 和 dnorm)

在使用 Jags 和 Rjags 时,我是个新手。

我一直在努力让这段代码正常工作,但我不知道它给了我错误。

错误:节点 nuless2 中的错误
无效的父值

我四处看看问题所在并阅读了大部分讨论,但我看不出任何原因。

如果有人能告诉我我的愚蠢错误在哪里,那就太好了。

另外,我对 JAGS 很陌生,想知道系统的流程是如何工作的。例如,当我定义y ~ dt()时,我还为 提供数据y。通过这样做,我是否告诉系统这就是数据以及dt()需要使用这些数据“验证”的所有参数?对这样的系统有更深入的了解会很棒。

0 投票
1 回答
1476 浏览

bayesian - rjags 错误 igit 的向量参数无效

我想比较 betareg 回归与使用 rjags 的相同回归

下面我试图用 rjags 做同样的回归

我在这条线上得到一个错误

你能建议吗

(1)如何修复错误

(2)如何设置beta回归的先验

谢谢你。

0 投票
1 回答
174 浏览

r - 从 R 中的 runjags 对象中删除链

我有一个 runjags 对象,它有两条混合得很好的链(链 1 和 3),一个没有混合得很好(链 2)。如何修剪 runjags 对象以仅包含链 1 和 3?

这是一个使用 runjags 生成 JAGS 模型的可重现示例(尽管这里的链混合得很好)。

实现此目的的一种方法是将 runjags 对象转换为 a mcmc.list,然后使用以下代码删除链:

但是,一旦在这个方向上转换,数据就不能放回 runjags 格式。我真的很想要一个将输出保持为 runjags 格式的解决方案,因为我当前的工作流程依赖于 runjags 摘要输出生成的格式。