Questions tagged «jags»

“ JAGS只是另一个Gibbs采样器。它是使用马尔可夫链蒙特卡洛(MCMC)模拟分析贝叶斯层次模型的程序,与BUGS完全不同。” (http://mcmc-jags.sourceforge.net/)

4
OpenBugs与JAGS
我将尝试使用BUGS风格的环境来估计贝叶斯模型。在OpenBugs或JAGS之间进行选择时,有什么重要的优点要考虑?在可预见的将来,有可能取代另一个吗? 我将在R中使用所选的Gibbs Sampler。我还没有特定的应用程序,但是我正在决定安装和学习哪个。
41 r  software  bugs  jags  gibbs 

1
BUGS和R中的参数化对于哪些分布不同?
我发现一些BUGS和R具有不同参数化的分布:正态,对数正态和Weibull。 对于这些中的每一个,我都收集到R所使用的第二个参数需要在BUGS(在我的情况下为JAGS)中使用之前需要进行逆变换(1 /参数)。 有人知道当前存在的这些转换的完整列表吗? 我能找到的最接近的结果是将JAGS 2.2.0用户手册的表7中的分布与etc的结果?rnorm以及一些概率文本进行比较。这种方法似乎需要分别从pdf推导转换。 如果执行此任务,我希望避免执行此任务(以及可能的错误),否则,请从此处开始列表。 更新资料 基于Ben的建议,我编写了以下函数,将参数的数据帧从R转换为BUGS参数化。 ##' convert R parameterizations to BUGS paramaterizations ##' ##' R and BUGS have different parameterizations for some distributions. ##' This function transforms the distributions from R defaults to BUGS ##' defaults. BUGS is an implementation of the BUGS language, and these …

2
当平均方差受到关注时,可以/应该将哪些先验分布用于分层贝叶斯模型中的方差?
在他被广泛引用的论文中,层次模型中方差参数的先验分布 (到目前为止,在Google学术搜索中已有916次引用)Gelman提出,对于贝叶斯分层模型,方差的良好非信息性先验分布是均匀分布和Half t分布。如果我理解正确的话,那么当主要关注位置参数(例如均值)时,这将很好地工作。有时,方差参数是主要关注的问题,例如,当分析来自计时任务的人的响应数据时,意味着计时的可变性通常是关注的度量。在那些情况下,我不清楚如何用例如均匀分布的分层方法对可变性进行建模,因为我在分析后想获得参与者水平和小组水平的平均方差的可信度。 然后我的问题是:在主要考虑数据方差的情况下,建立分层贝叶斯模型时,建议采用哪种分布? 我知道伽马分布可以重新设定为均值和标准差。例如,下面的层次模型来自Kruschke的书《做贝叶斯数据分析》。但是,盖尔曼(Gelman)在他的文章中概述了伽玛分布的一些问题,我很感谢提出替代方案的建议,最好是不难在BUGS / JAGS中工作的替代方案。

2
Stan中没有定义先验的参数
我刚刚开始学习使用Stan和rstan。除非一直对JAGS / BUGS的工作方式感到困惑,否则我一直认为您必须为要从中提取模型的每个参数定义某种先验分布。似乎您不必根据Stan的文档在Stan中执行此操作。这是他们在此处提供的示例模型。 data { int<lower=0> J; // number of schools real y[J]; // estimated treatment effects real<lower=0> sigma[J]; // s.e. of effect estimates } parameters { real theta[J]; real mu; real<lower=0> tau; } model { theta ~ normal(mu, tau); y ~ normal(theta, sigma); } 既mu没有tau定义先验也没有。在将我的一些JAGS模型转换为Stan时,我发现如果我对许多参数(大多数)具有未定义的先验值,它们将起作用。 问题是,当我有没有定义的先验的参数时,我不理解Stan在做什么。是否默认为统一分布?这是HMC的特殊属性之一,它不需要为每个参数都定义一个先验吗?

3
贝叶斯变量选择-真的有效吗?
我以为我可能会喜欢上一些不错的博客文章和其中的链接论文,以选择一些贝叶斯变量来玩。我用rjags(我是个菜鸟)编写了一个程序,并获取了埃克森美孚的价格数据,以及一些不太可能解释其收益的信息(例如,钯金价格)以及其他应该高度相关的信息(例如SP500) )。 运行lm(),我们看到有强有力的证据证明模型过度参数化,但是绝对应该排除钯: Call: lm(formula = Exxon ~ 0 + SP + Palladium + Russell + OilETF + EnergyStks, data = chkr) Residuals: Min 1Q Median 3Q Max -1.663e-03 -4.419e-04 3.099e-05 3.991e-04 1.677e-03 Coefficients: Estimate Std. Error t value Pr(>|t|) SP 0.51913 0.19772 2.626 0.010588 * Palladium 0.01620 0.03744 0.433 …

1
JAGS中的正则贝叶斯逻辑回归
有许多数学方面的文章描述了贝叶斯套索,但是我要测试可以使用的正确JAGS代码。 有人可以发布实现正则逻辑回归的示例BUGS / JAGS代码吗?任何方案(L1,L2,Elasticnet)都不错,但是Lasso是首选。我也想知道是否有有趣的替代实施策略。

2
MCMC收敛到单个值?
我正在尝试使用jags和rjags包来适应分层模型。我的结果变量是y,这是一系列bernoulli试验。我有38名人受试者被分为两类执行:P和基于M.在我的分析,每个扬声器具有成功的在P类的概率和成功的在M类的概率θ p × θ 米。我也假设存在的P和M一些社区层面超参数:μ p和μ 米。θpθp\theta_pθp× θ米θp×θm\theta_p\times\theta_mμpμp\mu_pμmμm\mu_m 因此,对于每个扬声器: 和θ 米〜b Ë 吨一个(μ 米 × κ 米,(1 - μ 米)× κ 米)其中κ p和κ 米θp∼beta(μp×κp,(1−μp)×κp)θp∼beta(μp×κp,(1−μp)×κp)\theta_p \sim beta(\mu_p\times\kappa_p, (1-\mu_p)\times\kappa_p)θm∼beta(μm×κm,(1−μm)×κm)θm∼beta(μm×κm,(1−μm)×κm)\theta_m \sim beta(\mu_m\times\kappa_m, (1-\mu_m)\times\kappa_m)κpκp\kappa_pκmκm\kappa_m控制如何达到峰值的分布是围绕和μ 米。μpμp\mu_pμmμm\mu_m 也,μ 米〜b Ë 吨一(甲米,乙米)。μp∼beta(Ap,Bp)μp∼beta(Ap,Bp)\mu_p \sim beta(A_p, B_p)μm∼beta(Am,Bm)μm∼beta(Am,Bm)\mu_m \sim beta(A_m, B_m) 这是我的锯齿模型: model{ ## y = N bernoulli trials ## …

1
如何使用Rjags生成预测?
我已经使用rjags在以JAGS语言指定的模型上运行MCMC。是否有一个很好的方法可以提取该模型并对其进行预测(使用我的参数的后验分布)?我可以在R中重新指定模型,并插入参数后代的模式;我只是想知道是否有较少的冗余方法。 我相信http://sourceforge.net/p/mcmc-jags/discussion/610037/thread/0ecab41c在问同样的问题。
12 r  jags 

2
如何在JAGS中设置零膨胀泊松?
我正在尝试在R和JAGS中建立零膨胀泊松模型。我是JAGS的新手,我需要一些有关该操作的指南。 我一直在尝试以下方法,其中y [i]是观察到的变量 model { for (i in 1:I) { y.null[i] <- 0 y.pois[i] ~ dpois(mu[i]) pro[i] <- ilogit(theta[i]) x[i] ~ dbern(pro[i]) y[i] <- step(2*x[i]-1)*y.pois[i] + (1-step(2*x[i]-1))*y.null[i] log(mu[i]) <- bla + bla +bla + .... theta[i] <- bla + bla + bla + .... } } 但是,这不起作用,因为您不能在观察到的变量上使用<-。 任何想法如何更改/解决此问题?还有其他方法可以在JAGS中建立零膨胀泊松模型吗?


1
在MCMC中管理高自相关
我正在为使用R和JAGS的元分析建立一个相当复杂的分层贝叶斯模型。简化了一下,该模型的两个关键级别具有 其中是的第观察研究终点(在这种情况下,是转基因作物与非转基因作物的产量),是研究的影响, s是各种研究水平变量的影响(通过函数族和索引完成了研究,作物种类,研究方法等)ÿ我Ĵ= αĴ+ ϵ一世ÿ一世Ĵ=αĴ+ϵ一世 y_{ij} = \alpha_j + \epsilon_i αĴ= ∑Hγh (j )+ ϵĴαĴ=∑HγH(Ĵ)+ϵĴ\alpha_j = \sum_h \gamma_{h(j)} + \epsilon_jÿ我Ĵÿ一世Ĵy_{ij}一世一世iĴĴjαĴαĴ\alpha_jĴĴjγγ\gammaHHhϵϵ\epsilons是错误术语。请注意,不是虚拟变量的系数。相反,对于不同的研究水平值,存在不同的变量。例如,有为发展中国家和发达国家。 γγ\gammaγγ\gammaγde v e l o p 我Ñ 克γdËvË升Øp一世ñG\gamma_{developing}γdÈ v Ë 升ö p ë dγdËvË升ØpËd\gamma_{developed} 我主要对估算的值感兴趣。这意味着从模型中删除研究级别的变量不是一个好的选择。 γγ\gamma 一些研究水平变量之间具有高度相关性,我认为这在我的MCMC链中产生了很大的自相关性。此诊断图说明了链轨迹(左)和所得的自相关(右): 自相关的结果是,我从4个每10,000个样本的链中获得了60-120的有效样本量。 我有两个问题,一个是客观的,另一个是主观的。 除了细化,添加更多链和使采样器运行更长时间之外,我还可以使用哪些技术来管理此自相关问题?“管理”是指“在合理的时间内得出合理的估计”。在计算能力方面,我正在MacBook Pro上运行这些模型。 自相关程度有多严重?此处和John Kruschke博客上的讨论都表明,如果我们将模型运行足够长的时间,“笨拙的自相关可能已经全部消除了”(Kruschke),因此这并不是什么大问题。 这是产生上面的图的模型的JAGS代码,以防万一有人有兴趣浏览细节的情况: model { for (i in 1:n) …


2
多重比较的层次模型-多重结果上下文
我刚刚(重新)阅读了格尔曼的《为什么我们(通常)不必担心多重比较》。特别是 “多重结果和其他挑战”部分提到在不同时间/条件下同一个人/单位有多个相关度量的情况下使用分层模型。它似乎具有许多理想的特性。 我了解这不一定是贝叶斯方法。有人可以告诉我如何使用rjags和/或lmer(常规JAGS和BUGS以及其他混合模型库,例如MCMCglmm)也可以正确地构建多变量多级模型,以便我可以进行比较和比较。对比结果?我想要模型的情况类型反映在下面的玩具数据中(多变量,重复测量): set.seed(69) id <- factor(rep(1:20, 2)) # subject identifier dv1 <- c(rnorm(20), rnorm(20, 0.8, 0.3)) # dependent variable 1 data for 2 conditions dv2 <- c(rnorm(20), rnorm(20, 0.3, 0.6)) dv3 <- c(rnorm(20), rnorm(20, -0.3, 0.8)) dv4 <- c(rnorm(20), rnorm(20, 0.2, 1 )) dv5 <- c(rnorm(20), rnorm(20, 0.5, 4 …

2
如何使用BUGS / JAGS / STAN为比例建模?
我正在尝试建立一个模型,其中回应是一个比例(实际上是政党在选区中获得的选票份额)。它的分布不正常,因此我决定使用beta分布对其进行建模。我也有几个预测指标。 但是,我不知道如何用BUGS / JAGS / STAN编写它(JAGS是我最好的选择,但这并不重要)。我的问题是我通过预测变量对参数求和,但是该怎么办呢? 代码将是这样的(使用JAGS语法),但是我不知道如何“链接” y_hat和y参数。 for (i in 1:n) { y[i] ~ dbeta(alpha, beta) y_hat[i] <- a + b * x[i] } (y_hat只是参数和预测变量的乘积,因此是确定性关系。a并且b是我试图估计的系数,x作为预测变量)。 感谢您的建议!

2
JAGS中的审查/截断
我有一个关于如何在JAGS中解决审查问题的问题。 我观察到X值存在测量误差的双变量混合法线。我想对观察到的检查值的真正基础“手段”建模。 ⌈ X牛逼[R ü è+ ε ⌉ = Xø b 小号Ë - [R v ë d ε 〜Ñ(0 ,s ^ d= .5 )⌈XŤ[RüË+ϵ⌉=XØbsË[RvËd ϵ〜ñ(0,sd=.5)\begin{align*} \lceil x_{true}+\epsilon \rceil = x_{observed} \ \epsilon \sim N(0,sd=.5) \end{align*} 这是我现在所拥有的: for (i in 1:n){ x[i,1:2]~dmnorm(mu[z[i],1:2], tau[z[i],1:2,1:2]) z[i]~dcat(prob[ ]) } Y也有测量误差。我想做的是这样的: for (i in 1:n){ …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.