2015-03-02 30 views
0

我在下面的代码中遇到了一个问题,在编译过程“多重定义节点xi1 [1,1]”时出现了问题,请大家帮我解决这个问题。 提前很多感谢节点xi1的多重定义[1,1]

model { 
for(i in 1:N){ 
#measurement equation model 
for(j in 1:P){y[i,j]~dnorm(mu[i,j],psi[j])I(thd[j,z[i,j]],thd[j,z[i,j]+1])} 
xi[i,1]<-mu[i,1]+lam[1]*mu[i,2]+lam[2]*mu[i,3]+lam[3]*mu[i,4]+lam[4]*mu[i,5]+lam[5]*mu[i,6] 
xi[i,2]<-mu[i,1]+lam[1]*mu[i,2]+lam[2]*mu[i,3]+lam[3]*mu[i,4]+lam[4]*mu[i,5]+lam[5]*mu[i,6]+xi[i,1] 
#structural equation model 
xi[i,1:2]~dmnorm(zero2[1:2],phi[1:2,1:2]) 
eta[i]~dnorm(nu[i],psd1) 
nu[i]<-gam[1]*xi[i,1] 
mu[i,1:6]~dnorm(0.8,4.0) 
}# end of i 
for(i in 1:2){zero2[i]<-0.0} 
#priors on loadings and coefficients 
for(i in 1:5){lam[i]~dnorm(0.8,4.0)} 
for(i in 1:1){gam[i]~dnorm(0.6,4.0)} 
#priors on precisions 
for(j in 1:P){ 
psi[j]~dgamma(10,8) 
sgm[j]<-1/psi[j]} 
psd~dgamma(10,8) 
sgd<-1/psd 
phi[1:2,1:2]~dwish(R[1:2,1:2], 30) 
phx[1:2,1:2]<-inverse(phi[1:2,1:2]) 
} #end of model 

回答

0

你有以下两行:

xi[i,1]<-mu[i,1]+lam[1]*mu[i,2]+lam[2]*mu[i,3]+lam[3]*mu[i,4]+lam[4]*mu[i,5]+lam[5]*mu[i,6] 
... 
xi[i,1:2]~dmnorm(zero2[1:2],phi[1:2,1:2]) 

因为这两者在我环路,您已经定义XI [1,1]两次:一次是作为一个确定性的数量和一次作为随机变量(数据?)。

+0

非常感谢您的回复,我现在应该做什么,如果我删除了xi [i,1:2]的第二个定义,错误将会是“期望的多元节点”,所以我不能删除它们中的任何一个。任何帮助,将不胜感激。 – thanoon 2015-03-04 02:02:39

+0

现在的错误是“期望多变量节点”,而不删除它们中的任何一个。 – thanoon 2015-03-04 02:19:50