随机节点二项式混合模型的多重定义

时间:2015-03-12 18:48:04

标签: winbugs

我知道这是一个之前被问过的问题,我已经查看了答案,但它们似乎不适用于我的问题。我写了一个二项式混合模型,其中包括在WinBUGS中使用协变量。该模型在语法上是正确的,数据加载正常,但我得到错误'节点'lambda [1]'的多个定义。 Lambda没有在数据中定义,它的下标提供了每年有数据的估计。

我的代码如下:

model {

#Priors 

for (k in 1:7) {
lambda[k]~dnorm(0,0.01)
p[k]~dunif(0,1)
}

alpha0~dunif(-10,10)
alpha1~dunif(-10,10)
beta0~dunif(-10,10)
beta1~dunif(-10,10)

#Likelihood
#Ecological model for true abundance (process model)
for (k in 1:7) {                                                #Loop over years
    lambda[k]<-exp(alpha.lam[k])
    for (i in 1:R) {                                        #Loop over R sites
        N[i,k]~dpois(lambda[k])                  #Abundance
        log(lambda[k])<-alpha0+alpha1*well[i,k]

        #Observation model for replicated counts
        for (j in 1:T) {                #Loop over repeated counts within a year
            y[i,j,k] ~dbin(p[k],N[i,k])                 #Detection
            p[k]<-exp(lp[k])/(1+exp(lp[k]))
            lp[k]<-beta0+beta1*well[i,k]

            #Assess model fit using Chi-squared discrepancy
            #Compute fit statistic "E" for observed data
            eval[i,j,k]<-p[k]*N[i,k]                    #Expected values
            E[i,j,k]<-pow((y[i,j,k]-eval[i,j,k]),2)/(eval[i,j,k]+0.5)

            #Generate replicate data and compute fit stats for them
            y.new[i,j,k]~dbin(p[k],N[i,k])
            E.new[i,j,k]<-pow((y.new[i,j,k]-eval[i,j,k]),2)/(eval[i,j,k]+0.5)

            }#j

        }#i

}#k

#Derived and other quantities

for(k in 1:7) {

totalN[k]<-sum(N[,k])                   #Total pop. size across all sites
mean.abundance[k]<-exp(alpha.lam[k])

}


fit<-sum(E[,,])
fit.new<-sum(E.new[,,])
}

#Data
list(R=669,T=3)

任何人都可以告诉我为什么我会收到此错误。提前谢谢了。

0 个答案:

没有答案
相关问题