simulationSIRS: Simulating the SIRS model in a network

View source: R/simulationSIRS.R

simulationSIRSR Documentation

Simulating the SIRS model in a network

Description

A function to run the simulation of disease spread in a network using the SIRS (Susceptible-Infected-Recovered-Susceptible) model.

Usage

simulationSIRS(A, pspread, tSim, I, tImin, tImax, R, tRmin, tRmax, Control)

Arguments

A

An adjacency matrix

pspread

Probability of disease spread from an infected to a susceptible node

tSim

Simulation time

I

Vector of infected nodes (initial condition)

tImin

Minimum time a node remains infected

tImax

Maximum time a node remains infected

R

Vector of recovered nodes (initial condition)

tRmin

Minimum time a node remains immune

tRmax

Maximum time a node remains immune

Control

Vector of nodes under a control strategy

Details

This function runs the simulation of disease spread in a network using the SIRS model. For each time step, the vectors of infected, susceptible and recovered nodes are updated, considering that there is a probability pspread of disease spread. Infected nodes remain infected during a time randomly sampled between tImin and tImax. Recovered nodes remain immune during a time randomly sampled between tRmin and tRmax. Nodes under a control strategy (Control) are not susceptible to infection.

Value

A list of

M_Sim_I

a matrix of infected nodes for each time step.

M_Sim_R

a matrix of recovered nodes for each time step.

References

[1] Ossada R, Grisi-Filho JHH, Ferreira F, Amaku M (2013). "Modeling the Dynamics of Infectious Diseases in Different Scale-Free Networks with the Same Degree Distribution." Advanced Studies in Theoretical Physics, 7, 759-771. doi: 10.12988/astp.2013.3674

[2] Ossada R (2015). "Modelagem de Medidas de Controle em Redes de Movimentacao de Animais." PhD Thesis. Sao Paulo, School of Veterinary Medicine, University of Sao Paulo. doi: 10.11606/T.10.2015.tde-06112015-111048

Examples

# Generate an arbitrary 200 by 200 adjacency matrix with zeros and ones
# Remove loops
A <- matrix(rbinom(200 * 200, 1, 0.1), ncol = 200, nrow = 200)
diag(A) <- 0

# Setting the parameters
pspread <- 0.1
tImin <- 5
tImax <- 8
tRmin <- 1
tRmax <- 10
tSim <- 100

# Setting the initial conditions for infected, recovered and controlled nodes
num_infected <- 2 # initial number of infected nodes
I <- rep(x = 0, times = nrow(A))
I[1:num_infected] <- 1
I <- sample(I)
R <- rep(x = 0, times = nrow(A))
Control <- rep(x = 0, times = nrow(A))

# Run the simulation
sim <- simulationSIRS(A = A, pspread = pspread, tSim = tSim,
                      I = I, tImin = tImin, tImax = tImax, 
                      R = R, tRmin = tRmin, tRmax = tRmax, Control = Control)

# Plot the prevalence over time
plot(colMeans(sim[[1]]>0), xlab = "Time", ylab = "Prevalence")
                                                   

leb-fmvz-usp/epinemo documentation built on Nov. 27, 2022, 10:58 p.m.