2015-05-30 54 views
0

我想在Winbugs中定義本地級別模型。該模型在語法上是正確的。但是,當我跑,我得到這個錯誤:WinBUGS:節點的多個定義

model { 

     for (i in 1:T) 
      {epsilon[i]~dnorm(0,h) 
       u[i]~dnorm(0,eta_h)}  

     a[1]<-a1  
     for (j in 2:T) 
      {a[j]<-a[j-1]+u[j]} 

     for (k in 1:T) 
      {y[k]<-a[k]+epsilon[k]} 

    h~dgamma(0.0001,0.0001) 
    eta~dgamma(0.0001,0.0005) 
    eta_h<-eta*h 

    } 

    data list(T=10, a1=0.001) 
    y[] 
    -0.7224571 
    -0.397027213 
    3.1808741 
    1.952424816 
    4.921476096 
    5.258244747 
    4.383846014 
    6.055572232 
    5.474320734 
    0.703784047 
    END 

能否請你告訴我,爲什麼,以及如何解決這個「節點Y [1]多重定義」?我仔細研究了這個錯誤,但每個都有自己的具體情況,並且沒有一個通用的解決方案或解釋爲什麼會出現這種情況。

回答

1

有一個通用的解決方案,即「你至少定義了y [1]兩次。」

在這種情況下,你在你的數據,並在該行曾將它定義

y[k] <- ...