Skip to contents

This helper function converts MCMC samples into ggmcmc format

Usage

convert_to_ggmcmc(
  x,
  pattern = c("mean", "sigma", "beta", "alpha", "pois_means", "T"),
  include_warmup = FALSE
)

Arguments

x

(mcmc_hmm_*) MCMC HMM object

pattern

(character) pattern(s) with model parameters to be included in the output

include_warmup

(logical) include warmup samples. By default FALSE

Value

data.frame compatible with functions from the ggmcmc package

Details

By default, for a given model, all parameters are converted into ggmcmc format.

The parameter pattern can be used to extract specific parameters. For instance pattern="mean" extracts all mean parameters from a hmm_mcmc_normal model.

If a specific parameter is of interest it can be matched by an exact name: pattern=c("mean[1]", "T[1,1]").

Examples

# Convert all parameters (Normal model)
convert_normal_all <- convert_to_ggmcmc(example_hmm_mcmc_normal)
unique(convert_normal_all$Parameter)
#>  [1] "mean[1]"  "mean[2]"  "mean[3]"  "sigma[1]" "T[1,1]"   "T[2,1]"  
#>  [7] "T[3,1]"   "T[1,2]"   "T[2,2]"   "T[3,2]"   "T[1,3]"   "T[2,3]"  
#> [13] "T[3,3]"  
head(convert_normal_all)
#>   Iteration Chain Parameter     value
#> 1       601     1   mean[1] 0.5463710
#> 2       602     1   mean[1] 0.5439514
#> 3       603     1   mean[1] 0.5453779
#> 4       604     1   mean[1] 0.5444471
#> 5       605     1   mean[1] 0.5525009
#> 6       606     1   mean[1] 0.5475645
tail(convert_normal_all)
#>       Iteration Chain Parameter     value
#> 11695      1495     1    T[3,3] 0.6241444
#> 11696      1496     1    T[3,3] 0.6087342
#> 11697      1497     1    T[3,3] 0.6132930
#> 11698      1498     1    T[3,3] 0.6293610
#> 11699      1499     1    T[3,3] 0.5908851
#> 11700      1500     1    T[3,3] 0.6535850

# Convert only means (Normal model)
convert_normal_means <- convert_to_ggmcmc(example_hmm_mcmc_normal, 
                                          pattern = "mean")
unique(convert_normal_means$Parameter)
#> [1] "mean[1]" "mean[2]" "mean[3]"

# Convert selected parameter (Normal model)
pattern_normal <- c("mean[1]", "sigma[1]", "T[1,1]")
convert_normal_param <- convert_to_ggmcmc(example_hmm_mcmc_normal, 
                                          pattern = pattern_normal)
unique(convert_normal_param$Parameter)
#> [1] "mean[1]"  "sigma[1]" "T[1,1]"  

# Convert all parameters (Poisson-Gamma model)
convert_pois_gamma_all <- convert_to_ggmcmc(example_hmm_mcmc_gamma_poisson)
unique(convert_pois_gamma_all$Parameter)
#>  [1] "means[1]" "means[2]" "means[3]" "beta[1]"  "beta[2]"  "beta[3]" 
#>  [7] "alpha[1]" "T[1,1]"   "T[2,1]"   "T[3,1]"   "T[1,2]"   "T[2,2]"  
#> [13] "T[3,2]"   "T[1,3]"   "T[2,3]"   "T[3,3]"