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 错误 - 可能涉及以下部分或全部节点的定向循环的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 SQL 导入 MongoDB。全有或全无

检查字符串在 Java 中是不是有小数部分:涉及语言环境

无法执行此查询,因为它可能涉及数据过滤

office组件导出excel问题

您好。我用gray2ind函数转换为伪彩色图像然后用imshow显示,为啥图像全白或全黑呢?

如果我使用裁剪对象或全帧来训练级联分类器,有啥区别吗?