Hi everyone!

I am new to STAN and got a problem with modeling a hierarchical model. Here is my setting: Z=(Z1,Z2,Z3,Z4) is a vector representing 4 states, each Zi \in {0,1}. That is, Z\sim multinomial(1,p), where p is a vector with length 4 and sum 1. W=(W1, W2) follows some joint continuous distribution. X=(X1,X2) is the random variable depending on state Z, that is, X1=(Z3+Z4)W1 and X1=(Z2+Z4)W2. Finally, the data Y1\sim Poisson(X1) and Y2\sim Poisson(X2). I attach my attempt code below. My questions: (1) How to specify the intermediate Z with only values 0,1 as parameters? (2) How to write out w1,w2 and z1-4 separately in transformed parameters? Thank you so much for your patients and help!

data {

int<lower=1> n;

vector<lower=0>[4] alpha;

real x[n,2];

}

parameters {

simplex[4] p;

int z[n,4];

}

transformed parameters {

vector[n] x1 = (z[3]+z[4])*w[1];

vector[n] x2 = (z[2]+z[4])*w[2];

}

model {

target += dirichlet_lpdf(p | alpha);

for (j in 1:n)

target += multinomial_lpmf(z[j,] | p);

// likelihood for w given some known parameters (eg, bivariate lognormal)

// likelihood for y given x (Poisson)

}