## ----global_options, include=FALSE-------------------------------------------- knitr::opts_chunk$set(fig.width=5, fig.height=5, warning=FALSE, cache = F) ## ---- echo = F, message = F--------------------------------------------------- set.seed(123) ## ---- eval = F---------------------------------------------------------------- # runMyModel(par) ## ---- eval = F---------------------------------------------------------------- # dyn.load(model) # # runMyModel(par){ # out = # model call here # # process out # return(out) # } ## ---- eval = F---------------------------------------------------------------- # runMyModel(par){ # # # Create here a string with what you would write to call the model from the command line # systemCall <- paste("model.exe", par[1], par[2]) # # out = system(systemCall, intern = TRUE) # intern indicates whether to capture the output of the command as an R character vector # # # write here to convert out in the apprpriate R classes # # } ## ---- eval = F---------------------------------------------------------------- # runMyModel(par, returnData = NULL){ # # writeParameters(par) # # system("Model.exe") # # if(! is.null(returnData)) return(readData(returnData)) # The readData function will be defined later # # } # # writeParameters(par){ # # # e.g. # # read template parameter fil # # replace strings in template file # # write parameter file # } ## ---- eval = F---------------------------------------------------------------- # setUpModel <- function(parameterTemplate, site, localConditions){ # # # create the runModel, readData functions (see later) here # # return(list(runModel, readData)) # # } ## ---- eval = F---------------------------------------------------------------- # getData(type = X){ # # read.csv(xxx) # # # do some transformation # # # return data in desidered format # } ## ---- eval = F---------------------------------------------------------------- # par = c(1,2,3,4 ..) # # runMyModel(par) # # output <- getData(type = DesiredType) # # plot(output) ## ----------------------------------------------------------------------------- mymodel<-function(x){ output<-0.2*x+0.1^x return(output) } ## ---- eval = F---------------------------------------------------------------- # # library(parallel) # cl <- makeCluster(2) # # runParallel<- function(parList){ # parSapply(cl, parList, mymodel) # } # # runParallel(c(1,2)) ## ---- eval = F---------------------------------------------------------------- # library(BayesianTools) # parModel <- generateParallelExecuter(mymodel) ## ----------------------------------------------------------------------------- library(BayesianTools) ll <- generateTestDensityMultiNormal(sigma = "no correlation") bayesianSetup <- createBayesianSetup(likelihood = ll, lower = rep(-10, 3), upper = rep(10, 3)) settings = list(iterations = 200) # run the several MCMCs chains either in seperate R sessions, or via R parallel packages out1 <- runMCMC(bayesianSetup = bayesianSetup, sampler = "DEzs", settings = settings) out2 <- runMCMC(bayesianSetup = bayesianSetup, sampler = "DEzs", settings = settings) res <- createMcmcSamplerList(list(out1, out2)) plot(res)