data { int N; // number of data points vector[N] z; // observations } parameters { real mu; simplex[2] theta; } model { vector[2] log_theta = log(theta); mu ~ normal(0,5); for(n in 1:N){ vector[2] lps = log_theta; lps[1] += normal_lpdf(z[n] | 0, 1) - normal_lccdf(1.96 | 0, 1); lps[2] += normal_lpdf(z[n] | mu, 1) - normal_lccdf(1.96 | mu, 1); target += log_sum_exp(lps); } }