## ---- eval = FALSE------------------------------------------------------------ # library(rjags) # # # create JAGS model # mf <- " # model { # for (i in 1:10) # { # y[i] ~ dnorm(mu, 0.01); # } # mu ~ dnorm(0, 0.01) # } # " # # data <- list(y = rnorm(10)) # # jm <- rjags::jags.model( # textConnection(mf), # data = data, # n.chains = 3) # # jags_out <- rjags::coda.samples( # jm, # variable.names = 'mu', # n.iter = 500) ## ----------------------------------------------------------------------------- library(MCMCvis) ## ---- eval = FALSE------------------------------------------------------------ # MCMCsummary(jags_out, round = 2) ## ---- eval = FALSE------------------------------------------------------------ # ## mean sd 2.5% 50% 97.5% Rhat n.eff # ## mu -0.28 2.97 -6.13 -0.14 5.22 1 1397 ## ---- eval = FALSE------------------------------------------------------------ # library(nimble) # # # create NIMBLE model # mf2 <- nimbleCode({ # for (i in 1:10) { # y[i] ~ dnorm(mu, 0.01); # } # mu ~ dnorm(0, 0.01) # }) # # nimble_out <- nimbleMCMC( # code = mf2, # constants = list(N = 10), # data = data, # inits = list(mu = 0), # nchains = 4, # niter = 500) ## ---- eval = FALSE------------------------------------------------------------ # MCMCsummary(nimble_out, round = 2) ## ---- eval = FALSE------------------------------------------------------------ # ## mean sd 2.5% 50% 97.5% Rhat n.eff # ## mu -0.03 2.99 -5.76 -0.1 5.88 1 2000 ## ---- eval = FALSE------------------------------------------------------------ # library(rstan) # # # create Stan model # sm <- " # data { # real y[10]; # } # parameters { # real mu; # } # model { # for (i in 1:10) { # y[i] ~ normal(mu, 10); # } # mu ~ normal(0, 10); # } # " # # stan_out <- stan( # model_code = sm, # data = data, # iter = 500) ## ---- eval = FALSE------------------------------------------------------------ # MCMCsummary(stan_out, round = 2) ## ---- eval = FALSE------------------------------------------------------------ # ## mean sd 2.5% 50% 97.5% Rhat n.eff # ## mu -0.51 2.82 -6.06 -0.36 5.07 1.01 414 # ## lp__ -0.45 0.61 -2.27 -0.23 -0.01 1.00 508 ## ---- message = FALSE--------------------------------------------------------- MCMCsummary(MCMC_data) ## ---- message = FALSE--------------------------------------------------------- MCMCsummary(MCMC_data, round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha', round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha[1]', ISB = FALSE, exact = TRUE, round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha\\[1\\]', ISB = FALSE, exact = FALSE, round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'all', excl = 'alpha', ISB = FALSE, exact = FALSE, round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha', Rhat = TRUE, n.eff = TRUE, round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha', Rhat = TRUE, n.eff = TRUE, probs = c(0.1, 0.5, 0.9), round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha', Rhat = TRUE, n.eff = TRUE, HPD = TRUE, hpd_prob = 0.8, round = 2) ## ----------------------------------------------------------------------------- MCMCsummary(MCMC_data, params = 'alpha', Rhat = TRUE, n.eff = TRUE, round = 2, func = function(x) ecdf(x)(-10), func_name = "ecdf-10", pg0 = TRUE) ## ----------------------------------------------------------------------------- MCMCpstr(MCMC_data, params = 'alpha', func = mean, type = 'summary') ## ----------------------------------------------------------------------------- MCMCpstr(MCMC_data, func = function(x) quantile(x, probs = c(0.01, 0.99))) ## ----------------------------------------------------------------------------- ex <- MCMCpstr(MCMC_data, type = 'chains') dim(ex$alpha) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, pdf = FALSE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCtrace(MCMC_data, params = 'beta', type = 'density', ind = TRUE, pdf = FALSE) ## ---- eval = FALSE, fig.align = 'center'-------------------------------------- # MCMCtrace(MCMC_data, # pdf = TRUE, # open_pdf = FALSE, # filename = 'MYpdf', # wd = 'DIRECTORY_HERE') ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, iter = 100, ind = TRUE, pdf = FALSE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- # note that the same prior used for all parameters # the following prior is equivalent to dnorm(0, 0.001) in JAGS PR <- rnorm(15000, 0, 32) MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, priors = PR, pdf = FALSE, Rhat = TRUE, n.eff = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, priors = PR, pdf = FALSE, post_zm = FALSE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- PPO <- MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, priors = PR, plot = FALSE, PPO_out = TRUE) PPO ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, priors = PR, pdf = FALSE, Rhat = TRUE, n.eff = TRUE, xlab_tr = 'This is the x for trace', ylab_tr = 'This is the y for trace', main_den = 'Custom density title', lwd_den = 3, lty_pr = 2, col_pr = 'green', sz_txt = 1.3, sz_ax = 2, sz_ax_txt = 1.2, sz_tick_txt = 1.2, sz_main_txt = 1.3) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- # generating values for each parameter used to simulate data GV <- c(-10, -5.5, -15) MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, gvals = GV, pdf = FALSE) ## ----------------------------------------------------------------------------- ex <- MCMCchains(MCMC_data, params = 'beta') ## ----------------------------------------------------------------------------- apply(ex, 2, mean) ## ----------------------------------------------------------------------------- ex2 <- MCMCchains(MCMC_data, params = 'beta', mcmc.list = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = 'beta', ci = c(50, 90)) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = 'beta', ci = c(50, 80), HPD = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = 'beta', ref_ovl = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = 'beta', rank = TRUE, xlab = 'PARAMETER ESTIMATE', guide_lines = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = 'beta', rank = TRUE, horiz = FALSE, ylab = 'PARAMETER ESTIMATE') ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(object = MCMC_data, object2 = MCMC_data2, params = 'beta', offset = 0.1, ref_ovl = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = 'beta', xlim = c(-60, 40), xlab = 'My x-axis label', main = 'MCMCvis plot', labels = c('First param', 'Second param', 'Third param', 'Fourth param', 'Fifth param', 'Sixth param'), col = c('red', 'blue', 'green', 'purple', 'orange', 'black'), sz_labels = 1.5, sz_med = 2, sz_thick = 7, sz_thin = 3, sz_ax = 4, sz_main_txt = 2) ## ----------------------------------------------------------------------------- # note that the same prior used for all parameters # the following prior is equivalent to dnorm(0, 0.001) in JAGS PR <- rnorm(15000, 0, 32) PPO <- MCMCtrace(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, priors = PR, plot = FALSE, PPO_out = TRUE) ## ---- fig.width = 7, fig.height = 5, fig.align = 'center'--------------------- MCMCplot(MCMC_data, params = c('beta[1]', 'beta[2]', 'beta[3]'), ISB = FALSE, exact = TRUE, xlim = c(-60, 35)) # each parameter is a y-unit of 1 for (i in 1:NROW(PPO)) { text(x = 10, y = NROW(PPO) - i + 1, paste0('PPO: ', PPO[i,2], '%'), pos = 4, col = 'red') } ## ---- eval = FALSE------------------------------------------------------------ # MCMCdiag(model_fit, # round = 3, # file_name = 'model-summary-YYYY-MM-DD', # dir = 'Results', # mkdir = 'model-YYYY-MM-DD', # add_field = '1.0', # add_field_names = 'Data version', # save_obj = TRUE, # obj_name = 'model-fit-YYYY-MM-DD', # add_obj = list(DATA, sessionInfo()), # add_obj_names = c('model-data-YYYY-MM-DD', 'session-info-YYYY-MM-DD'), # cp_file = c('model.stan', 'fit-model.R'), # cp_file_names = c('model-YYYY-MM-DD.stan, fit-model-YYYY-MM-DD.R')) #