knitr::opts_chunk$set(echo = TRUE)
library(mcmsupply) library(dplyr) set.seed(1209)
cleaned_natdata <- get_data(national=TRUE)
pkg_data <- get_modelinputs(startyear=1990, endyear=2025.5, nsegments=12, raw_data = cleaned_natdata)
For speed and illustration purposes, we will use 10 iterations, with no burn in period and taking every third sample. This leaves only 9 samples. We DO NOT recommend this setting. The recommended settings are 80000 iterations, with 10000 burn in period and taking every 35th sample. This is commented out and listed underneath the below R code.
mod <- run_jags_model(jagsdata = pkg_data, jagsparams = NULL, n_iter = 5, n_burnin = 1, n_thin = 1) # n_iter = 80000, n_burnin = 10000, n_thin = 35)
We use this to evaluate the convergence of the model parameters. We should expect to see R-hat values of approximately 1.05. The plot function will give you a visual summary for each parameter monitored.
plot(mod$JAGS) print(mod$JAGS)
Using the ggplot2 and tidybayes R packages, we will check the trace plots to assess the convergence of individual parameters. We expect to see a 'caterpillar' like appearance of the chains over the iterations.
sample_draws <- tidybayes::tidy_draws(mod$JAGS$BUGSoutput$sims.matrix) var <- sample_draws %>% dplyr::select(.chain, .iteration, .draw,`P[1,2,1,1]`) %>% dplyr::mutate(chain = rep(1:2, each=mod$JAGS$BUGSoutput$n.keep)) %>% dplyr::mutate(iteration = rep(1:mod$JAGS$BUGSoutput$n.keep, 2)) ggplot2::ggplot(data=var) + ggplot2::geom_line(ggplot2::aes(x=iteration, y=`P[1,2,1,1]`, color=as.factor(chain)))
plots <- plot_estimates(jagsdata = pkg_data, model_output = mod)
estimates_2018 <- pull_estimates(model_output = mod, country = 'Nepal', year=2018) head(estimates_2018)
This function will allow you to pull out the posterior sample of estimated method supply shares. The posterior sample will be of size 'nposterior'. Note that 'nposterior' should not be larger than your total iterations (given in 'run_jags_model') In this example, we supply the JAGS model object and the JAGS input data to the function, we set 'nposterior=4' to pull out 4 posterior samples.
post_samps <- get_posterior_P_samps(jagsdata = pkg_data, model_output = mod, nposterior=4) head(post_samps)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.