我现在正在使用包含两个组件的混合模型:正常和对数正态来拟合向量。我尝试使用 JAGS,代码如下:
model {
for(i in 1:N) {
y[i] <- latent[i,index[i]+1]
index[i] ~dbern(pi)
latent[i,1]~ dlnorm(mu1,tau1)
latent[i,2]~ dnorm(mu2,tau2)}
pi ~ dbeta(0.5,0.5)
mu1 ~ dnorm(0.4,0.000001)
tau1~ dgamma(0.001,0.001)
mu2 ~ dnorm(4,0.000001)
tau2~ dgamma(0.001,0.001)
}
但是,它不适用于错误消息“y[1] 是一个逻辑节点,无法观察到”。我也试过
y[i] <- pi*z1+(1-pi)*z2
z1 ~ dnorm(mu1,tau1)
z2 ~ dlnorm(mu2,tau2)
...
但它给出了同样的错误信息。看来我必须为 y[i] 分配一个分布。任何人都可以帮助克服这个问题吗?或解决这种混合模型的其他方法也将不胜感激!