model{
            for (i in 1:n){
            y[i,1:5]~ dmnorm( mu[], T[,] )
     }
     index ~ dcat(Prob[])
     for (i in 1:H) {
     x_spike
 ~ dnorm(1,1.0E10) 
     x_slap  ~ dnorm(0.98,50)
     lambda <- Index[index,i]  
     x[i,1] <-  (1- lambda)* x_spike + lambda* x_slap
     }
     for (i in 1:P){
     mu <- inprod(A[i,],x[,])+ A0[i,1] 
     }  
     T[1:P,1:P] <- inverse(V[,])    
}
不是统计专业的,为这个程序折腾好久了,还是没解决,希望能得到大家的帮助。模型很简单,数据比较多,就不往上贴了。
模型其实是个线性高斯模型,已知y[] 估计 x[] ,y[]是5维的,x[]是7维的。但这个未知的X[],并不总是7维的,也就是说有时候其中的个别元素,如x[1],...等是基本上确定(已知的),所谓的确定,实际上就是先验信息很多,对这个元素基本上已经已知了,所以在程序里用了一个 方差非常小的先验分布来赋初值(x_spike ~ dnorm(1,1.0E10) ),相当于把这个值固定在1左右了。但实际中,我也不确定那个元素在1附件的,所以程序里加了一个随机变量, index,这个随机量服从catgalory distribution ( index ~ dcat(Prob[])), 随机的决定那个元素在1附近的很小区域内(x_spike ~ dnorm(1,1.0E10) ),剩下的分布在较广的区间内( x_slap  ~ dnorm(0.98,50)),这个其实就是所谓的Bayesian Model Averaging。(我感觉说的很乱啊,不知道大家冥明白我意思不?)
现在的问题是,我这个index应该在1~128之间等概率的取值(Prob[1:128] = 1/128),但结果过总是只有97,98和99这三个数,真是奇怪了,不知道为什么?问题出在什么地方?
