JAGS/BUGS 错误 - 可能涉及以下部分或全部节点的定向循环
Posted
技术标签:
【中文标题】JAGS/BUGS 错误 - 可能涉及以下部分或全部节点的定向循环【英文标题】:JAGS/BUGS error - Possible directed cycle involving some or all of the following nodes 【发布时间】:2020-04-11 02:40:18 【问题描述】:我的数据集是关于点球的,包含 106 行,特征是:
踢球方向 选手的脚劲 HomeAway 告诉我们玩家是在他的城镇比赛还是在客场比赛我想对此数据执行多项逻辑回归,以便根据其他两个数据建立一个踢球方向模型。我以 Aligator BUGS 为例:http://www.openbugs.net/Examples/Aligators.html
我的BUGS文件如下:
model
# PRIORS
alpha[1] <- 0; # zero contrast for baseline food
for (k in 2 : K)
alpha[k] ~ dnorm(0, 0.00001) # vague priors
# Loop around Foot:
for (k in 1 : K)
beta[1, k] <- 0
# corner-point contrast with first foot
for (i in 2 : I)
beta[i, 1] <- 0 ; # zero contrast for baseline foot
for (k in 2 : K)
beta[i, k] ~ dnorm(0, 0.00001) # vague priors
# Loop around Time:
for (k in 1 : K)
gamma[1, k] <- 0 # corner-point contrast with first Time
for (j in 2 : J)
gamma[j, 1] <- 0 ; # zero contrast for baseline Time
for ( k in 2 : K)
gamma[j, k] ~ dnorm(0, 0.00001) # vague priors
# LIKELIHOOD
for (i in 1 : I) # loop around Foot
for (j in 1 : J) # loop around Time
# Multinomial response
X[i,j,1 : K] ~ dmulti( p[i, j, 1 : K] , n[i, j] )
n[i, j] <- sum(X[i, j, ])
for (k in 1 : K) # loop around Kick_Direction
p[i, j, k] <- phi[i, j, k] / sum(phi[i, j, ])
log(phi[i ,j, k]) <- alpha[k] + beta[i, k] + gamma[j, k]
我使用 rjags 并出现以下错误:
Error in jags.model("kick_dir.bug", data, inits) : RUNTIME ERROR:
Possible directed cycle involving some or all
of the following nodes:
X[1,1,1:3]
X[1,2,1:3]
X[2,1,1:3]
X[2,2,1:3]
n[1,1]
n[1,2]
n[2,1]
n[2,2]
我做错了什么?
提前致谢
【问题讨论】:
【参考方案1】:我在dmulti
分发中遇到了类似的问题,因为按设计以这种方式编码似乎很自然。
问题出在这两行:
X[i,j,1 : K] ~ dmulti( p[i, j, 1 : K] , n[i, j] )
n[i, j] <- sum(X[i, j, ])
JAGS 知道相同的变量X
出现在表达式的LHS 和RHS 中,这在这个包中是被禁止的。
作为一种可能的解决方法,您可以将n[i, j]
作为数据 的一部分提供。
顺便说一句,STAN 中没有这样的问题,因为这些总和是自动计算的。
【讨论】:
以上是关于JAGS/BUGS 错误 - 可能涉及以下部分或全部节点的定向循环的主要内容,如果未能解决你的问题,请参考以下文章