1

我正在尝试从 1 到 5000 的分类分布中采样两个参数(先验),theta[1] 和 theta[2],要求 theta1 < theta2。

我已经尝试过(除其他外):

theta[1] ~ dcat(p1[])
p1[1:n] <- 1/n 


theta[2] ~ dcat(p2[])
pi2[1:theta[1]] <- 0 
pi2[sum(theta[1],1):n] <- 1/sum(n, -pi1) 

n = 5000,以便从从 theta1 到 n 的分类分布中采样 theta2。

错误是:未知变量 theta[1]。

任何帮助,将不胜感激。

4

1 回答 1

0

如果在这个带有 的分类变量中n=5000,唯一的要求是theta1< theta2,您可以使用该order()函数:

theta.star[1] ~ dcat(p1[])
theta.star[2] ~ dcat(p1[])
theta <- order(theta.star)

order()函数是一种在 JAGS 中施加顺序约束的方法。

于 2020-09-01T12:25:32.920 回答