Skip to contents
library(daedalus)
library(data.table)
library(ggplot2)

response_threshold <- 1000

Initially run the model with no response, and then with an elimination response activated when total hospitalisations reach 1000 or after 30 days, whichever is sooner. We run both models for 100 days as the epidemic peak occurs within this timeframe.

data_baseline <- daedalus(
  "Canada",
  daedalus_infection("influenza_1918", rho = 0.0), # prevent re-infection
  response_threshold = response_threshold,
  response_strategy = "none",
  time_end = 100
)

# get the model timeseries
data_baseline <- get_data(data_baseline)
data_baseline$scenario <- "no_response"
# run the model with a heavy elimination intervention
data_intervention <- daedalus(
  "Canada",
  daedalus_infection("influenza_1918", rho = 0.0), # prevent re-infection
  response_threshold = response_threshold,
  response_strategy = "elimination",
  time_end = 100
)

# get the model timeseries
data_intervention <- get_data(data_intervention)
data_intervention$scenario <- "elimination"

Plot the total hospital occupancy for both scenarios to view the effect of interventions.

data <- rbindlist(list(data_baseline, data_intervention))
# sum over age and econ strata as total is more relevant
data <- data[compartment == "hospitalised", .(value = sum(value)),
  by = c("time", "compartment", "scenario")
]

# check actual outcomes of interest - these don't look as good
ggplot(data) +
  geom_line(aes(time, value, colour = scenario)) +
  geom_hline(
    yintercept = response_threshold, linetype = "dotted"
  ) +
  labs(y = "Total hospital occupancy", x = "Days", col = "Scenario") +
  theme(legend.position = "top")

Note that the effect of response strategies that introduce closures does not appear to be very large — this is because the full range of interventions associated with each strategy is yet to be implemented.