1

我正在尝试截断确定性节点 ,theta.t以确保其值介于 0 和 1 之间。我试图通过T(0,1)在第 6 行末尾使用来解决这个问题,但这不起作用,而且我不是确定如何使用~ dinterval()来解决这个特定的问题。

我正在使用 JAGS 3.3.0 和 R 3.0.2。

这是我的代码:

model {
  # PRIORS
  alpha ~ dunif(0,1)
  beta ~ dunif(0,1)
  # Deterministic Node
  for(j in 1:n.intervals) {
    theta.t[j] <- exp(-alpha * retention.intervals[j]) + beta
  }
  # DATA
  for(i in 1:n.participants) {
    for(j in 1:n.intervals) {
      k[i, j] ~ dbin(theta.t[j], 18)
    }
  }
}

提前致谢!

4

2 回答 2

1

您应该能够使用minmax实现这一点。例如,要限制theta[j]它位于 0 和 1 之间:

theta.t[j] <- max(0, min(1, exp(-alpha * retention.intervals[j]) + beta))
于 2014-10-29T08:46:44.793 回答
0

JAGS 手册的第 7 章指出不可能截断或审查确定性节点。您只能对随机节点执行截断和审查。

你唯一的办法就是改变你的先验。

于 2014-05-26T14:56:15.720 回答