大家好,我这有一个关于如何用winbugs来构建多层贝叶斯模型的问题,是有关矩阵正态分布的构建的,该模型如下所示:
Yij=∑βik*Xjk+εij=xj’βi+εij
其中:
xj=(x1,x2,…xk)j’ j=1,2…J
βi=(β1,β2,…βk)i’ i=1,2…I
εij~N(0,δ2)
βi=Γ*Ζi+ζi
i=1,2…I
ζi~Nk(0,Σ)
Ζi=(z1,z2,…zm)i’
Γ为k﹡m 矩阵
Γ~Nk*m(w,W)(服从矩阵正态分布)也就是vec(Γ)~Nkm*1(vec(w),W)
Σ-1~Wishart(v,V)
目前我是这样建的:
model;
{
for( j in 1 : J ) {
for( i in 1 : I ) {
y[i , j] ~ dnorm(mu[i , j],tau)
}
}
for( j in 1 : J ) {
for( i in 1 : I ) {
mu[i , j] <- inprod(x[j , 1:4],beta[1:4 , i])
}
}
for( i in 1 : I ) {
beta[1:4 , i] ~ dmnorm(mu[1:4 , i],R[1:4 , 1:4])
}
tau ~ dgamma(0.001,0.001)
sigama <- 1 / sqrt(tau)
for( i in 1 : I ) {
mu[1:4 , i] <- inprod(gaba[1:4 , 1:3],z[1:3 , i])
}
R[1:4 , 1:4] ~ dwish(omega,4)
gaba[1:4 , 1:3]~ dmnorm(mean,pre)
}
这里面有个问题就是矩阵gaba[1:4,1:3]我在文中给它的先验分布是服从矩阵正态分布,可是没有相关的code,
很多资料中他们先将这个矩阵进行向量化算子,就是vec(gaba),然后再让他服从vec(gaba)~dmnorm(mean,pre),不知道这一步怎么处理,而且这边弄不好的话,下面的data load老是不对,
不知道哪位高手能帮我解决一下这个问题啊,谢谢啊,急求!


雷达卡


京公网安备 11010802022788号







