Nothing
library(hmmTMB)
# number of simulations
nsims <- 100
# list to save fitted models in
mods <- vector(mode = "list", length = nsims)
## setup simulation
set.seed(295291)
# number of time steps
n <- 1000
# number of individual time series
n_ID <- 10
# create an empty dataset
dat <- data.frame(ID = factor(rep(1:n_ID, each = n)), count = rep(0, n * n_ID))
# create true model
true_mod <- HMM$new(file = "individual_random_effects_truemod.hmm")
# set random effects
re_sd <- c(0.1, 0.3)
pb <- txtProgressBar(min = 0, max = nsims, style = 3)
for (i in 1:nsims) {
setTxtProgressBar(pb, i)
# simulate random effects
par <- true_mod$coeff_re()$obs
par[1:n_ID] <- rnorm(n_ID, 0, re_sd[1])
par[(n_ID + 1):nrow(par)] <- rnorm(n_ID, 0, re_sd[2])
true_mod$obs()$update_coeff_re(par)
# simulate data
dat <- true_mod$simulate(n * n_ID, data = dat, silent = TRUE)
# fit model
mod <- HMM$new(file = "individual_random_effects_mod.hmm")
mod$fit(silent = TRUE)
# save model
mods[[i]] <- mod$clone()
}
# check bias on the estimates
true_mod <- HMM$new(file = "individual_random_effects_truemod.hmm")
obs_ests <- sapply(mods, FUN = function(x) {x$par()$obspar[,,1]})
e_obs_ests <- rowMeans(obs_ests)
true_obs_ests <- true_mod$par()$obspar[,,1]
bias_obs_ests <- 100 * (e_obs_ests - true_obs_ests) / true_obs_ests
# relative percentage bias in observation parameter estimates
bias_obs_ests
tpm_ests <- sapply(mods, FUN = function(x) {diag(x$par()$tpm[,,1])})
e_tpm_ests <- rowMeans(tpm_ests)
true_tpm_ests <- diag(true_mod$par()$tpm[,,1])
bias_tpm_ests <- 100 * (e_tpm_ests - true_tpm_ests) / true_tpm_ests
# relative percentage bias in transition probability parameter estimates
bias_tpm_ests
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.