# Example to estimate incubation period In epitrix: Small Helpers and Tricks for Epidemics Analysis

```knitr::opts_chunk\$set(
collapse = TRUE,
comment = "#>",
fig.width=7,
fig.height=5,
fig.path="figs-overview/"
)
```

# Description

This package contains two functions useful to compute the incubation period distribution from outbreak data. The inputs needed for each patient are given as a `data.frame` or `linelist` object and must contain:

• the date of onset of symptoms
• a list/vector of possible dates of exposure.

The function `empirical_incubation_dist()` computes the discrete probability distribution by giving equal weight to each patient. Thus, in the case of `N` patients, the `n` possible exposure dates of a given patient get the overall weight `1/(n*N)`. The function returns a data frame with column `incubation_period` containing the different incubation periods with a time step of one day and their `relative_frequency`.

The function `fit_gamma_incubation_dist()` takes the same inputs, but directly samples from the empirical distribution and fits a discrete gamma distribution to it by the means of `fit_disc_gamma`.

# Example

```library(magrittr)
library(epitrix)
library(distcrete)
library(ggplot2)
```

Make a linelist object containing toy data with several possible exposure dates for each case:

```ll <- sim_linelist(15)

x <- 0:15
y <- distcrete("gamma", 1, shape = 12, rate = 3, w = 0)\$d(x)
mkexposures <- function(i) {
i - sample(x, size = sample.int(5, size = 1), replace = FALSE, prob = y)
}
exposures <- sapply(ll\$date_of_onset, mkexposures)
ll\$dates_exposure <- exposures

print(ll)
```

Empirical distribution:

```incubation_period_dist <- empirical_incubation_dist(ll, date_of_onset, dates_exposure)
print(incubation_period_dist)

ggplot(incubation_period_dist, aes(incubation_period, relative_frequency)) +
geom_col()
```

Fit discrete gamma:

```fit <- fit_gamma_incubation_dist(ll, date_of_onset, dates_exposure)
print(fit)

x = c(0:10)
y = fit\$distribution\$d(x)
ggplot(data.frame(x = x, y = y), aes(x, y)) +
geom_col(data = incubation_period_dist, aes(incubation_period, relative_frequency)) +
geom_point(stat="identity", col = "red", size = 3) +
geom_line(stat="identity", col = "red")
```

Note that if the possible exposure dates are consecutive for all patients then `empirical_incubation_dist()` and `fit_gamma_incubation_dist()` can take date ranges as inputs instead of lists of individual exposure dates (see help for details).

## Try the epitrix package in your browser

Any scripts or data that you put into this service are public.

epitrix documentation built on Jan. 14, 2023, 1:16 a.m.