Description Usage Arguments Details Value Examples
View source: R/sir-simulations.R
Simulate SIR data according to a chain Binomial
1 | simulate_SIR_agents(n_sims, n_time_steps, beta, gamma, init_SIR)
|
n_sims |
number of times to run simulation |
n_time_steps |
number of total time steps (will use 0 to n_time_steps -1 inclusive) |
beta |
infection parameter for SIR chain Binomial. See details |
gamma |
recovery paraemter for SIR chain Binomial. See details |
init_SIR |
vector of (S0, I0, R0) the number of agents initially in the Susceptible, Infected, and Recovered state, respectively. The sum of this will be used as the number of agents |
For each simulation i, agent A_{t,k} (the kth agent at time t) will update according to the following where the states are denoted S=0,I=1,R=2. The update follows a Bernoulli draw based on the agent's current state. Specifically,
A_{t,k}| S_{t-1}, I_{t-1} \sim ≤ft \{\begin{array}{ll} \textnormal{Bernoulli} ≤ft ( p_{t-1}\right ) & \textnormal{ if } A_{t-1,k} = 0 \\ 1 + Bernoulli(γ) & \textnormal{ if } A_{t-1,k} = 1 \\2 & \textnormal{ otherwise} \end{array} \right .
If the agent was infectious at time t=0 then tI <= 0 . If the agent never becomes infectious then tI = NA. If the agent never recovers or is recovered from time 0 on then tR = NA. Otherwise we assume the agent is susceptible.
The the output is a data.frame with columns agent_id, init_state, sim_num, tI, tR. The size is (n_agents x n_sims) x 4.
1 2 3 | sims_data <- simulate_SIR_agents(n_sims = 2, n_time_steps = 5,
beta = .5, gamma = .1, init_SIR = c(9,1,0))
dim(sims_data)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.