Creates an EpiProblem that composes infection, latent, and observation models into a complete epidemiological model specification. The latent model generates time-varying epidemiological parameters, the infection model simulates disease transmission, and the observation model links latent infections to observed data.

EpiProblem(epi_model, latent_model, observation_model, tspan)

Arguments

epi_model

An infection model object (e.g., from Renewal).

latent_model

A latent process model (e.g., from AR).

observation_model

An observation model (e.g., from NegativeBinomialError).

tspan

A numeric vector of length 2 specifying the time span for inference or simulation: c(start_time, end_time).

Value

An S3 object of class c("epiaware_problem", "epiaware_model") containing:

julia_ref

Reference to the Julia EpiProblem object

components

List containing the three model components

tspan

The time span

Examples

if (FALSE) { # \dontrun{
# Compose a complete epidemiological model (Mishra et al. 2020)
ar2 <- AR(
  order = 2,
  damp_priors = list(truncnorm(0.2, 0.2, 0, 1), truncnorm(0.1, 0.05, 0, 1)),
  init_priors = list(norm(0, 0.2), norm(0, 0.2)),
  std_prior = halfnorm(0.1)
)

renewal <- Renewal(
  gen_distribution = gamma_dist(6.5, 0.62),
  initialisation_prior = norm(log(1.0), 0.1)
)

negbin <- NegativeBinomialError(
  cluster_factor_prior = halfnorm(0.1)
)

model <- EpiProblem(
  epi_model = renewal,
  latent_model = ar2,
  observation_model = negbin,
  tspan = c(45, 80)
)

print(model)
} # }