if-statement - 用于在 JAGS 中定义分布的 if/else 语句

标签 if-statement truncation jags

在 JAGS 中,我想为参数 w[i] 定义泊松分布,如果另一个参数 e[i] 大于 0,它也会被截断(大于或等于 2)。

基本上我希望它代表:

w[i] ~ ifelse( e[i] > 0, dpois(mu) T(2,) , dpois(mu) )

我尝试通过调整响应其他人的帖子而给出的代码来使用 step 函数,该帖子要求类似的内容:Choosing Different Distributions based on if - else condition in WinBugs/JAGS

但这似乎不起作用?

谢谢

最佳答案

也许是这样的?

pois1 ~ dpois(mu) T(2,)
pois2 ~ dpois(mu)
for(i in 1:N){
indicator1[i] <- ifelse(e[i] > 0, 1, 0)
indicator2[i] <- ifelse(e[i] <= 0, 1, 0)
w[i] <- (pois1 * indicator1[i]) + (pois2 * indicator2[i])
}

e[i]大于 1 w[i]取值来自 pois1 .如果不是w[i]取值来自 pois2 .

编辑:或者,您可以只定义一个指标变量并像这样进行操作。
pois1 ~ dpois(mu) T(2,)
pois2 ~ dpois(mu)
for(i in 1:N){
indicator[i] <- ifelse(e[i] > 0, 1, 0)
w[i] <- (pois1 * indicator[i]) + (pois2 * (1 - indicator[i]))
}

关于if-statement - 用于在 JAGS 中定义分布的 if/else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46730232/

相关文章:

php - if($val) vs. if($val != "") vs. if(!empty($val)) —— 哪个?

python - 树生长算法

java - com.mysql.jdbc.MysqlDataTruncation : Data truncation: Truncated incorrect DOUBLE value: ',3'

java - Spring 端点为较大的 http 请求接收截断的正文

javascript - 在 Javascript 中 chop 字符串(有约束)

r - 使用 JAGS 的贝叶斯广义泊松零一技巧

r - 在 rjags 中使用 coda 样本进行诊断

php - SQL - 如果存在 - 选择 A - 否则 - 选择 B

r - 将 WinBUGS 模型转换为 JAGS(使用 R)

javascript - Switch 语句实现未提供预期行为