SIR model on graphs
Run simulations for an SIR (susceptible-infected-recovered) model, on a graph
## S3 method for class 'sir': time_bins(x, middle = TRUE)
## S3 method for class 'sir': median(x, na.rm = FALSE)
## S3 method for class 'sir': quantile(x, comp = c("NI", "NS", "NR"), prob, ...)
sir(graph, beta, gamma, no.sim = 100)
sirobject, returned by the
- Logical scalar, whether to return the middle of the time bins, or the boundaries.
- Logical scalar, whether to ignore
sirobjects do not contain any
NAvalues currently, so this argument is effectively ignored.
- Character scalar. The component to calculate the quantile of.
NIis infected agents,
NRstands for recovered.
- Numeric vector of probabilities, in [0,1], they specify the quantiles to calculate.
- The graph to run the model on. If directed, then edge directions are ignored and a warning is given.
- Non-negative scalar. The rate of infection of an individual that is susceptible and has a single infected neighbor. The infection rate of a susceptible individual with n infected neighbors is n times beta. Formally this is the rate parameter of an exponen
- Positive scalar. The rate of recovery of an infected individual. Formally, this is the rate parameter of an exponential distribution.
- Integer scalar, the number simulation runs to perform.
- Additional arguments, ignored currently.
The SIR model is a simple model from epidemiology. The individuals of the population might be in three states: susceptible, infected and recovered. Recovered people are assumed to be immune to the disease. Susceptibles become infected with a rate that depends on their number of infected neigbors. Infected people become recovered with a constant rate.
sir simulates the model.
time_bins bins the simulation steps, using the
Freedman-Diaconis heuristics to determine the bin width.
quantile calculate the median and
quantiles of the results, respectively, in bins calculated with
sirthe results are returned in an object of class
, which is a list, with one element for each simulation. Each simulation is itself a list with the following elements. They are all numeric vectors, with equal length: [object Object],[object Object],[object Object],[object Object]
time_binsreturns a numeric vector, the middle or the boundaries of the time bins, depending on the
medianreturns a list of three named numeric vectors,
NR. The names within the vectors are created from the time bins.
quantilereturns the same vector as
median(but only one, the one requested) if only one quantile is requested. If multiple quantiles are requested, then a list of these vectors is returned, one for each quantile.
Bailey, Norman T. J. (1975). The mathematical theory of infectious diseases and its applications (2nd ed.). London: Griffin.
plot.sir to conveniently plot the results
g <- sample_gnm(100, 100) sm <- sir(g, beta=5, gamma=1) plot(sm)