The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Fitting to published estimates with the meta model

The meta model is experimental. Its interface may still change in future releases.

Systematic reviews of epidemiological delays mostly collect published summaries, such as a mean and standard deviation or a median and interquartile range, rather than individual level data. Those summaries are often biased, because the studies behind them did not fully adjust for interval censoring or right truncation (Park et al. 2024; Charniga et al. 2024). The meta model treats the delay as one latent distribution shared by every study. For each study it applies that study’s estimation procedure to the latent delay, which gives the distribution the study’s summaries estimate. It then fits each reported summary with a likelihood built from that distribution and the study’s sample size, and fits any individual level data with the likelihood of the marginal model (Abbott et al. 2025). vignette("model") gives the maths. Because it is built on brms, formulas, priors and post-processing carry over, so differences between studies are a formula term such as (1 | study). The ddsynth package also combines individual level data and published summaries, but treats each summary as an unbiased estimate of the delay.

1 What we need from a study

To use a reported summary we need to know how the study estimated it, which reviews rarely record. The meta model needs the following for each study.

cens_adjusted The study
0 summarised integer date differences directly, the most common case
1 used a double interval censored likelihood targeting the continuous delay
2 adjusted only the secondary interval, assuming a uniform delay within it
3 assigned each delay to the centre of the interval it was observed in
4 took the midpoint of the primary event’s window and integrated the secondary interval

If you cannot tell which of these a study used, state the assumption you are making alongside any results. See ?as_epidist_estimates_data for the full details.

Where the underlying delays are available and the cutoff that produced them is known, refitting them with the marginal model (vignette("epidist")) is simpler and more reliable than reconstructing what a summary of them means. The meta model is for the case where the delays cannot be had.

2 Setup

Code
library(epidist)
library(brms)
library(ggplot2)
library(dplyr)
library(tidyr)
library(purrr) # nolint
library(tibble)
library(tidybayes) # nolint

3 Simulating biased published estimates

We simulate an outbreak exactly as in vignette("epidist"), a stochastic epidemic with a lognormal delay between primary (symptom onset) and secondary (case notification) events, both interval censored to a day. as_epidist_linelist_data() converts the dates to times in days from the first primary event. We keep the simulated times as well, to work out what each study would have measured. as_epidist_marginal_model() adds the censoring windows and the bounds of each delay. Figure 3.1 shows the event windows of the simulated cases.

Code
set.seed(101)
meanlog <- 1.8
sdlog <- 0.5
growth_rate <- 0.2
outbreak_start_date <- as.Date("2024-01-01")

outbreak <- simulate_gillespie(r = growth_rate, seed = 101)
obs <- simulate_secondary(
  outbreak,
  dist = rlnorm, meanlog = meanlog, sdlog = sdlog
)
obs_cens <- simulate_dates(
  obs,
  outbreak_start_date = outbreak_start_date, keep_times = TRUE
)

linelist <- as_epidist_linelist_data(obs_cens)
#> ℹ No observation time column provided, using 2024-04-30 as the observation date (the maximum of the secondary event upper bound).
delays <- as_epidist_marginal_model(linelist)
#> ! Setting 8341 relative observation times (`relative_obs_time`) greater than 74
#>   (2x the maximum delay) to Inf.
#> ℹ This improves model efficiency by reducing the number of unique observation
#>   times in the data.
#> ℹ The impact on model accuracy should be negligible because these relative
#>   observation times are high enough to cause very limited right truncation.
#> ℹ The original relative observation times are available in
#>   `orig_relative_obs_time`.
#> ℹ Raise `obs_time_threshold` to avoid this behaviour.
head(delays)
#> # A tibble: 6 × 22
#>   ptime_lwr ptime_upr stime_lwr stime_upr obs_time  case  ptime delay stime
#>       <dbl>     <dbl>     <dbl>     <dbl>    <dbl> <int>  <dbl> <dbl> <dbl>
#> 1         0         1         5         6      120     1 0.0488  5.59  5.64
#> 2         0         1         9        10      120     2 0.0658  9.76  9.82
#> 3         0         1         8         9      120     3 0.219   7.90  8.12
#> 4         0         1        10        11      120     4 0.250  10.4  10.6
#> 5         0         1         4         5      120     5 0.301   3.98  4.28
#> 6         0         1         9        10      120     6 0.314   9.36  9.68
#> # ℹ 13 more variables: pdate_lwr <date>, pdate_upr <date>, sdate_lwr <date>,
#> #   sdate_upr <date>, obs_date <date>, pwindow <dbl>, swindow <dbl>,
#> #   relative_obs_time <dbl>, orig_relative_obs_time <dbl>, delay_lwr <dbl>,
#> #   delay_upr <dbl>, n <dbl>, delay_min <dbl>
Code
plot_events(linelist)
The primary and secondary event windows of 200 evenly spaced cases from the simulated outbreak, ordered by primary event time.

Figure 3.1: The primary and secondary event windows of 200 evenly spaced cases from the simulated outbreak, ordered by primary event time.

Now imagine several studies each analysing this outbreak at a different point in time, reporting integer date differences with no adjustment for right truncation, that is cens_adjusted = 0 and trunc_adjusted = FALSE. We mimic this by taking cases whose delay is less than a study specific cutoff, since a case with a longer delay would not yet have been observed by that study.

Code
naive_snapshot <- function(cutoff) {
  seen <- delays |>
    filter(.data$delay_upr <= cutoff) |>
    pull(delay_lwr)
  return(tibble(cutoff = cutoff, naive_mean = mean(seen), n = length(seen)))
}

true_mean <- exp(meanlog + sdlog^2 / 2)
bias_illustration <- map(c(4, 6, 8, 12, 16, 25), naive_snapshot) |>
  list_rbind()
Code
ggplot(bias_illustration, aes(x = cutoff, y = naive_mean)) +
  geom_line(col = "#56B4E9") +
  geom_point(col = "#56B4E9", size = 2) +
  geom_hline(yintercept = true_mean, linetype = "dashed") +
  labs(x = "Study cutoff (days)", y = "Naive mean delay (days)") +
  theme_minimal()
The naive mean delay from a snapshot taken with a given cutoff (points), compared to the true mean delay (dashed line). Studies analysing the outbreak earlier see a more heavily right truncated, and so more biased, sample of delays.

Figure 3.2: The naive mean delay from a snapshot taken with a given cutoff (points), compared to the true mean delay (dashed line). Studies analysing the outbreak earlier see a more heavily right truncated, and so more biased, sample of delays.

Real reviews collect studies that differ in how they measured delays and in what they chose to report. We build ten such studies from the same line list with simulate_study(), which works out which cases a study would have seen and what it would have measured from them. Each row of the design below is one study. Two of them report a mean and standard deviation with the covariance between the two, one adjusted for both biases and one adjusted for neither.

Click to expand for the study designs and the code to build the table
Code
set.seed(2)

# A study that stopped at a calendar date needs the growth rate of primary
# events over its collection window. The simulated outbreak grows more slowly
# than its rate parameter once it starts to deplete susceptibles, so we take
# the realised rate rather than the one we simulated with.
primary_counts <- as_tibble(delays) |>
  filter(.data$ptime_lwr < 20) |>
  count(day = .data$ptime_lwr)
accrual_growth_rate <- coef(
  glm(n ~ day, family = poisson, data = primary_counts)
)[["day"]]

study_designs <- tribble(
  ~study,            ~report,        ~probs,             ~cens_adjusted,
  "naive cohort",    "moments",      NA,                 0,
  "naive IQR",       "quantiles",    c(0.25, 0.5, 0.75), 0,
  "calendar stop",   "quantiles",    c(0.2, 0.5, 0.8),   0,
  "uniform window",  "moments",      NA,                 2,
  "midpoint",        "quantiles",    c(0.3, 0.6, 0.9),   3,
  "adjusted (MVN)",  "multivariate", NA,                 1,
  "naive (MVN)",     "multivariate", NA,                 0,
  "delays over 2d",  "moments",      NA,                 0,
  "mean and se",     "mean_se",      NA,                 0,
  "midpoint window", "moments",      NA,                 4
) |>
  mutate(
    trunc_adjusted = c(
      FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE
    ),
    relative_obs_time = c(12, 16, 20, 25, 30, Inf, 14, 18, 22, 26),
    trunc_design = c(
      "cohort", "cohort", "accrual", "cohort", "cohort", "cohort",
      "cohort", "cohort", "cohort", "cohort"
    ),
    delay_min = c(0, 0, 0, 0, 0, 0, 0, 2, 0, 0),
    growth_rate = c(0, 0, accrual_growth_rate, 0, 0, 0, 0, 0, 0, 0),
    n = c(180, 55, 240, 95, 40, 300, 150, 130, 25, 110)
  )

studies_table <- study_designs |>
  transmute(
    Study = study,
    Reports = case_when(
      report == "moments" ~ "mean, sd",
      report == "mean_se" ~ "mean with a standard error",
      report == "multivariate" ~ "mean, sd with their covariance",
      .default = paste0("quantiles at p = ", map_chr(probs, toString))
    ),
    Censoring = case_when(
      cens_adjusted == 0 ~ "0: date differences",
      cens_adjusted == 1 ~ "1: fully adjusted",
      cens_adjusted == 2 ~ "2: uniform window",
      cens_adjusted == 3 ~ "3: midpoint",
      .default = "4: midpoint primary, uniform secondary"
    ),
    Truncation = case_when(
      trunc_adjusted ~ "adjusted",
      trunc_design == "accrual" ~ "calendar stop",
      .default = "cohort cutoff"
    ),
    `Obs time` = relative_obs_time,
    `Min delay` = delay_min,
    N = n
  )
Code
knitr::kable(studies_table, caption = "The ten simulated studies, their estimation procedures and what each reports.")
Table 3.1: The ten simulated studies, their estimation procedures and what each reports.
Study Reports Censoring Truncation Obs time Min delay N
naive cohort mean, sd 0: date differences cohort cutoff 12 0 180
naive IQR quantiles at p = 0.25, 0.5, 0.75 0: date differences cohort cutoff 16 0 55
calendar stop quantiles at p = 0.2, 0.5, 0.8 0: date differences calendar stop 20 0 240
uniform window mean, sd 2: uniform window cohort cutoff 25 0 95
midpoint quantiles at p = 0.3, 0.6, 0.9 3: midpoint cohort cutoff 30 0 40
adjusted (MVN) mean, sd with their covariance 1: fully adjusted adjusted Inf 0 300
naive (MVN) mean, sd with their covariance 0: date differences cohort cutoff 14 0 150
delays over 2d mean, sd 0: date differences cohort cutoff 18 2 130
mean and se mean with a standard error 0: date differences cohort cutoff 22 0 25
midpoint window mean, sd 4: midpoint primary, uniform secondary cohort cutoff 26 0 110

simulate_study() takes the line list and the design of one study, so purrr::pmap() builds them one at a time from the rows of the design. as_epidist_estimates_data() takes the list and combines them. The same pattern works for a review, with one function that converts a row of the review to the summaries and metadata of a study.

Code
biased_estimates <- study_designs |>
  pmap(simulate_study, data = linelist, max_delay = 60) |>
  as_epidist_estimates_data()
#> ! "naive IQR" (row 3), "calendar stop" (row 6), and "midpoint" (row 11) report
#>   quantiles less than ten days above their smallest counted delay. Quantiles
#>   rounded to whole days that close to the origin carry a bias that a larger
#>   sample does not shrink.
#> ℹ See the Checks section of `?as_epidist_estimates_data`.
biased_estimates
#> # A tibble: 22 × 17
#>    study         type  value    se     n     p pwindow swindow relative_obs_time
#>    <chr>         <chr> <dbl> <dbl> <dbl> <dbl>   <dbl>   <dbl>             <dbl>
#>  1 naive cohort  mean   6.27    NA   180 NA          1       1                12
#>  2 naive cohort  sd     2.50    NA   180 NA          1       1                12
#>  3 naive IQR     quan…  4       NA    55  0.25       1       1                16
#>  4 naive IQR     quan…  6       NA    55  0.5        1       1                16
#>  5 naive IQR     quan…  9       NA    55  0.75       1       1                16
#>  6 calendar stop quan…  3       NA   240  0.2        1       1                20
#>  7 calendar stop quan…  5       NA   240  0.5        1       1                20
#>  8 calendar stop quan…  7       NA   240  0.8        1       1                20
#>  9 uniform wind… mean   6.99    NA    95 NA          1       1                25
#> 10 uniform wind… sd     3.79    NA    95 NA          1       1                25
#> # ℹ 12 more rows
#> # ℹ 8 more variables: trunc_adjusted <lgl>, trunc_design <chr>,
#> #   cens_adjusted <int>, delay_min <dbl>, growth_rate <dbl>,
#> #   growth_rate_sd <dbl>, max_delay <dbl>, mvn_id <chr>

max_delay sets how far the grid behind the implied summaries extends for a study that adjusted for right truncation, since nothing else bounds its delays. The default suits most delays, so raise it only for a delay with a long tail. We set it here, and simulate_study() passes it on to as_epidist_estimates_data(), where ?as_epidist_estimates_data.data.frame gives the default.

4 Fitting and comparing models

4.1 A bias-adjusted fit to the summaries alone

We convert the estimates to an epidist_meta_model object and fit it, exactly as we would fit any other epidist model.

Code
meta_summary_only <- as_epidist_meta_model(estimates = biased_estimates)
Code
fit_meta_summary <- epidist(
  data = meta_summary_only,
  chains = 2, cores = 2, iter = 1000,
  refresh = ifelse(interactive(), 250, 0),
  seed = 1,
  backend = "cmdstanr"
)
Code
summary(fit_meta_summary)
#>  Family: meta_lognormal
#>   Links: mu = identity; sigma = log
#> Formula: delay_lwr | weights(n) + vint(obs_type, study_n, trunc_adjusted, cens_adjusted, trunc_design, group_start, group_len, chol_start, n_quad, growth_known) + vreal(relative_obs_time, pwindow, swindow, delay_upr, delay_min, report_se, quantile_p, growth_rate) ~ 1
#>          sigma ~ 1
#>    Data: transformed_data (Number of observations: 10)
#>   Draws: 2 chains, each with iter = 1000; warmup = 500; thin = 1;
#>          total post-warmup draws = 1000
#>
#> Regression Coefficients:
#>                 Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> Intercept           1.81      0.01     1.79     1.84 1.00      938      747
#> sigma_Intercept    -0.74      0.02    -0.78    -0.69 1.00      898      630
#>
#> Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
#> and Tail_ESS are effective sample size measures, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).

summary() reports sigma on its log link scale. delay_parameter_draws() puts both parameters back on the scale the simulation used, and tidybayes::median_qi() summarises the draws.

Code
delay_parameter_draws(fit_meta_summary) |>
  ungroup() |>
  pivot_longer(c("mu", "sigma"), names_to = "parameter") |>
  group_by(.data$parameter) |>
  median_qi(value)
#> # A tibble: 2 × 7
#>   parameter value .lower .upper .width .point .interval
#>   <chr>     <dbl>  <dbl>  <dbl>  <dbl> <chr>  <chr>
#> 1 mu        1.81   1.79   1.84    0.95 median qi
#> 2 sigma     0.477  0.458  0.499   0.95 median qi

Even though every study is individually biased, the meta model recovers the simulated log mean of 1.8 and log standard deviation of 0.5 closely.

4.2 Allowing studies to differ

These ten studies measured one outbreak, so a single mu and sigma is the right model for them. A real review pools studies of different outbreaks, and some of its metadata will be wrong. A study level random effect on both parameters, (1 | study), lets each study depart from the population value. The between study standard deviations get normal(0, 0.25) priors rather than the wide brms default. init = 0.5 narrows where the chains start, because the default can start a study’s sigma where the model is not finite.

Code
fit_meta_summary_study <- epidist(
  data = meta_summary_only,
  formula = bf(mu ~ 1 + (1 | study), sigma ~ 1 + (1 | study)),
  prior = prior(normal(0, 0.25), class = "sd") +
    prior(normal(0, 0.25), class = "sd", dpar = "sigma"),
  init = 0.5,
  chains = 2, cores = 2, iter = 1000,
  refresh = ifelse(interactive(), 250, 0),
  seed = 1,
  backend = "cmdstanr"
)
Code
fit_meta_summary_study
#>  Family: meta_lognormal
#>   Links: mu = identity; sigma = log
#> Formula: delay_lwr | weights(n) + vint(obs_type, study_n, trunc_adjusted, cens_adjusted, trunc_design, group_start, group_len, chol_start, n_quad, growth_known) + vreal(relative_obs_time, pwindow, swindow, delay_upr, delay_min, report_se, quantile_p, growth_rate) ~ (1 | study)
#>          sigma ~ 1 + (1 | study)
#>    Data: transformed_data (Number of observations: 10)
#>   Draws: 2 chains, each with iter = 1000; warmup = 500; thin = 1;
#>          total post-warmup draws = 1000
#>
#> Multilevel Hyperparameters:
#> ~study (Number of levels: 10)
#>                     Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> sd(Intercept)           0.03      0.02     0.00     0.09 1.00      297      357
#> sd(sigma_Intercept)     0.08      0.05     0.00     0.21 1.00      296      307
#>
#> Regression Coefficients:
#>                 Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> Intercept           1.82      0.02     1.77     1.86 1.00      499      445
#> sigma_Intercept    -0.73      0.04    -0.81    -0.63 1.01      480      494
#>
#> Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
#> and Tail_ESS are effective sample size measures, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).

re_formula = NA switches the study term off, giving the population level delay, which we compare with the fit without the term. Figure 4.1 shows the delay distribution each fit implies.

Click to expand for code to prepare the study term plot
Code
population <- epidist_newdata(meta_summary_only)
delay_grid <- seq(0, 40, by = 0.25)

lognormal_band <- function(fit, n = 200) {
  draws <- delay_parameter_draws(
    fit, newdata = population, re_formula = NA
  ) |>
    ungroup()
  out <- draws |>
    slice_sample(n = min(n, nrow(draws))) |>
    mutate(curve = row_number()) |>
    reframe(
      x = delay_grid,
      y = dlnorm(delay_grid, meanlog = .data$mu, sdlog = .data$sigma),
      .by = "curve"
    ) |>
    group_by(.data$x) |>
    median_qi(y, .width = 0.9)
  return(out)
}

study_term_band <- list(
  "mu ~ 1" = fit_meta_summary,
  "mu ~ 1 + (1 | study)" = fit_meta_summary_study
) |>
  map(lognormal_band) |>
  list_rbind(names_to = "model")

true_curve <- tibble(
  x = delay_grid, y = dlnorm(delay_grid, meanlog = meanlog, sdlog = sdlog)
)

p_study_term <- ggplot() +
  geom_ribbon(
    data = study_term_band,
    aes(x = x, ymin = .lower, ymax = .upper, fill = model), alpha = 0.25
  ) +
  geom_line(
    data = study_term_band, aes(x = x, y = y, colour = model),
    linewidth = 0.7
  ) +
  geom_line(data = true_curve, aes(x = x, y = y), linetype = "dashed") +
  scale_colour_brewer(palette = "Set2", aesthetics = c("colour", "fill")) +
  labs(x = "Delay (days)", y = "Density", colour = NULL, fill = NULL) +
  theme_minimal() +
  theme(legend.position = "bottom")
Code
p_study_term
The delay distribution implied by the fits with and without a study term. Lines are the posterior median density and bands the 90% interval. The dashed line is the simulated lognormal.

Figure 4.1: The delay distribution implied by the fits with and without a study term. Lines are the posterior median density and bands the 90% interval. The dashed line is the simulated lognormal.

The term widens the band, which is the price of allowing for differences between studies that here do not exist.

4.3 What happens with the wrong metadata

Whether a study corrected for right truncation is the field reviews most often leave out, so we refit the same ten studies with every one of them relabelled as trunc_adjusted = TRUE.

Code
wrong_flags_estimates <- biased_estimates
wrong_flags_estimates$trunc_adjusted <- TRUE
meta_wrong_flags <- as_epidist_meta_model(estimates = wrong_flags_estimates)
Code
fit_meta_wrong_flags <- epidist(
  data = meta_wrong_flags,
  chains = 2, cores = 2, iter = 1000,
  refresh = ifelse(interactive(), 250, 0),
  seed = 1,
  backend = "cmdstanr"
)
Code
summary(fit_meta_wrong_flags)
#>  Family: meta_lognormal
#>   Links: mu = identity; sigma = log
#> Formula: delay_lwr | weights(n) + vint(obs_type, study_n, trunc_adjusted, cens_adjusted, trunc_design, group_start, group_len, chol_start, n_quad, growth_known) + vreal(relative_obs_time, pwindow, swindow, delay_upr, delay_min, report_se, quantile_p, growth_rate) ~ 1
#>          sigma ~ 1
#>    Data: transformed_data (Number of observations: 10)
#>   Draws: 2 chains, each with iter = 1000; warmup = 500; thin = 1;
#>          total post-warmup draws = 1000
#>
#> Regression Coefficients:
#>                 Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> Intercept           1.76      0.01     1.74     1.79 1.00      859      701
#> sigma_Intercept    -0.83      0.02    -0.87    -0.79 1.00      767      627
#>
#> Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
#> and Tail_ESS are effective sample size measures, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).

The model has no way to know the metadata is wrong, so it takes each reported summary as an estimate of the untruncated delay and converges confidently on a mean several percent too short.

4.4 A mixed fit: summaries plus individual records

Now suppose one site also shared its line list. We add 300 individual records, observed up to day 40, alongside the same ten published summaries. Individual records keep any study column they arrive with, and are labelled "individual" when they have none, so the study term above extends to line lists from several sites.

Code
individual_data <- linelist |>
  filter(.data$stime_upr <= 40) |>
  mutate(obs_time = 40) |>
  slice_sample(n = 300)

meta_mixed <- as_epidist_meta_model(
  individual_data,
  estimates = biased_estimates
)
#> ! Setting 3 relative observation times (`relative_obs_time`) greater than 38
#>   (2x the maximum delay) to Inf.
#> ℹ This improves model efficiency by reducing the number of unique observation
#>   times in the data.
#> ℹ The impact on model accuracy should be negligible because these relative
#>   observation times are high enough to cause very limited right truncation.
#> ℹ The original relative observation times are available in
#>   `orig_relative_obs_time`.
#> ℹ Raise `obs_time_threshold` to avoid this behaviour.
Code
fit_meta_mixed <- epidist(
  data = meta_mixed,
  chains = 2, cores = 2, iter = 1000,
  refresh = ifelse(interactive(), 250, 0),
  seed = 1,
  backend = "cmdstanr"
)
Code
summary(fit_meta_mixed)
#>  Family: meta_lognormal
#>   Links: mu = identity; sigma = log
#> Formula: delay_lwr | weights(n) + vint(obs_type, study_n, trunc_adjusted, cens_adjusted, trunc_design, group_start, group_len, chol_start, n_quad, growth_known) + vreal(relative_obs_time, pwindow, swindow, delay_upr, delay_min, report_se, quantile_p, growth_rate) ~ 1
#>          sigma ~ 1
#>    Data: transformed_data (Number of observations: 192)
#>   Draws: 2 chains, each with iter = 1000; warmup = 500; thin = 1;
#>          total post-warmup draws = 1000
#>
#> Regression Coefficients:
#>                 Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> Intercept           1.82      0.01     1.79     1.85 1.00      828      577
#> sigma_Intercept    -0.73      0.02    -0.77    -0.69 1.01      631      447
#>
#> Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
#> and Tail_ESS are effective sample size measures, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).

4.5 Reference: the marginal model on the full line list

As a reference, we fit the marginal model (vignette("epidist")) to the whole, effectively untruncated, line list. This is what we would recover with access to every underlying delay rather than to published summaries. The marginal model groups identical rows, so the whole line list costs little more to fit than a sample of it.

Code
fit_reference <- epidist(
  data = delays,
  chains = 2, cores = 2, iter = 1000,
  refresh = ifelse(interactive(), 250, 0),
  seed = 1,
  backend = "cmdstanr"
)

4.6 Comparing the fits

Click to expand for code to prepare the comparison plot
Code
predicted_parameters <- list(
  "adjusted (summary only)" = fit_meta_summary,
  "adjusted (study term)" = fit_meta_summary_study,
  "truncation ignored" = fit_meta_wrong_flags,
  mixed = fit_meta_mixed
) |>
  map(delay_summary_draws, newdata = population, re_formula = NA) |>
  c(list("reference (marginal)" = delay_summary_draws(fit_reference))) |>
  map(ungroup) |>
  list_rbind(names_to = "model") |>
  mutate(model = factor(
    model,
    levels = c(
      "truncation ignored", "adjusted (summary only)",
      "adjusted (study term)", "mixed", "reference (marginal)"
    )
  ))

true_sd <- true_mean * sqrt(exp(sdlog^2) - 1)
true_params <- tibble(
  parameter = c("mu", "sigma", "mean", "sd"),
  value = c(meanlog, sdlog, true_mean, true_sd)
)

p_compare <- predicted_parameters |>
  pivot_longer(
    cols = c(mu, sigma, mean, sd),
    names_to = "parameter", values_to = "value"
  ) |>
  ggplot() +
  geom_density(aes(x = value, fill = model), alpha = 0.5) +
  geom_vline(
    data = true_params, aes(xintercept = value),
    linetype = "dashed", linewidth = 1
  ) +
  facet_wrap(~parameter, scales = "free") +
  scale_fill_brewer(palette = "Set2") +
  labs(x = "", y = "", fill = NULL) +
  guides(fill = guide_legend(nrow = 2)) +
  theme_minimal() +
  theme(legend.position = "bottom")
Code
p_compare
Posterior draws of the delay distribution parameters from the five fits, compared to the true values used in the simulation (dashed lines). The bias-adjusted, mixed, and reference fits agree closely with the truth. The fit told that every study had adjusted for right truncation does not.

Figure 4.2: Posterior draws of the delay distribution parameters from the five fits, compared to the true values used in the simulation (dashed lines). The bias-adjusted, mixed, and reference fits agree closely with the truth. The fit told that every study had adjusted for right truncation does not.

5 Real world estimates from epireview

epireview (Naidoo et al. 2025) collates published parameter estimates gathered by the Pathogen Epidemiology Review Group. It is not on CRAN, and so we install it from the mrc-ide r-universe.

Code
library(epireview) # nolint: library_call_linter.

We use the onset to death delay from the Ebola data.

Code
ebola_params <- as_tibble(suppressMessages(load_epidata("ebola"))$params)
ebola_params
#> # A tibble: 1,225 × 78
#>    id     parameter_data_id covidence_id pathogen parameter_type parameter_value
#>    <chr>  <chr>                    <int> <chr>    <chr>                    <dbl>
#>  1 b6168… 6f5cb18602d0dfec…           30 Ebola v… Human delay -…           NA
#>  2 b6168… b5af335082c4306f…           30 Ebola v… Reproduction …           NA
#>  3 b6168… 55766cedfbf75a9c…           30 Ebola v… Human delay -…           NA
#>  4 0a142… 3ae1f6b55d0f1cc5…           41 Ebola v… Human delay -…            9.2
#>  5 0a142… 22dc037c9e54b6fa…           41 Ebola v… Severity - ca…           60
#>  6 0a142… f0a0191af0663265…           41 Ebola v… Human delay -…            5.8
#>  7 0a142… a83683d0b55750df…           41 Ebola v… Human delay -…           10.6
#>  8 0a142… e8f4a1705568196f…           41 Ebola v… Risk factors             NA
#>  9 67ddf… 5a0a4b5bc6b84974…           45 Ebola v… Severity - ca…           63
#> 10 67ddf… d6d1c36e511e050b…           45 Ebola v… Reproduction …            1.73
#> # ℹ 1,215 more rows
#> # ℹ 72 more variables: exponent <int>, parameter_unit <chr>,
#> #   parameter_lower_bound <dbl>, parameter_upper_bound <dbl>,
#> #   parameter_value_type <chr>, parameter_uncertainty_single_value <dbl>,
#> #   parameter_uncertainty_singe_type <chr>,
#> #   parameter_uncertainty_lower_value <dbl>,
#> #   parameter_uncertainty_upper_value <dbl>, …

epireview records one value per estimate with its type, so we keep the means and medians reported in days with no scaling exponent, and drop inverse rates.

Code
onset_to_death <- ebola_params |>
  filter(
    .data$parameter_type_short == "delay_onset_to_death",
    !is.na(.data$parameter_value),
    !is.na(.data$population_sample_size),
    .data$parameter_value_type %in% c("Mean", "Median"),
    .data$parameter_unit == "Days",
    .data$exponent == 0,
    !.data$inverse_param
  )

shown <- c(
  "article_label", "parameter_value_type", "parameter_value",
  "parameter_unit", "exponent", "inverse_param", "population_sample_size"
)
select(onset_to_death, all_of(shown))
#> # A tibble: 29 × 7
#>    article_label    parameter_value_type parameter_value parameter_unit exponent
#>    <chr>            <chr>                          <dbl> <chr>             <int>
#>  1 Xu 2016          Mean                            8.6  Days                  0
#>  2 Uyeki 2016       Median                         14    Days                  0
#>  3 Senga 2016 (1)   Mean                           11.1  Days                  0
#>  4 Schieffelin 2014 Mean                            9.79 Days                  0
#>  5 Nanclares 2016   Median                          9    Days                  0
#>  6 Qureshi 2015     Mean                            8.9  Days                  0
#>  7 Mupapa 1999      Mean                            8    Days                  0
#>  8 Muoghalu 2017    Mean                            6.7  Days                  0
#>  9 Li 2016 (a)      Median                          4    Days                  0
#> 10 Rosello 2015 (1) Mean                            9.47 Days                  0
#> # ℹ 19 more rows
#> # ℹ 2 more variables: inverse_param <lgl>, population_sample_size <int>

5.1 Adjusting for the phase of the outbreak

An estimate made while an outbreak is still growing is right truncated and biased towards shorter delays, because the long delays have not yet been observed. vignette("model") sets out the bias and vignette("epidist") shows the marginal model correcting for it. Correcting for it here needs the observation time of each study, which epireview does not record. It does record the phase of the outbreak an estimate was made in, so we adjust for that instead and let the size of the bias be estimated from the studies.

We make the post outbreak studies the reference level. The intercept is then the retrospective delay, and each coefficient is the shift in the other groups.

Code
onset_to_death <- onset_to_death |>
  mutate(
    phase = case_when(
      .data$method_moment_value == "Post outbreak" ~ "post outbreak",
      .data$method_moment_value %in% c("Start outbreak", "Mid outbreak") ~
        "during outbreak",
      .default = "unrecorded"
    ),
    phase = factor(
      .data$phase,
      levels = c("post outbreak", "during outbreak", "unrecorded")
    )
  )
count(onset_to_death, phase)
#> # A tibble: 3 × 2
#>   phase               n
#>   <fct>           <int>
#> 1 post outbreak       7
#> 2 during outbreak     2
#> 3 unrecorded         20

epidist_estimates_epireview() turns each record into the rows as_epidist_estimates_data() expects, such as a mean with its standard deviation or a median with its interquartile range. epireview does not record how a study adjusted for censoring either, so we assume every study summarised integer date differences (cens_adjusted = 0). Without observation times every study is treated as adjusted for right truncation, and the phase term stands in. The metadata argument overrides these assumptions for individual studies, and keep carries the phase covariate onto the rows. See ?epidist_estimates_epireview for how each kind of record is converted.

Code
ebola_estimates <- epidist_estimates_epireview(
  onset_to_death,
  trunc_adjusted = TRUE,
  relative_obs_time = Inf,
  cens_adjusted = 0,
  keep = "phase"
)
#> ℹ No `pwindow` column supplied, assuming a censoring window of 1 (daily
#>   reporting) for every study.
#> ℹ No `swindow` column supplied, assuming a censoring window of 1 (daily
#>   reporting) for every study.
#> ℹ No max_delay column supplied, using the delay beyond which 1% of the second
#>   moment of a lognormal matched to each study's summaries lies (at least 10 and
#>   at most twenty times the largest reported value, in whole secondary windows)
#>   as the grid cutoff, or five times the largest reported value where nothing
#>   can be matched. Raise it if the delay has a longer tail than that, and lower
#>   it to speed up fitting.
#> ! "Nanclares 2016" (row 7), "Li 2016 (a)" (row 14), "Khan 1999" (row 27),
#>   "Camacho 2014" (row 35), "Baron 1983" (row 36), "Bah 2015" (row 38),
#>   "Miglietta 2019" (row 43), and "Nsio 2019" (row 44) report quantiles less
#>   than ten days above their smallest counted delay. Quantiles rounded to whole
#>   days that close to the origin carry a bias that a larger sample does not
#>   shrink.
#> ! "Muoghalu 2017" (row 13), "Rosello 2015 (2)" (row 18), "Maganga 2014" (row
#>   24), and "Folarin 2016" (row 30) report a standard deviation whose relative
#>   standard error is above 0.25 under the lognormal tail their mean implies. A
#>   sampling error that large is far from normal, so the likelihood of the
#>   standard deviation cannot be trusted.
#> ℹ See the Checks section of `?as_epidist_estimates_data`.
ebola_estimates
#> # A tibble: 45 × 18
#>    study         type  value    se     n     p pwindow swindow relative_obs_time
#>    <chr>         <chr> <dbl> <dbl> <dbl> <dbl>   <dbl>   <dbl>             <dbl>
#>  1 Xu 2016       mean   8.6   NA      76 NA          1       1               Inf
#>  2 Xu 2016       sd     4.8   NA      76 NA          1       1               Inf
#>  3 Uyeki 2016    quan… 14     NA       5  0.5        1       1               Inf
#>  4 Senga 2016 (… mean  11.1   NA      92 NA          1       1               Inf
#>  5 Schieffelin … mean   9.79   0.7    38 NA          1       1               Inf
#>  6 Nanclares 20… quan…  9     NA      25  0.5        1       1               Inf
#>  7 Nanclares 20… quan…  7     NA      25  0.25       1       1               Inf
#>  8 Nanclares 20… quan… 12     NA      25  0.75       1       1               Inf
#>  9 Qureshi 2015  mean   8.9   NA      70 NA          1       1               Inf
#> 10 Qureshi 2015  sd     3.8   NA      70 NA          1       1               Inf
#> # ℹ 35 more rows
#> # ℹ 9 more variables: trunc_adjusted <lgl>, trunc_design <chr>,
#> #   cens_adjusted <int>, delay_min <dbl>, growth_rate <dbl>,
#> #   growth_rate_sd <dbl>, max_delay <dbl>, mvn_id <chr>, phase <fct>

We fit a Gamma, which is the family most of these studies fitted, with a (1 | study) term on both the mean and the shape. The term allows for real heterogeneity across outbreaks and Ebola species, and for studies whose metadata we have got wrong.

Ebola onset to death is thought to take roughly 7 to 14 days, so the intercept prior is centred on ten days, and a prior on the log shape centred on log(2) covers the spreads reported. Studies may differ by about a quarter on the log scale, so the between study standard deviations get normal(0, 0.25), and the phase coefficients get normal(0, 0.5) so that two studies cannot move the contrast without limit. epidist_prior() shows the priors the model will use.

Code
ebola_prior <- prior(normal(log(10), 0.5), class = "Intercept") +
  prior(normal(log(2), 0.5), class = "Intercept", dpar = "shape") +
  prior(normal(0, 0.5), class = "b") +
  prior(normal(0, 0.25), class = "sd") +
  prior(normal(0, 0.25), class = "sd", dpar = "shape")

ebola_meta <- as_epidist_meta_model(estimates = ebola_estimates)
ebola_formula <- bf(mu ~ 1 + phase + (1 | study), shape ~ 1 + (1 | study))
ebola_family <- epidist_family(ebola_meta, family = Gamma(link = "log"))

epidist_prior(
  ebola_meta,
  family = ebola_family,
  formula = epidist_formula(ebola_meta, ebola_family, formula = ebola_formula),
  prior = ebola_prior
)
#>                 prior     class coef group resp  dpar nlpar   lb   ub source
#>  normal(log(10), 0.5) Intercept                             <NA> <NA>   user
#>       normal(0, 0.25)        sd                             <NA> <NA>   user
#>       normal(0, 0.25)        sd                 shape       <NA> <NA>   user
#>   normal(log(2), 0.5) Intercept                 shape       <NA> <NA>   user
#>        normal(0, 0.5)         b                             <NA> <NA>   user
#>   tag
#>  <NA>
#>  <NA>
#>  <NA>
#>  <NA>
#>  <NA>

init = 0.5 is passed for the same reason as above.

Code
fit_ebola <- epidist(
  data = ebola_meta,
  formula = ebola_formula,
  family = Gamma(link = "log"),
  prior = ebola_prior,
  init = 0.5,
  chains = 2, cores = 2, iter = 1000,
  refresh = ifelse(interactive(), 250, 0),
  seed = 1,
  backend = "cmdstanr"
)
Code
summary(fit_ebola)
#>  Family: meta_gamma
#>   Links: mu = log; shape = log
#> Formula: delay_lwr | weights(n) + vint(obs_type, study_n, trunc_adjusted, cens_adjusted, trunc_design, group_start, group_len, chol_start, n_quad, growth_known) + vreal(relative_obs_time, pwindow, swindow, delay_upr, delay_min, report_se, quantile_p, growth_rate) ~ phase + (1 | study)
#>          shape ~ 1 + (1 | study)
#>    Data: transformed_data (Number of observations: 29)
#>   Draws: 2 chains, each with iter = 1000; warmup = 500; thin = 1;
#>          total post-warmup draws = 1000
#>
#> Multilevel Hyperparameters:
#> ~study (Number of levels: 29)
#>                     Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> sd(Intercept)           0.14      0.03     0.08     0.21 1.00      266      611
#> sd(shape_Intercept)     0.53      0.10     0.35     0.76 1.00      398      543
#>
#> Regression Coefficients:
#>                     Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> Intercept               2.24      0.06     2.12     2.36 1.01      478      717
#> shape_Intercept         1.28      0.15     1.00     1.57 1.00      343      649
#> phaseduringoutbreak     0.05      0.13    -0.18     0.33 1.00      635      552
#> phaseunrecorded        -0.02      0.07    -0.16     0.11 1.00      492      572
#>
#> Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
#> and Tail_ESS are effective sample size measures, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).

These estimates should not be used as they stand. The estimation approach of every study was assumed rather than checked against its paper, which a publication quality meta analysis would have to do. Only two studies record having been made during an outbreak, so the phase contrast is weak. The unrecorded group mixes studies where the field is missing with studies where it is unspecified, so the term absorbs whatever separates the groups, which need not be truncation alone. See Charniga et al. (2024) for the metadata future studies and reviews should report, and andv-linelist-analysis (the Epuyén Andes virus outbreak) and bdbv-linelist-analysis (the 2012 Isiro Bundibugyo Ebola outbreak) for examples of the checklist in use.

5.2 The population level delay and the size of the phase bias

Switching the (1 | study) term off with re_formula = NA gives the population level delay, the one the studies are estimates of rather than any single study’s own. We report the Gamma shape and scale alongside the mean and standard deviation they imply.

Code
phase_grid <- epidist_newdata(ebola_meta, phase)

population_draws <- delay_summary_draws(
  fit_ebola, newdata = phase_grid, re_formula = NA
) |>
  ungroup()

population_draws |>
  filter(.data$phase == "post outbreak") |>
  mutate(scale = .data$mean / .data$shape) |>
  pivot_longer(c("shape", "scale", "mean", "sd"), names_to = "parameter") |>
  group_by(.data$parameter) |>
  median_qi(value)
#> # A tibble: 4 × 7
#>   parameter value .lower .upper .width .point .interval
#>   <chr>     <dbl>  <dbl>  <dbl>  <dbl> <chr>  <chr>
#> 1 mean       9.44   8.34  10.6    0.95 median qi
#> 2 scale      2.65   1.90   3.59   0.95 median qi
#> 3 sd         5.01   4.07   5.99   0.95 median qi
#> 4 shape      3.56   2.72   4.80   0.95 median qi

The phase bias is the contrast between each phase and the retrospective reference. marginaleffects::comparisons() gives it as a ratio of mean delays, and its draws give the posterior probability that estimates made during an outbreak are shorter.

Code
phase_ratio <- marginaleffects::comparisons(
  fit_ebola,
  variables = "phase",
  newdata = filter(phase_grid, .data$phase == "post outbreak"),
  re_formula = NA,
  comparison = "ratio"
)
phase_ratio
#>
#>                         Contrast Estimate 2.5 % 97.5 %
#>  during outbreak / post outbreak    1.054 0.833   1.39
#>  unrecorded / post outbreak         0.979 0.856   1.12
#>
#> Term: phase
#> Type: response

marginaleffects::get_draws(phase_ratio) |>
  summarise(
    `P(shorter)` = mean(.data$draw < 1),
    `P(shorter by over 10%)` = mean(.data$draw < 0.9),
    .by = "contrast"
  )
#>                          contrast P(shorter) P(shorter by over 10%)
#> 1 during outbreak / post outbreak      0.323                  0.089
#> 2      unrecorded / post outbreak      0.624                  0.111

5.3 Does any one study drive the estimate?

epidist_meta_leave_one_out() refits the model once per study with that study removed. Each refit costs as much as the full fit, so we hold out only the five largest studies, which carry the most weight, and refit with 500 iterations. We compare the population level delay at the post outbreak reference level.

Code
largest_studies <- ebola_estimates |>
  as.data.frame() |>
  summarise(n = max(.data$n), .by = "study") |>
  slice_max(.data$n, n = 5, with_ties = FALSE) |>
  pull("study")

ebola_leave_one_out <- epidist_meta_leave_one_out(
  fit_ebola,
  newdata = filter(phase_grid, .data$phase == "post outbreak"),
  studies = largest_studies,
  iter = 500,
  refresh = ifelse(interactive(), 250, 0)
)

difference is each refit’s posterior relative to the full fit’s median.

Code
ebola_leave_one_out |>
  select("study", "summary", starts_with("difference"))
#> # A tibble: 10 × 5
#>    study            summary difference difference_lower difference_upper
#>    <chr>            <chr>        <dbl>            <dbl>            <dbl>
#>  1 Faye 2015 (b)    mean      -0.0263            -1.16             1.26
#>  2 Faye 2015 (b)    sd         0.0104            -0.953            0.892
#>  3 Aylward 2014     mean      -0.0920            -1.26             0.995
#>  4 Aylward 2014     sd        -0.317             -1.01             0.538
#>  5 Miglietta 2019   mean      -0.0523            -1.04             1.12
#>  6 Miglietta 2019   sd        -0.111             -0.976            0.821
#>  7 Rosello 2015 (1) mean      -0.0903            -1.18             1.46
#>  8 Rosello 2015 (1) sd        -0.00997           -1.04             1.27
#>  9 Khan 1999        mean      -0.180             -1.18             1.26
#> 10 Khan 1999        sd        -0.111             -1.02             0.896
Code
ggplot(ebola_leave_one_out) +
  geom_vline(xintercept = 0, linetype = "dashed") +
  geom_pointrange(
    aes(
      x = difference, xmin = difference_lower, xmax = difference_upper,
      y = study
    )
  ) +
  facet_wrap(vars(summary), scales = "free_x") +
  labs(x = "Difference from the full fit (days)", y = "Study held out") +
  theme_minimal()
Posterior median and 95% interval of the delay mean and standard deviation with each of the five largest studies held out, relative to the full fit's median.

Figure 5.1: Posterior median and 95% interval of the delay mean and standard deviation with each of the five largest studies held out, relative to the full fit’s median.

5.4 Comparing with a modern re-analysis of the same line list

Rosello 2015 (3) is the 2012 Isiro outbreak, and that line list has since been re-analysed in bdbv-linelist-analysis from the individual records, adjusting for double interval censoring. The outbreak had closed before the line list was published, so the delays are not truncated and the re-analysis is the closest thing to a ground truth for any study we fitted to. It reports onset to death as a convolution of its fitted onset to admission and admission to death delays, and we match a Gamma to each of 1000 posterior draws of that convolution.

Code
# 1000 draws of the convolution's mean and standard deviation, subsampled
# from the output/posterior_gamma.csv the project releases
bdbv <- read.csv("bdbv-onset-to-death.csv") |>
  mutate(shape = (.data$mean / .data$sd)^2, scale = .data$sd^2 / .data$mean)

isiro_reported <- ebola_estimates |>
  filter(.data$study == "Rosello 2015 (3)") |>
  as.data.frame() |>
  select("type", "value") |>
  pivot_wider(names_from = "type", values_from = "value") |>
  mutate(shape = (.data$mean / .data$sd)^2, scale = .data$sd^2 / .data$mean)

isiro_draws <- epidist_strata(fit_ebola) |>
  filter(.data$study == "Rosello 2015 (3)") |>
  delay_summary_draws(object = fit_ebola) |>
  ungroup()

The mean and standard deviation of the delay, four ways.

Code
interval <- function(draws, source) {
  out <- draws |>
    pivot_longer(c("mean", "sd"), names_to = "parameter") |>
    group_by(.data$parameter) |>
    median_qi(value) |>
    transmute(
      source = source,
      parameter = .data$parameter,
      value = sprintf("%.2f (%.2f, %.2f)", value, .lower, .upper)
    )
  return(out)
}

bind_rows(
  tibble(
    source = "as reported by Rosello 2015 (3)",
    parameter = c("mean", "sd"),
    value = sprintf("%.2f", c(isiro_reported$mean, isiro_reported$sd))
  ),
  interval(isiro_draws, "Rosello 2015 (3), study level"),
  interval(
    filter(population_draws, .data$phase == "post outbreak"),
    "meta model, population level"
  ),
  interval(bdbv, "re-analysis of the line list")
) |>
  pivot_wider(names_from = "parameter", values_from = "value")
#> # A tibble: 4 × 3
#>   source                          mean                sd
#>   <chr>                           <chr>               <chr>
#> 1 as reported by Rosello 2015 (3) 11.37               5.41
#> 2 Rosello 2015 (3), study level   10.73 (9.34, 12.65) 5.27 (4.10, 7.16)
#> 3 meta model, population level    9.44 (8.34, 10.60)  5.01 (4.07, 5.99)
#> 4 re-analysis of the line list    11.76 (9.31, 15.06) 6.57 (4.88, 9.44)
Click to expand for code to prepare the comparison plot
Code
density_band <- function(draws, source, n = 200) {
  out <- draws |>
    slice_sample(n = min(n, nrow(draws))) |>
    mutate(curve = row_number()) |>
    reframe(
      x = delay_grid,
      y = dgamma(delay_grid, shape = .data$shape, scale = .data$scale),
      .by = "curve"
    ) |>
    group_by(.data$x) |>
    median_qi(y) |>
    mutate(source = source)
  return(out)
}

post_outbreak_draws <- population_draws |>
  filter(.data$phase == "post outbreak") |>
  mutate(scale = .data$mean / .data$shape)

comparison_band <- bind_rows(
  density_band(
    mutate(isiro_draws, scale = .data$mean / .data$shape),
    "Rosello 2015 (3), study level"
  ),
  density_band(post_outbreak_draws, "meta model, population level"),
  density_band(bdbv, "re-analysis of the line list")
)

reported_curve <- tibble(
  x = delay_grid,
  y = dgamma(
    delay_grid, shape = isiro_reported$shape, scale = isiro_reported$scale
  )
)

p_bdbv <- ggplot() +
  geom_ribbon(
    data = comparison_band,
    aes(x = x, ymin = .lower, ymax = .upper, fill = source), alpha = 0.25
  ) +
  geom_line(
    data = comparison_band, aes(x = x, y = y, colour = source),
    linewidth = 0.7
  ) +
  geom_line(
    data = reported_curve,
    aes(x = x, y = y, linetype = "as reported by Rosello 2015 (3)"),
    colour = "black", linewidth = 0.7
  ) +
  scale_colour_brewer(palette = "Set2", aesthetics = c("colour", "fill")) +
  scale_linetype_manual(values = "dashed") +
  labs(
    x = "Onset to death delay (days)", y = "Density",
    colour = NULL, fill = NULL, linetype = NULL
  ) +
  theme_minimal() +
  theme(legend.position = "bottom", legend.box = "vertical")
Code
p_bdbv
Rosello et al. (2015). The bands are 95% posterior intervals of the density from the meta model for the Rosello 2015 (3) study, from the meta model at population level with the (1 | study) term switched off, and from the re-analysis of the same line list." src="data:image/png;base64,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" alt="The Isiro onset to death delay, four ways. The dashed line is the Gamma reported by Rosello et al. (2015). The bands are 95% posterior intervals of the density from the meta model for the Rosello 2015 (3) study, from the meta model at population level with the (1 | study) term switched off, and from the re-analysis of the same line list." />

Figure 5.2: The Isiro onset to death delay, four ways. The dashed line is the Gamma reported by Rosello et al. (2015). The bands are 95% posterior intervals of the density from the meta model for the Rosello 2015 (3) study, from the meta model at population level with the (1 | study) term switched off, and from the re-analysis of the same line list.

The study level estimate is shrunk from the reported Gamma towards the population mean by the (1 | study) term on the mean, and keeps the study’s own spread through the term on the shape. The population level estimate is shorter than the re-analysis. Most studies carry no usable truncation metadata, so their estimates are taken as adjusted, and the population estimate pools outbreaks that differ.

6 Learning more

References

Abbott, Sam, Sam Brand, James Mba Azam, Carl Pearson, Sebastian Funk, and Kelly Charniga. 2025. Primarycensored: Primary Event Censored Distributions. https://doi.org/10.5281/zenodo.13632839.
Charniga, Kelly, Sang Woo Park, Andrei R. Akhmetzhanov, et al. 2024. “Best Practices for Estimating and Reporting Epidemiological Delay Distributions of Infectious Diseases.” PLOS Computational Biology 20 (10): 1–21. https://doi.org/10.1371/journal.pcbi.1012520.
Naidoo, Tristan, Rebecca Nash, Christian Morgenstern, et al. 2025. Epireview: Tools to Update and Summarise the Latest Pathogen Data from the Pathogen Epidemiology Review Group (PERG). https://github.com/mrc-ide/epireview.
Park, Sang Woo, Andrei R. Akhmetzhanov, Kelly Charniga, et al. 2024. “Estimating Epidemiological Delay Distributions for Infectious Diseases.” medRxiv, ahead of print. https://doi.org/10.1101/2024.01.12.24301247.
Rosello, Alicia, Mathias Mossoko, Stefan Flasche, et al. 2015. “Ebola Virus Disease in the Democratic Republic of the Congo, 1976-2014.” eLife 4: e09015. https://doi.org/10.7554/eLife.09015.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.