/********************************************************************** * one-way ANOVA (random effect, homogeneous variance) * Peng Zeng @ Auburn University * 2025-09-15 * * model: * y[i, j] ~ normal(theta[i], sigma) * theta[i] ~ normal(mu, tau) * prior: * sigma^2 ~ scaled inverse chi-square(sigma_df, sigma_scale) * mu ~ normal(mu_mean, mu_sd) * tau^2 ~ scaled inverse chi-square(tau_df, tau_scale) **********************************************************************/ data { int n; // number of observations int m; // number of groups real y[n]; // response int ID[n]; // ID in {1, ..., m} real mu_mean; real mu_sd; real sigma_df; real sigma_scale; real tau_df; real tau_scale; } parameters { real theta[m]; // group mean real mu; // mean of group means real tau; // std dev of group means real sigma; // within-group standard deviation } model { sigma^2 ~ scaled_inv_chi_square(sigma_df, sigma_scale); tau^2 ~ scaled_inv_chi_square(tau_df, tau_scale); mu ~ normal(mu_mean, mu_sd); theta ~ normal(mu, tau); for(i in 1:n) { y[i] ~ normal(theta[ID[i]], sigma); } } /********************************************************************** * THE END **********************************************************************/