data{ int N; int y[N]; real mu; real tau; } parameters{ reallambda; } model{ target+=poisson_lpmf(y|lambda); target+=lognormal_lpdf(lambda|mu, tau); //target+=normal_lpdf(log(lambda)|mu, tau); // equivalent for lognormal //target+=-log(lambda); } generated quantities{ vector[N] log_lik; for(n in 1:N){ log_lik[n] = poisson_lpmf(y[n]|lambda); } }