# NOT RUN {
# The classic 8schools example from RStan
# https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started
schools_data <- list(
J = 8,
y = c(28, 8, -3, 7, -1, 1, 18, 12),
sigma = c(15, 10, 16, 11, 9, 11, 10, 18)
)
log_pdf <- function(params, p) {
mu <- params[1]
tau <- params[2]
eta <- params[3 : (3 + schools_data$J - 1)]
output <- (
sum(dnorm(eta, 0, 1, log = TRUE)) +
sum(dnorm(
schools_data$y,
mu + tau * eta,
schools_data$sigma,
log = TRUE
))
)
return(output)
}
x_start <- c(0, 0, rep(0, schools_data$J))
names(x_start) <- c(
'mu',
'tau',
paste0('eta', 1 : schools_data$J)
)
samples <- arms_gibbs(
250,
x_start,
log_pdf,
c(-1000, 0, rep(-1000, schools_data$J)),
1000,
metropolis = FALSE
)
print(colMeans(samples[51 : 250, ]))
# }
Run the code above in your browser using DataLab