chrissoria's picture
more cleaning, removing unnecesary buttons in certain plots
93e451c
#' Run Null (Baseline) Model
#'
#' Runs the SIR model with homogeneous behavior parameters (no partisan differences).
#'
#' @param params List of current model parameters
#' @param null_three_party_contacts Numeric, baseline contact rate
#' @param null_protective_three_party Numeric, baseline protective behavior rate
#' @param null_responsiveness_three_party Numeric, baseline responsiveness to deaths
#' @param null_phi_three_party Numeric, baseline waning rate
#' @param null_mu_three_party Numeric, baseline mortality rate
#' @param null_vacc_three_party Numeric, baseline vaccination rate
#' @param mu_r Numeric, Republican mortality rate
#' @param mu_d Numeric, Democrat mortality rate
#' @param mu_i Numeric, Independent mortality rate
#' @param use_republican_zeta Logical, whether to use responsiveness parameter
#' @param use_partisan_mortality Logical, whether to use partisan mortality rates
#' @param null_combines_mortality Logical, whether null model combines mortality
#' @return Processed simulation data frame
run_null_model <- function(params,
null_three_party_contacts,
null_protective_three_party,
null_responsiveness_three_party,
null_phi_three_party,
null_mu_three_party,
null_vacc_three_party,
mu_r,
mu_d,
mu_i,
use_republican_zeta,
use_partisan_mortality,
null_combines_mortality) {
null_model <- sir_three_group_pu(
frac_a = params$frac_a,
frac_b = params$frac_b,
beta_a = 1,
beta_b = 1,
cmax_a = null_three_party_contacts,
cmax_b = null_three_party_contacts,
cmax_c = null_three_party_contacts,
cmin_a = 5,
cmin_b = 5,
cmin_c = 5,
pi_a = null_protective_three_party,
pi_b = null_protective_three_party,
pi_c = null_protective_three_party,
zeta_a = if (use_republican_zeta) null_responsiveness_three_party else 0,
zeta_b = if (use_republican_zeta) null_responsiveness_three_party else 0,
zeta_c = if (use_republican_zeta) null_responsiveness_three_party else 0,
phi_a = null_phi_three_party,
phi_b = null_phi_three_party,
phi_c = null_phi_three_party,
mu_a = if (use_partisan_mortality & !null_combines_mortality) mu_r else null_mu_three_party,
mu_b = if (use_partisan_mortality & !null_combines_mortality) mu_d else null_mu_three_party,
mu_c = if (use_partisan_mortality & !null_combines_mortality) mu_i else null_mu_three_party,
time = params$time,
I0_a = params$I0_a,
I0_b = params$I0_b,
I0_c = params$I0_c,
N0 = params$N0,
ell = params$ell,
vacc_a = null_vacc_three_party,
vacc_b = null_vacc_three_party,
vacc_c = null_vacc_three_party,
vstart = params$vstart,
gamma = params$gamma,
trans_p = 0.05,
rho = 0.1,
kappa = 0.7
)
# Process and return
process_simulation_output(null_model)
}
#' Run Cautious (Democrat Behavior) Model
#'
#' Runs the SIR model where all groups adopt Democrat (most cautious) behavior.
#'
#' @param params List of current model parameters
#' @return Processed simulation data frame
run_cautious_model <- function(params) {
cautious_model <- sir_three_group_pu(
frac_a = params$frac_a,
frac_b = params$frac_b,
beta_a = params$beta_a,
beta_b = params$beta_b,
cmax_a = params$cmax_b,
cmax_b = params$cmax_b,
cmax_c = params$cmax_b,
cmin_a = params$cmin_b,
cmin_b = params$cmin_b,
cmin_c = params$cmin_b,
pi_a = params$pi_b,
pi_b = params$pi_b,
pi_c = params$pi_b,
zeta_a = params$zeta_b,
zeta_b = params$zeta_b,
zeta_c = params$zeta_b,
phi_a = params$phi_b,
phi_b = params$phi_b,
phi_c = params$phi_b,
mu_a = params$mu_a,
mu_b = params$mu_b,
mu_c = params$mu_c,
time = params$time,
I0_a = params$I0_a,
I0_b = params$I0_b,
I0_c = params$I0_c,
N0 = params$N0,
ell = params$ell,
vacc_a = params$vacc_b,
vacc_b = params$vacc_b,
vacc_c = params$vacc_b,
vstart = params$vstart,
gamma = params$gamma,
trans_p = params$trans_p,
rho = params$rho,
kappa = params$kappa
)
# Process and return
process_simulation_output(cautious_model)
}
#' Run Main Simulation Model
#'
#' Runs the SIR model with current parameter settings.
#'
#' @param params List of current model parameters
#' @return Raw simulation data frame (not processed)
run_main_model <- function(params) {
sir_three_group_pu(
frac_a = params$frac_a,
frac_b = params$frac_b,
beta_a = params$beta_a,
beta_b = params$beta_b,
cmax_a = params$cmax_a,
cmax_b = params$cmax_b,
cmax_c = params$cmax_c,
cmin_a = params$cmin_a,
cmin_b = params$cmin_b,
cmin_c = params$cmin_c,
pi_a = params$pi_a,
pi_b = params$pi_b,
pi_c = params$pi_c,
zeta_a = params$zeta_a,
zeta_b = params$zeta_b,
zeta_c = params$zeta_c,
phi_a = params$phi_a,
phi_b = params$phi_b,
phi_c = params$phi_c,
mu_a = params$mu_a,
mu_b = params$mu_b,
mu_c = params$mu_c,
time = params$time,
I0_a = params$I0_a,
I0_b = params$I0_b,
I0_c = params$I0_c,
N0 = params$N0,
ell = params$ell,
vacc_a = params$vacc_a,
vacc_b = params$vacc_b,
vacc_c = params$vacc_c,
vstart = params$vstart,
gamma = params$gamma,
trans_p = params$trans_p,
rho = params$rho,
kappa = params$kappa
)
}