问题标签 [jags]
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 - 使用 JAGS 估计具有二项式和 20 个样本/地块的中位冠层覆盖
我想估计 13 个组的树冠覆盖的中位数以及 5、25、75 和 95 个百分位数(记录为 20 个中有或没有植被的点数)和总共 223 个样本。我之前发布了这个假设是 beta 分布,但这是不正确的。这是一份过期的手稿,这是遗失的最后一篇。如果有人可以帮助我完成(直到代码工作),我将不胜感激。我想我已经接近了,它只需要一些调整——我想。
(我进行了编辑以修复两个反对票,但我不确定有什么不清楚的地方)。
非常感谢!
下面是我的模型声明,R 代码和数据。照原样,我得到的错误是
但请注意,我删除了下面的空格,错误是指可能性陈述。
R代码:
数据:
r - 足球结果建模
我有附加的模型(由 Rasmus Bååth 提供),我正在努力改进它以增加我对 MCMC 和 R 的理解。模型中输入的是足球比赛,每行包含(HomeTeam、AwayTeam、Season、HomeGoals、AwayGoals、MatchResult ,家庭表格,离开表格)。该模型用于预测两支球队之间的比赛中的足球结果,其中 HomeGoals 和 AwayGoals 被建模为泊松分布。过去几天我一直在努力完成的是使用这些关于模型中团队当前形式的数据,但我想不出一种方法来实现它。我希望就如何做到这一点提出一些建议。
一些澄清:
- 赛季是比赛所在的赛季
- 如果客队获胜,MatchResult 为 -1,如果平局,则为 0,如果主队获胜,则为 1。
- HomeForm 和 AwayForm 分别是量化主队和客队当前状态的值(-1 到 1,球队最后一场比赛的滚动平均比赛结果,窗口为 5,如果球队踢客场则为负比赛结果) .
- 文本中的列在传递给模型(因子)之前被转换为整数。
谢谢!
模型:
数据(部分):
r - 使用 for 循环为多个参数分配先验分布
我已阅读 JAGS 手册,但没有找到将相同的先验分布分配给 JAGS / R2JAGS 模型中的多个参数的方法。
例如,目前我必须重复很多这样的代码:
如何干燥此代码?
python - 运行 PyMC 时出错 - 随机值超出其支持范围,或者它禁止其父项的当前值
我正在尝试使用 PyMC 将四个不同的医疗状况预测变量作为输入,并将它们结合起来,在给定预测变量子集“是的,该患者患有这种疾病”的情况下,得出患者患有该疾病的总体后验概率。
这个想法是从 beta 分布中为每个预测变量选择一个 theta(条件的总体比率)以及假阴性和假阳性率,然后使用贝叶斯定理计算边际概率和后验概率。我有一个包含 16 个观察值的数组,每个可能的预测变量组合一个(因为有 4 个预测变量,所以有 2**4 = 16 个不同的可能预测变量组合)。我将最后一组计数和边际概率输入多项分布,类似于在 PyMC 教程http://pymc-devs.github.io/pymc/tutorial的以下示例中如何将灾难数组与泊松分布一起使用.html。
这是我编写的尝试执行此操作的代码:
当我运行它时,在计算计数时,我得到与最后一行有关的错误:
显然,这个错误与 PyMC 不喜欢我提供给 Multinomial() 的某些值有关,但我不确定哪个是错误的。我相信值应该是 counts_array (我观察到的计数值),n 应该是 16,因为我想选择一个包含 16 个项目的数组进行计数,每个可能的预测变量组合一个,p 应该是我的边际概率,并观察到应该是真的,因为我已经观察到了值。
我究竟做错了什么?
编辑:如果有帮助,我之前在 R2jags 中使用以下代码执行此操作:
r - runjags 摘要中的 psrf 值太低?
psrf = 1.0047
Runjags对显然存在收敛问题的链的报告非常低:
当我尝试计算psrf
使用尾声时,我得到的结果看起来更合理:
那么为什么psrf
runjags 的报告如此之低呢?这是runjags的问题,还是我做错了什么?
我在 R 3.1.0 中使用当前版本的 runjags (1.2.1-0)。
编辑:在创建摘要期间,我收到了警告 - 很抱歉之前没有提到它们:
jags - JAGS 有更新日志吗?
JAGS 有变化的历史吗?我一直在查看 JAGS 主页和 sourceforge,但一无所获。
r - 有没有办法为调试目的转储 JAGS 节点值?
我从 JAGS 收到以下错误:
仅从这些信息中很难找出那里发生了什么。这是由这部分代码引起的:
Y[107]
打印出节点的父值(即节点)会非常有用pi[107,]
!这会给我非常明确的反馈,在哪里寻找错误!JAGS有这样的方法吗?
在 JAGS 手册的第 3.2 章中,JAGS 谈到了留下一些有用的jags.dumpN.R
文件:
如果模型编译和初始化正确,但在更新过程中发生错误,则模型的当前状态将转储到名为 jags.dumpN.R 的文件中,其中 N 是链号。然后,您应该将转储的数据加载到 R 中,以检查发生错误时每个链的状态。
但是,我不确定这是否适用于我的情况。所以我试图获取转储文件。由于我使用runjags::run.jags()
的是运行 JAGS,因此我尝试在调试模式下运行它:
不幸的是,目录中没有包含任何有用信息的转储或文件 runjagsfiles_3
。
有没有办法从 JAGS 中获取那些“无效的父值”?
我正在使用 JAGS 3.4.0。
PS:我故意不在这里提交我的完整模型代码。我的问题是关于 JAGS 的一般性问题,而不是为什么我的模型不起作用。
r - JAGS 会评估 dcat 的所有父节点,还是只评估需要的一个?
假设我们有以下语句:
让我们这么说吧Y[1] = 5
。jags 会评估所有pi[1,1:100]
节点,还是唯一需要的节点,即pi[1,5]
?
根据我的经验,似乎 JAGS 评估所有父节点的效率很低,因为在我摆脱 dcat 后,我的模型加速了 3 倍。我必须使用多个 for 循环来处理不同的结果Y[i]
。
现在我意识到,dcat
在 JAGS 中实际上不需要sum(pi[]) = 1
,并且dcat
它将归一化pi[]
以使其总和为 1。这意味着它必须评估所有节点。
这是非常可悲的。是否有任何智能等价物dcat
只会评估唯一需要的一个父节点?WinBUGS 和斯坦呢?
jags - JAGS:具有不可观察和可观察变量的多元正态?
我对 JAGS 有一个“简单”的问题,这让我抓狂。实质上,请考虑以下有效的示例:
这里,x2 是一个可观察变量(即数据),而 u 是一个潜在变量。在示例中,两者都是独立于两个不同的正态分布绘制的。但是,我希望它们(可能)依赖,即从一个多元正态分布中得出。所以我想做:
不幸的是,这不起作用,因为这种语法不正确。但是,尝试了许多不同的语法后,它们都不起作用。例如,
导致错误Node y[1,1:2] 与先前定义的节点重叠,这是显而易见的。那么我能做什么呢?请帮帮我,我要生气了...
更新:我发现我至少可以做到以下几点:(在 R 中:)
(在 JAGS 中:)
这可行(有点),但当然会降低效率,因为可观察变量(x2)被视为只是间接可观察的(通过 s)。