## ----include=FALSE------------------------------------------------------------ #Load in the data and load the library library(EcoEnsemble) #load("data/vignette_plots.Rdata") ## ----label="Observations"----------------------------------------------------- SSB_obs Sigma_obs ## ----label="EwESigma"--------------------------------------------------------- Sigma_ewe ## ----label="lmSigma"---------------------------------------------------------- Sigma_lm ## ----label="mizSigma"--------------------------------------------------------- Sigma_miz ## ----label="fsSigma"---------------------------------------------------------- Sigma_fs ## ----model_outputs, warning=FALSE, fig.dim = c(7, 3), message = FALSE, echo = FALSE---- library(tibble) library(dplyr) library(reshape2) library(ggplot2) #Inlcude years in the data frames SSB_obs_tmp <- rownames_to_column(SSB_obs, var = "Year") SSB_ewe_tmp <- rownames_to_column(SSB_ewe, var = "Year") SSB_miz_tmp <- rownames_to_column(SSB_miz, var = "Year") SSB_lm_tmp <- rownames_to_column(SSB_lm, var = "Year") SSB_fs_tmp <- rownames_to_column(SSB_fs, var = "Year") #Join dataframes together df_all <- SSB_obs_tmp %>% full_join(SSB_ewe_tmp, by = "Year", suffix = c("","_ewe")) %>% full_join(SSB_miz_tmp, by = "Year", suffix = c("","_miz")) %>% full_join(SSB_lm_tmp, by = "Year", suffix = c("","_lm")) %>% full_join(SSB_fs_tmp, by = "Year", suffix = c("","_fs")) #Melt into long data format for ggplot df_all <- melt(df_all, id.vars = "Year") colnames(df_all) <- c("Year", "Simulator", "logSSB") df_all$Year <- as.numeric(df_all$Year) #Finally create the plots df_n_pout <- df_all[grepl("N.pout", df_all$Simulator), ] p1 <- ggplot(data=df_n_pout, aes(x=`Year`, y=`logSSB`, na.rm = TRUE)) + geom_line(aes(group=`Simulator`,colour=`Simulator`)) + ggtitle("Norway pout") df_herring <- df_all[grepl("Herring", df_all$Simulator), ] p2 <- ggplot(data=df_herring, aes(x=`Year`, y=`logSSB`, na.rm = TRUE)) + geom_line(aes(group=`Simulator`,colour=`Simulator`)) + ggtitle("Herring") df_cod <- df_all[grepl("Cod", df_all$Simulator), ] p3 <- ggplot(data=df_cod, aes(x=`Year`, y=`logSSB`, na.rm = TRUE)) + geom_line(aes(group=`Simulator`,colour=`Simulator`))+ ggtitle("Cod") df_sole <- df_all[grepl("Sole", df_all$Simulator), ] p4 <- ggplot(data=df_sole, aes(x=`Year`, y=`logSSB`, na.rm = TRUE)) + geom_line(aes(group=`Simulator`,colour=`Simulator`)) + ggtitle("Sole") cowplot::plot_grid(p1, p2, p3, p4, ncol = 2, nrow = 2) ## ----------------------------------------------------------------------------- #Setting priors for an ensemble model with 4 variables of interest. priors <- EnsemblePrior(4) ## ----------------------------------------------------------------------------- priors_custom <- EnsemblePrior( d = 4, ind_st_params = IndSTPrior("lkj", list(25, 0.25), 30), ind_lt_params = IndLTPrior( "beta", list(c(25, 25, 25, 10),c(0.25, 0.25, 0.25, 0.1)), list(matrix(40, 4, 4), matrix(40, 4, 4)) ), sha_st_params = ShaSTPrior("lkj", list(25, 0.25), 30), sha_lt_params = 3) ## ----label = "fit", eval=FALSE------------------------------------------------ # fit_sample <- fit_ensemble_model(observations = list(SSB_obs, Sigma_obs), # simulators = list(list(SSB_ewe, Sigma_ewe, "EwE"), # list(SSB_lm, Sigma_lm, "LeMans"), # list(SSB_miz, Sigma_miz, "mizer"), # list(SSB_fs, Sigma_fs, "FishSUMS")), # priors = priors) # samples <- generate_sample(fit_sample) ## ----label = "Initial_plots", eval=FALSE-------------------------------------- # plot(samples) ## ----fig.dim = c(7, 4), echo=FALSE, warning = FALSE--------------------------- knitr::include_graphics("data/plot_initial_outputs.png") ## ----label = "Initial_plots_changed", fig.dim = c(7, 4), eval=FALSE----------- # plot(samples, variable = "Cod", quantiles = c(0.25, 0.75)) + # ggplot2::theme_classic() + # ggplot2::scale_color_brewer(palette="Set2") + # ggplot2::ylab("SSB (log tonnes)") ## ----fig.dim = c(7, 4), echo=FALSE, warning = FALSE--------------------------- knitr::include_graphics("data/plot_initial_customised.png") ## ----visualise_priors, eval= FALSE-------------------------------------------- # prior_model <- prior_ensemble_model(priors = priors, M = 4) # prior_samples <- sample_prior(observations = list(SSB_obs, Sigma_obs), # simulators = list(list(SSB_ewe, Sigma_ewe, "EwE"), # list(SSB_lm, Sigma_lm, "LeMans"), # list(SSB_miz, Sigma_miz, "mizer"), # list(SSB_fs, Sigma_fs, "FishSUMS")), # priors = priors, prior_model) # ## ----plot_priors, fig.dim = c(7, 4), eval = FALSE----------------------------- # plot(prior_samples) ## ----fig.dim = c(7, 6), echo = FALSE, warning = FALSE------------------------- knitr::include_graphics("data/plot_priors_only.png") ## ----label = "create_data_manual"--------------------------------------------- ens_data <- EnsembleData(observations = list(SSB_obs, Sigma_obs), simulators = list(list(SSB_ewe, Sigma_ewe, "EwE"), list(SSB_lm, Sigma_lm, "LeMans"), list(SSB_miz, Sigma_miz, "mizer"), list(SSB_fs, Sigma_fs, "FishSUMS")), priors = priors) ## ----label = "fitting_ensemble_DIY", eval=FALSE------------------------------- # mod <- get_mcmc_ensemble_model(priors) # samples <- rstan::sampling(mod, data = ens_data@stan_input) # fit <- EnsembleFit(ens_data, samples = samples) ## ----eval = FALSE------------------------------------------------------------- # # Generating samples using DIY functions # transf_data <- get_transformed_data(fit) # mle_sample <- gen_sample(1, ex.fit = rstan::extract(samples), transformed_data = transf_data, # time = ens_data@stan_input$time) ## ----eval=FALSE--------------------------------------------------------------- # fit <- fit_ensemble_model(observations = observations, simulators = simulators, # priors = priors) # samples_tmp <- generate_sample(fit) # samples <- samples_tmp@samples