// student_grade_model.stan data { int n; // number of students int p; // number of tests array[n, p] int X; // student test grades real tau; real a; real b; } parameters { array[n] real z; real mu; real sigma_sq; } transformed parameters { array[n] real theta; real sigma; theta = inv_logit(z); sigma = sqrt(sigma_sq); } model { sigma_sq ~ inv_gamma(a,b); mu ~ normal(0, sigma * tau); z ~ normal(mu, sigma); for (i in 1:n) X[i] ~ binomial(100,theta[i]); }