R/get_pars.R

Defines functions get_pars

Documented in get_pars

#' Load simulation parameters
#'
#' @export

get_pars <- function(uid) {

    # Check that log file exists

    # Load log
    scenario <- readRDS("inputs/scenarios_log.rds")
    # if(surf == TRUE){
    #     scenario <- readRDS("scenarios_log.rds")
    # } else {
    #     scenario <- readRDS("inputs/scenarios_log.rds")
    # }

    # Select the incumbent scenario
    scenario <- scenario[which(scenario[["uid"]] == uid),]

    # Specify the correct gamma, emiss and eps_str
    gamma_sim <- matrix(c(0.96, 0.02, 0.02,
                          0.03, 0.94, 0.03,
                          0.04, 0.04, 0.92), ncol = 3, byrow = TRUE)

    emiss_sim <- list("low" = list(matrix(c(0.96, 0.01, 0.01, 0.01, 0.01,
                                            0.02, 0.47, 0.47, 0.02, 0.02,
                                            0.02, 0.02, 0.02, 0.47, 0.47), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.02, 0.47, 0.47, 0.02, 0.02,
                                            0.96, 0.01, 0.01, 0.01, 0.01,
                                            0.02, 0.02, 0.02, 0.47, 0.47), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.01, 0.96, 0.01, 0.01, 0.01,
                                            0.47, 0.02, 0.47, 0.02, 0.02,
                                            0.02, 0.02, 0.02, 0.47, 0.47), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.47, 0.02, 0.47, 0.02, 0.02,
                                            0.02, 0.02, 0.02, 0.47, 0.47,
                                            0.01, 0.96, 0.01, 0.01, 0.01), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.01, 0.01, 0.96, 0.01, 0.01,
                                            0.47, 0.47, 0.02, 0.02, 0.02,
                                            0.02, 0.02, 0.02, 0.47, 0.47), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.01, 0.01, 0.01, 0.96, 0.01,
                                            0.02, 0.47, 0.47, 0.02, 0.02,
                                            0.47, 0.02, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.02, 0.47, 0.47, 0.02, 0.02,
                                            0.47, 0.02, 0.02, 0.02, 0.47,
                                            0.01, 0.01, 0.01, 0.96, 0.01), nrow = 3, ncol = 5, byrow = T),

                                   matrix(c(0.01, 0.01, 0.01, 0.01, 0.96,
                                            0.02, 0.47, 0.47, 0.02, 0.02,
                                            0.47, 0.02, 0.02, 0.47, 0.02), nrow = 3, ncol = 5, byrow = T)),

                      "moderate" = list(matrix(c(0.96, 0.01, 0.01, 0.01, 0.01,
                                                 0.02, 0.47, 0.47, 0.02, 0.02,
                                                 0.02, 0.02, 0.47, 0.47, 0.02), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.02, 0.47, 0.47, 0.02, 0.02,
                                                 0.96, 0.01, 0.01, 0.01, 0.01,
                                                 0.02, 0.47, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.01, 0.96, 0.01, 0.01, 0.01,
                                                 0.47, 0.02, 0.47, 0.02, 0.02,
                                                 0.02, 0.47, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.47, 0.02, 0.02, 0.02, 0.47,
                                                 0.02, 0.02, 0.02, 0.47, 0.47,
                                                 0.01, 0.96, 0.01, 0.01, 0.01), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.01, 0.01, 0.96, 0.01, 0.01,
                                                 0.47, 0.02, 0.47, 0.02, 0.02,
                                                 0.02, 0.47, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.01, 0.01, 0.01, 0.96, 0.01,
                                                 0.02, 0.47, 0.02, 0.02, 0.47,
                                                 0.47, 0.02, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.47, 0.47, 0.02, 0.02, 0.02,
                                                 0.47, 0.02, 0.02, 0.47, 0.02,
                                                 0.01, 0.01, 0.01, 0.01, 0.96), nrow = 3, ncol = 5, byrow = T),

                                        matrix(c(0.02, 0.47, 0.47, 0.02, 0.02,
                                                 0.01, 0.01, 0.01, 0.01, 0.96,
                                                 0.47, 0.02, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T)),

                      "high" = list(matrix(c(0.01, 0.96, 0.01, 0.01, 0.01,
                                             0.02, 0.47, 0.47, 0.02, 0.02,
                                             0.02, 0.47, 0.47, 0.02, 0.02), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.02, 0.47, 0.02, 0.02, 0.47,
                                             0.01, 0.01, 0.01, 0.01, 0.96,
                                             0.02, 0.47, 0.02, 0.02, 0.47), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.01, 0.01, 0.96, 0.01, 0.01,
                                             0.47, 0.02, 0.47, 0.02, 0.02,
                                             0.47, 0.02, 0.47, 0.02, 0.02), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.02, 0.02, 0.02, 0.47, 0.47,
                                             0.02, 0.02, 0.02, 0.47, 0.47,
                                             0.01, 0.01, 0.01, 0.96, 0.01), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.02, 0.47, 0.02, 0.47, 0.02,
                                             0.01, 0.01, 0.01, 0.96, 0.01,
                                             0.02, 0.47, 0.02, 0.47, 0.02), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.47, 0.02, 0.47, 0.02, 0.02,
                                             0.47, 0.02, 0.47, 0.02, 0.02,
                                             0.96, 0.01, 0.01, 0.01, 0.01), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.47, 0.47, 0.02, 0.02, 0.02,
                                             0.47, 0.47, 0.02, 0.02, 0.02,
                                             0.01, 0.96, 0.01, 0.01, 0.01), nrow = 3, ncol = 5, byrow = T),

                                    matrix(c(0.47, 0.02, 0.47, 0.02, 0.02,
                                             0.01, 0.01, 0.96, 0.01, 0.01,
                                             0.47, 0.02, 0.47, 0.02, 0.02), nrow = 3, ncol = 5, byrow = T)))

    eps_str <- list("low" = list(matrix(c(-4*1, 1, 1, 1, 1,
                                          1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          -4*1, 1, 1, 1, 1,
                                          1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(1, -4*1, 1, 1, 1,
                                          -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(-3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5,
                                          1, -4*1, 1, 1, 1), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(1, 1, -4*1, 1, 1,
                                          -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5,
                                          1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(1, 1, 1, -4*1, 1,
                                          1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5,
                                          1, 1, 1, -4*1, 1), nrow = 3, ncol = 5, byrow = T),

                                 matrix(c(1, 1, 1, 1, -4*1,
                                          1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                          -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5), nrow = 3, ncol = 5, byrow = T)),

                    "moderate" = list(matrix(c(-4*1, 1, 1, 1, 1,
                                               1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                               1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                               -4*1, 1, 1, 1, 1,
                                               1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(1, -4*1, 1, 1, 1,
                                               -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                               1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(-3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5,
                                               1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5,
                                               1, -4*1, 1, 1, 1), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(1, 1, -4*1, 1, 1,
                                               -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                               1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(1, 1, 1, -4*1, 1,
                                               1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5,
                                               -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(-3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5,
                                               -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5,
                                               1, 1, 1, 1, -4*1), nrow = 3, ncol = 5, byrow = T),

                                      matrix(c(1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                               1, 1, 1, 1, -4*1,
                                               -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T)),

                    "high" = list(matrix(c(1, -4*1, 1, 1, 1,
                                           1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                           1/1.5, -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5,
                                           1, 1, 1, 1, -4*1,
                                           1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(1, 1, -4*1, 1, 1,
                                           -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                           -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5,
                                           1/1.5, 1/1.5, 1/1.5, -3/2*1/1.5, -3/2*1/1.5,
                                           1, 1, 1, -4*1, 1), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(1/1.5, -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5,
                                           1, 1, 1, -4*1, 1,
                                           1/1.5, -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(-3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                           -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                           -4*1, 1, 1, 1, 1), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(-3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5,
                                           -3/2*1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5, 1/1.5,
                                           1, -4*1, 1, 1, 1), nrow = 3, ncol = 5, byrow = T),

                                  matrix(c(-3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5,
                                           1, 1, -4*1, 1, 1,
                                           -3/2*1/1.5, 1/1.5, -3/2*1/1.5, 1/1.5, 1/1.5), nrow = 3, ncol = 5, byrow = T)))

    # Set the correct ones
    emiss_sim <- emiss_sim[[scenario[["overlapping"]]]]
    eps_str <- eps_str[[scenario[["overlapping"]]]]

    # Set emission distribution with noisiness
    eps <- scenario[["noisiness"]]
    emiss_sim <- lapply(seq_along(emiss_sim),function(e, emiss_sim, eps_str, eps) {emiss_sim[[e]] + eps_str[[e]]*eps}, emiss_sim, eps_str, eps)

    # Return model parameters
    return(list(sample_size  = scenario[["sample_size"]],
                n_t          = scenario[["n_t"]],
                m            = scenario[["m"]],
                n_dep        = scenario[["n_dep"]],
                q_emiss      = rep(scenario[["q_emiss"]], scenario[["n_dep"]]),
                gamma_var    = scenario[["gamma_var"]],
                emiss_var    = rep(scenario[["emiss_var"]], scenario[["n_dep"]]),
                noisiness    = scenario[["noisiness"]],
                overlapping  = scenario[["overlapping"]],
                iter         = scenario[["iter"]],
                burnin       = scenario[["burnin"]],
                repetitions  = scenario[["repetitions"]],
                scenario_uid = scenario[["scenario_uid"]],
                uid          = scenario[["uid"]],
                save_all     = scenario[["save_all"]],
                gamma_sim    = gamma_sim,
                emiss_sim    = emiss_sim[1:scenario[["n_dep"]]]))

}
smildiner/simHMM documentation built on July 17, 2022, 2 p.m.