R/simulate_SIR_usanalysis.R
simulate_SIR_usanalysis.Rd
This function performs uncertainty and sensitivity analysis using the SIRS model.
simulate_SIR_usanalysis(
Smin = 1000,
Smax = 1000,
Imin = 10,
Imax = 10,
bmin = 0.005,
bmax = 0.01,
gmean = 0.5,
gvar = 0.01,
nmin = 0,
nmax = 0,
mmin = 0,
mmax = 0,
wmin = 0,
wmax = 0,
samples = 5,
rngseed = 100,
tstart = 0,
tfinal = 500,
dt = 0.1
)
: lower bound for initial susceptible : numeric
: upper bound for initial susceptible : numeric
: lower bound for initial infected : numeric
: upper bound for initial infected : numeric
: lower bound for infection rate : numeric
: upper bound for infection rate : numeric
: mean for recovery rate : numeric
: variance for recovery rate : numeric
: lower bound for birth rate : numeric
: upper bound for birth rate : numeric
: lower bound for death rate : numeric
: upper bound for death rate : numeric
: lower bound for waning immunity rate : numeric
: upper bound for waning immunity rate : numeric
: number of LHS samples to run : numeric
: seed for random number generator : numeric
: Start time of simulation : numeric
: Final time of simulation : numeric
: times for which result is returned : numeric
The function returns the output as a list. The list element 'dat' contains a data frame. The simulation returns for each parameter sample the peak and final value for I and final for S. Also returned are all parameter values as individual columns and an indicator stating if steady state was reached. A final variable 'steady' is returned for each simulation. It is TRUE if the simulation did reach steady state, otherwise FALSE.
The SIRS model with demographics is simulated for different parameter values. The user provides ranges for the initial conditions and parameter values and the number of samples. The function does Latin Hypercube Sampling (LHS) of the parameters and runs the model for each sample. Distribution for all parameters is assumed to be uniform between the min and max values. The only exception is the recovery parameter, which (for illustrative purposes) is assumed to be gamma distributed with the specified mean and variance. This code is part of the DSAIDE R package. For additional model details, see the corresponding app in the DSAIDE package.
This function does not perform any error checking. So if you try to do something nonsensical (e.g. specify negative parameter values or fractions > 1), the code will likely abort with an error message.
See the Shiny app documentation corresponding to this simulator function for more details on this model.
# To run the simulation with default parameters just call the function:
if (FALSE) result <- simulate_SIR_usanalysis()
# To choose parameter values other than the standard one, specify them, like such:
result <- simulate_SIR_usanalysis(gmean = 2, gvar = 0.2, samples = 5, tfinal = 50)
# You should then use the simulation result returned from the function, like this:
plot(result$dat[,"g"],result$dat[,"Ipeak"],xlab='values for g',ylab='Peak Bacteria',type='l')