Learn R Programming

swash (version 1.2.1)

logistic_growth: Logistic Growth Model for Epidemic Data

Description

Estimation of logistic growth models from cumulative infections data, linearized OLS and/or NLS

Usage

logistic_growth(
  y, 
  t, 
  S = NULL,
  S_start = NULL, 
  S_end = NULL, 
  S_iterations = 10, 
  S_start_est_method = "bisect", 
  seq_by = 10,
  nls = TRUE
  )

Value

object of class loggrowth-class

Arguments

y

numeric vector with cumulative infections data over time

t

vector of class numeric or Date with time points or dates

S

Saturation value for the model

S_start

Start value of the saturation value for estimation

S_end

End value of the saturation value for estimation

S_iterations

Number of iterations for saturation value search

S_start_est_method

Method for saturation value search, either "bisect" or "trial_and_error"

seq_by

No of segments for the "trial_and_error" estimation of the saturation value

nls

Nonlinear estimation? TRUE or FALSE

Author

Thomas Wieland

Details

This function allows the estimation of a logistic growth model. The user must specify the dependent variable (cumulative infections) and the time variable (time counter or date values). The estimation is performed using a linearized model as an OLS estimator and as an NLS estimator. For the former, the saturation value can either be specified by the user or found using a search algorithm. The parameters from the OLS fit are used as starting values for the NLS estimation.

References

Wieland T (2020) Flatten the Curve! Modeling SARS-CoV-2/COVID-19 Growth in Germany at the County Level. REGION 7(2), 43–83. tools:::Rd_expr_doi("https://doi.org/10.18335/region.v7i2.324")

See Also

loggrowth-class

Examples

Run this code
data(COVID19Cases_geoRegion)
# Get SWISS COVID19 cases at NUTS 3 level

COVID19Cases_geoRegion <- 
  COVID19Cases_geoRegion[!COVID19Cases_geoRegion$geoRegion %in% c("CH", "CHFL"),]
# Exclude CH = Switzerland total and CHFL = Switzerland and Liechtenstein total

COVID19Cases_geoRegion <- 
  COVID19Cases_geoRegion[COVID19Cases_geoRegion$datum <= "2020-05-31",]
# Extract first COVID-19 wave

COVID19Cases_BS <-
  COVID19Cases_geoRegion[(COVID19Cases_geoRegion$geoRegion == "ZH")
                         & (COVID19Cases_geoRegion$sumTotal > 0),]
# COVID cases for Zurich

loggrowth_BS <- logistic_growth (
  y = as.numeric(COVID19Cases_BS$sumTotal), 
  t = COVID19Cases_BS$datum, 
  S = 5557,
  S_start = NULL, 
  S_end = NULL, 
  S_iterations = 10, 
  S_start_est_method = "bisect", 
  seq_by = 10,
  nls = TRUE
)
# Logistic growth model with stated saturation value

summary(loggrowth_BS)
# Summary of logistic growth model

plot(loggrowth_BS)
# Plot of logistic growth model

Run the code above in your browser using DataLab