gpt4 book ai didi

winbugs - 节点winbugs的多重定义

转载 作者:行者123 更新时间:2023-12-02 01:49:04 24 4
gpt4 key购买 nike

我在 winbugs 中对这段代码有一些问题。该模型在本质上是正确的并且数据已加载,但是当我编译时,软件输出是“节点 Z 的多重定义”。我不知道如何解决问题。

这是模型:

#BUGS Model
model {
for (i in 1:n){
for (j in 1:p){
Y[i , j] ~ dcat ( prob [i , j , 1: M[j]])
B <- sum(alpha[j])
}
theta [i] ~ dnorm (0.0 , 1.0)
}
for (i in 1:n){
for (j in 1:p){
for (k in 1:M[j]){
Z <- sum(delta [k ])
eta [i , j , k] <- 1.7* alpha [j] * (B * (theta [i] - beta [j] ) + Z)
exp.eta[i , j , k] <- exp( eta[i , j , k])
psum[ i , j , k] <- sum(eta[i , j , 1:k])
prob[i , j , k] <- exp.eta[i , j , k] / psum[i , j , 1:M[j]]
}
}
}
for (j in 1:p){
alpha [j] ~ dnorm (0 , pr.alpha) I(0 , )
for (k in 2:M[j]){
delta [k] ~ dnorm (0.0 , 1.0)
}
for (k in 1:M[j]){
beta [j] ~ dnorm (0 , pr.beta )
}
}
delta [1] <- 0.0
pr.alpha <- pow(1 , -2)
pr.beta <- pow(1, -2)
}

#data
list(n=10, p=8)

M[] M[] M[] M[] M[] M[] M[] M[]
2 2 4 2 2 3 4 2
2 1 1 2 1 2 2 3
1 2 1 3 1 1 4 4
2 1 1 2 1 1 2 4
3 4 4 3 3 3 1 1
4 3 4 4 4 4 4 4
1 1 2 2 1 2 4 4
2 1 1 3 1 4 2 4
3 4 1 1 1 2 2 2
2 2 2 1 4 4 4 4
END

感谢所有会回答的人。

最佳答案

您的问题在于在 BUGS 循环中多次定义某些节点。例如 B在第一个 i 中定义了 np 次和 j环形。 BUGS 不允许这样做。您不能覆盖节点值。你需要要么

1) 给 B 添加一些索引, Z , delta[k]beta[j]使 BUGS 能够在循环期间将模拟值存储在节点的元素中。例如替换 BB[i,j]ZZ[i,j,k]
或者

2) 搬家B , Z , delta[k]beta[j]到只覆盖他们已经拥有的索引的循环。即 B , Z不在循环中,因为它们没有索引,delta[k]仅在 for(k in 1:...)环形。

该决定取决于您对模型的想法以及您想要存储的参数。

关于winbugs - 节点winbugs的多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com