Last compiled: 2022-05-03

1 Purpose

To figure out the minimum number of meshpoints needed to accurately (precisely?) model population growth.

2 Load Data

withr::with_dir(here::here(), {
  tar_load(vit_list_det_ff)
  tar_load(vit_list_stoch_ff)
  tar_load(pop_vec_ff)
})

3 Make proto IPM

proto_det <- make_proto_ipm_det(vit_list_det_ff, pop_vec = pop_vec_ff)

4 Alter meshpoints

Ok, so let’s alter the number of meshpoints systematically and see where lambda converges

proto_det_list <- 
  seq(20, 150, 5) %>% 
  map(~{
    proto_det %>% 
    define_domains(log_size = c(0, 8.018296, .x)) %>%  
    #arbitrary starting population state
    define_pop_state(n_log_size = runif(.x), n_sdlg = .1)
  })
lambdas_det <- proto_det_list %>% 
  map_dbl(~make_ipm(.x, usr_funs = list(get_scat_params = get_scat_params)) %>% lambda())

plot(x =seq(20, 150, 5), y = lambdas_det, ylab = "lambda", xlab = "meshpoints")

plot(x = seq(20, 150, 5), y = lambdas_det - lag(lambdas_det), ylab = "∆lambda", xlab = "meshpoints")

Looks like 100 is probably the best. Could maybe do 80.

5 Stochastic IPM

Let’s try with stochastic IPM.

proto_stoch <- make_proto_ipm_stoch(vit_list_stoch_ff, pop_vec = pop_vec_ff)
proto_stoch_list <- 
  seq(20, 140, 10) %>%
  map(~{
    proto_stoch %>% 
    define_domains(log_size = c(0, 8.018296, .x)) %>%  
    #replace starting pop vector with uniform one with correct number of meshpts
    define_pop_state(n_log_size = rep(1/(.x + 1), .x), n_sdlg = 1/.x)
  })
year_seq <- sample(2000:2009, 1000, replace = TRUE)

ipm_list <-
  proto_stoch_list %>%
  map( ~ make_ipm(
    .x,
    iterations = 1000,
    kernel_seq = year_seq,
    usr_funs = list(get_scat_params = get_scat_params)
  )) 
  
lambdas_stoch <- ipm_list %>% map_dbl(~lambda(.x, log = FALSE))

plot(x = seq(20, 140, 10), y = lambdas_stoch, ylab = "stochastic lambda", xlab = "meshpoints")

plot(x = seq(20, 140, 10), y = lambdas_stoch - lag(lambdas_stoch), ylab = "∆lambda", xlab = "meshpoints")

Ok, looks about the same for the stochastic model, which makes sense.