0.1 Broken out Across Race

0.1.1 Main

make_deg_dist_dat <- function(attr, sim_dat, pcut, deg_type, deg.name){
  attr_val <- enexpr(attr)
  degtype_val <- enexpr(deg_type)
  sim_brk <- sim_dat %>% mutate(deg.name = pmin(n, pcut)) %>%
    group_by(!!attr_val, deg.name) %>% count() %>%
    ungroup() %>% group_by(!!attr_val) %>%
    mutate(Percent = round(100 * n / sum(n), 2), 
           Source = "EpiModel Simulation")
  colnames(sim_brk)[2] <- deg.name
  obs_brk <- obs %>% mutate(deg.name = pmin(!!degtype_val, pcut)) %>%
    group_by(!!attr_val, deg.name) %>%
    count() %>% ungroup() %>% group_by(!!attr_val) %>% 
    mutate(Percent = round(100 * n / sum(n), 2), 
           Source = "WHAMP Survey Data")
  colnames(obs_brk)[2] <- deg.name
  all_dat <- bind_rows(sim_brk, obs_brk)
  ggplot(all_dat, aes(x = !!degtype_val, y = Percent, fill = Source)) + 
  geom_col(alpha = 0.5, position = "identity") + facet_wrap(vars(!!attr_val)) + 
  geom_text_repel(aes(label = paste0(Percent, "%")), direction = "y") + 
  theme(legend.position = "bottom")
}

make_deg_dist_dat(race, sim_degs[[1]], 1, deg.main, "deg.main") +
   scale_x_continuous(breaks = c(0, 1),
                      labels = c("0", "1"))

0.1.2 Casual

make_deg_dist_dat(race, sim_degs[[2]], 2, deg.casl, "deg.casl")

0.2 Broken out Across Age Group

0.2.1 Main

make_deg_dist_dat(age.grp, sim_degs[[1]], 1, deg.main, "deg.main") +
   scale_x_continuous(breaks = c(0, 1),
                      labels = c("0", "1"))

0.2.2 Casual

make_deg_dist_dat(age.grp, sim_degs[[2]], 2, deg.casl, "deg.casl")

0.3 Broken out Across Region

0.3.1 Main

make_deg_dist_dat(region, sim_degs[[1]], 1, deg.main, "deg.main") +
   scale_x_continuous(breaks = c(0, 1),
                      labels = c("0", "1"))

0.3.2 Casual

make_deg_dist_dat(region, sim_degs[[2]], 2, deg.casl, "deg.casl")