Нижний и верхний пределы детерминированного узла в JAGS

Я пытаюсь усечь детерминированный узел 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)
    }
  }
}

Заранее спасибо!


person user3372046    schedule 03.03.2014    source источник


Ответы (2)


Вы должны иметь возможность использовать min и max для достижения этой цели. Например, чтобы ограничить theta[j] так, чтобы оно находилось между 0 и 1:

theta.t[j] <- max(0, min(1, exp(-alpha * retention.intervals[j]) + beta))
person jbaums    schedule 29.10.2014

В главе 7 руководства по JAGS указано, что невозможно усекать или подвергать цензуре детерминированные узлы. Вы можете выполнять усечение и цензуру только стохастических узлов.

Единственный способ, который у вас есть, это изменить свои приоры.

person Philippe    schedule 26.05.2014