#------------------------------------------------------------------------------
#Calculate statistics for each parameter
#R interface to C++ function
calc_stats <- function(samples){
out <- rcpp_calc_stats(mcmc_to_mat(samples),
length(samples))
row.names(out) <- param_names(samples)
colnames(out) <- c('mean','sd','2.5%','25%','50%','75%','97.5%',
'Overlap0','f','nEff','Rhat')
out
}
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#Calculate pD and DIC from deviance if it exists in output samples
calc_DIC <- function(samples){
ind <- which_params('deviance', param_names(samples))
if(is.null(ind)) return(c(pD=NA, DIC=NA))
m <- length(samples)
n <- nrow(samples[[1]])
dev <- select_cols(samples, ind)
dev <- matrix(mcmc_to_mat(dev), ncol=m)
if(any(is.na(dev)) || any(is.infinite(dev))) return(c(pD=NA, DIC=NA))
pd <- apply(dev,2,FUN=function(x) stats::var(x)/2)
dic <- apply(dev,2,mean) + pd
c(pD=mean(pd),DIC=mean(dic))
}
#------------------------------------------------------------------------------
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.