Makes a cross-sectional data set (age, y(t) set) and adds noise, if desired.
Usage
sim.cs(
lambda = 0.1,
n.smpl = 100,
age.rng = c(0, 20),
age.fx = NA,
antigen_isos,
n.mc = 0,
renew.params = FALSE,
add.noise = FALSE,
curve_params,
noise_limits,
format = "wide",
verbose = FALSE,
...
)
Arguments
- lambda
a
numeric()
scalar indicating the incidence rate (in events per person-years)- n.smpl
number of samples to simulate
- age.rng
age range of sampled individuals, in years
- age.fx
specify the curve parameters to use by age (does nothing at present?)
- antigen_isos
Character vector with one or more antibody names. Values must match
curve_params
.- n.mc
how many MCMC samples to use:
when
n.mc
is in1:4000
a fixed posterior sample is usedwhen
n.mc
=0
, a random sample is chosen
- renew.params
whether to generate a new parameter set for each infection
renew.params = TRUE
generates a new parameter set for each infectionrenew.params = FALSE
keeps the one selected at birth, but updates baseline y0
- add.noise
a
logical()
indicating whether to add biological and measurement noise- curve_params
a
data.frame()
containing MCMC samples of parameters from the Bayesian posterior distribution of a longitudinal decay curve model. The parameter columns must be named:antigen_iso
: acharacter()
vector indicating antigen-isotype combinationsiter
: aninteger()
vector indicating MCMC sampling iterationsy0
: baseline antibody level at $t=0$ ($y(t=0)$)y1
: antibody peak level (ELISA units)t1
: duration of infectionalpha
: antibody decay rate (1/days for the current longitudinal parameter sets)r
: shape factor of antibody decay
- noise_limits
biologic noise distribution parameters
- format
a
character()
variable, containing either:"long"
(one measurement per row) or"wide"
(one serum sample per row)
- verbose
logical: if TRUE, print verbose log information to console
- ...
Arguments passed on to
simcs.tinf
Value
a tibble::tbl_df containing simulated cross-sectional serosurvey data, with columns:
age
: age (in days)one column for each element in the
antigen_iso
input argument
Examples
# Load curve parameters
dmcmc <- load_curve_params("https://osf.io/download/rtw5k")
# Specify the antibody-isotype responses to include in analyses
antibodies <- c("HlyE_IgA", "HlyE_IgG")
# Set seed to reproduce results
set.seed(54321)
# Simulated incidence rate per person-year
lambda <- 0.2;
# Range covered in simulations
lifespan <- c(0, 10);
# Cross-sectional sample size
nrep <- 100
# Biologic noise distribution
dlims <- rbind(
"HlyE_IgA" = c(min = 0, max = 0.5),
"HlyE_IgG" = c(min = 0, max = 0.5)
)
# Generate cross-sectional data
csdata <- sim.cs(
curve_params = dmcmc,
lambda = lambda,
n.smpl = nrep,
age.rng = lifespan,
antigen_isos = antibodies,
n.mc = 0,
renew.params = TRUE,
add.noise = TRUE,
noise_limits = dlims,
format = "long"
)