simmrUse:
install.packages("simmr")then
library(simmr)Some geese isotope data is included with this package. Find where it is with:
system.file("extdata", "geese_data.xls", package = "simmr")Load into R with:
library(readxl)
path <- system.file("extdata", "geese_data.xls", package = "simmr")
geese_data <- lapply(excel_sheets(path), read_excel, path = path)If you want to see what the original Excel sheet looks like you can
run system(paste('open',path)).
We can now separate out the data into parts
targets <- geese_data[[1]]
sources <- geese_data[[2]]
TEFs <- geese_data[[3]]
concdep <- geese_data[[4]]Note that if you don’t have TEFs or concentration dependence you can set these all to the value 0 or just leave them blank in the step below.
simmrgeese_simmr <- simmr_load(
  mixtures = targets[, 1:2],
  source_names = sources$Sources,
  source_means = sources[, 2:3],
  source_sds = sources[, 4:5],
  correction_means = TEFs[, 2:3],
  correction_sds = TEFs[, 4:5],
  concentration_means = concdep[, 2:3],
  group = as.factor(paste("Day", targets$Time))
)plot(geese_simmr, group = 1:8)simmr and check convergencegeese_simmr_out <- simmr_mcmc(geese_simmr)
summary(geese_simmr_out,
  type = "diagnostics",
  group = 1
)Check that the model fitted well:
posterior_predictive(geese_simmr_out, group = 5)## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 40
##    Unobserved stochastic nodes: 46
##    Total graph size: 198
## 
## Initializing modelLook at the influence of the prior:
prior_viz(geese_simmr_out)Look at the histogram of the dietary proportions:
plot(geese_simmr_out, type = "histogram")compare_groups(geese_simmr_out,
  groups = 1:4,
  source_name = "Enteromorpha"
)## Most popular orderings are as follows:##                                     Probability
## Day 428 > Day 124 > Day 398 > Day 1      0.2142
## Day 428 > Day 398 > Day 124 > Day 1      0.1811
## Day 428 > Day 124 > Day 1 > Day 398      0.1561
## Day 428 > Day 398 > Day 1 > Day 124      0.0936
## Day 428 > Day 1 > Day 124 > Day 398      0.0869
## Day 428 > Day 1 > Day 398 > Day 124      0.0619
## Day 398 > Day 428 > Day 124 > Day 1      0.0467
## Day 124 > Day 428 > Day 398 > Day 1      0.0419
## Day 124 > Day 428 > Day 1 > Day 398      0.0275
## Day 398 > Day 428 > Day 1 > Day 124      0.0203
## Day 1 > Day 428 > Day 124 > Day 398      0.0139
## Day 398 > Day 124 > Day 428 > Day 1      0.0139
## Day 124 > Day 398 > Day 428 > Day 1      0.0131
## Day 1 > Day 428 > Day 398 > Day 124      0.0064
## Day 124 > Day 1 > Day 428 > Day 398      0.0058
## Day 398 > Day 1 > Day 428 > Day 124      0.0039
## Day 1 > Day 398 > Day 428 > Day 124      0.0033
## Day 1 > Day 124 > Day 428 > Day 398      0.0019
## Day 124 > Day 1 > Day 398 > Day 428      0.0019
## Day 398 > Day 124 > Day 1 > Day 428      0.0019
## Day 398 > Day 1 > Day 124 > Day 428      0.0011
## Day 1 > Day 124 > Day 398 > Day 428      0.0008
## Day 1 > Day 398 > Day 124 > Day 428      0.0008
## Day 124 > Day 398 > Day 1 > Day 428      0.0008For the many more options available to run and analyse output, see
the main vignette via vignette('simmr')