2016-11-15 65 views
0

編譯期間,我收到一個錯誤消息,說「多變量分佈必須有多個組件」,我無法獲得有關此錯誤的更多信息。任何人有任何想法如何解決這個問題,請分享。謝謝。「多變量分佈必須有多個組件」 - WinBUGS中的錯誤

model { 
     for(i in 1:n) 
     { for(j in 1:J) 
     {   log(mu[i,j]) <- beta1[j]*x1[i] + beta2[j]*x2[i] + b[i,j] 
      } 
    for(k in 1:J) { y[i,k]~ dpois(mu[i,1:J])  
     }} 
    # PRIORS 
    for (i in 1:n) { 
    for(k in 1:J) { 
    b[i,k]<- 1 
     }} 
     beta1[1]<- beta3[1,1] 
     beta1[2]<- beta3[2,2] 
     beta2[1]<- beta4[1,1] 
     beta2[2]<- beta4[2,2] 
     for (j in 1:J) {beta3[j,j]~ dmnorm(zero[], B[,]); 
     beta4[j,j]~ dmnorm(zero[], B[,]) } 
     for(i in 1:J) 
     { for (j in 1:J) 
      { B[i,j] <- 0.01*equals(i,j); 
     }} 
     for (i in 1:J) { zero[i] <- 0;} 
     } 
    #Data: 
    list(n=3, J=2) 
    #Data: 
     y[ ,1] x1[] x2[] y[,2] 
     0  9.91  8.34  1    
     3 10.48 10.14 79   
     0  10.31 9.42  40 

回答

0

你需要做這樣的事情:

for (j in 1:J) {beta3[j,(1:J)]~ dmnorm(zero[], B[,]); 
    beta4[j,(1:J)]~ dmnorm(zero[], B[,]) } 

這將創建一個2×2矩陣模型的係數。但是,您只在模型中使用beta3beta4的對角元素,這有點奇怪。

+0

非常感謝@M_Fidino。其實我只是在使用對角元素做錯了。 –