# NOT RUN {
## Construct example distributions
generation_time <- list(mean = EpiNow2::covid_generation_times[1, ]$mean,
mean_sd = EpiNow2::covid_generation_times[1, ]$mean_sd,
sd = EpiNow2::covid_generation_times[1, ]$sd,
sd_sd = EpiNow2::covid_generation_times[1, ]$sd_sd,
max = 30)
incubation_period <- list(mean = EpiNow2::covid_incubation_period[1, ]$mean,
mean_sd = EpiNow2::covid_incubation_period[1, ]$mean_sd,
sd = EpiNow2::covid_incubation_period[1, ]$sd,
sd_sd = EpiNow2::covid_incubation_period[1, ]$sd_sd,
max = 30)
reporting_delay <- EpiNow2::bootstrapped_dist_fit(rlnorm(100, log(6), 1))
## Set max allowed delay to 60 days to truncate computation
reporting_delay$max <- 60
## Example case data
reported_cases <- EpiNow2::example_confirmed[1:40]
## Report Rt along with forecasts
out <- epinow(reported_cases = reported_cases, generation_time = generation_time,
delays = list(incubation_period, reporting_delay),
rt_prior = list(mean = 1, sd = 1),
samples = 1000, warmup = 200, cores = ifelse(interactive(), 4, 1), chains = 4,
verbose = TRUE, return_fit = TRUE)
out
## For optional forecasting
if(requireNamespace("EpiSoon")){
if(requireNamespace("forecastHybrid")){
## Report Rt along with forecasts
out <- epinow(reported_cases = cases, generation_time = generation_time,
delays = list(incubation_period, reporting_delay),
rt_prior = list(mean = 1, sd = 1),
forecast_model = function(y, ...){
EpiSoon::forecastHybrid_model(
y = y[max(1, length(y) - 21):length(y)],
model_params = list(models = "aefz", weights = "equal"),
forecast_params = list(PI.combination = "mean"), ...)},
samples = 1000, warmup = 500, cores = ifelse(interactive(), 4, 1), chains = 4,
verbose = TRUE, return_fit = TRUE)
out
}
}
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab