conc_microsim: Concurrency Microsimulation Model for HIV-1 Transmission...

Description Usage Arguments Details Epidemiology Model Assumptions References Examples

View source: R/sim.R

Description

Simulates an HIV-1 epidemic in a population of men and women with purely heterosexual mixing under varying scenarios of sexual partnership concurrency.

Usage

1
2
3
conc_microsim(s.num.f, i.num.f, s.num.m, i.num.m, monog.f = TRUE,
  monog.m = TRUE, meandeg, part.duration, nsteps, nsims = 1,
  verbose = TRUE, updateProgress = NULL)

Arguments

s.num.f

Number of initial susceptible females in the population.

i.num.f

Number of initial infected females in the population.

s.num.m

Number of initial susceptible males in the population.

i.num.m

Number of initial infected females in the population.

monog.f

If TRUE, enforce a momentary degree constraint of monogamy for females (females not allowed concurrent partnerships).

monog.m

If TRUE, enforce a momentary degree constraint of monogamy for males (males not allowed concurrent partnerships).

meandeg

Average momentary mean degree (number of current partnerships) in the population.

part.duration

Average length of partnerships in months.

nsteps

Number of time steps to simulate the model over. This must be a positive integer.

nsims

Number of simulations to run.

verbose

If TRUE, print model progress to the console.

updateProgress

Progress function used by Shiny application.

Details

This function runs a microsimulation model of HIV-1 transmission in a purely heterosexual context to investigate how the presence or absence of relational concurrency in sexual partnerships affects the prevalence of disease prevalence at the population level.

The parameters of the model include the initial number of susceptible females and males, the initial number of infected females and males, whether males and females are allowed concurrency, the mean degree of all persons in the population, and the average duration of partnerships (in momths). As the four examples below show, all parameters except concurrency may be held constant to test the effects of concurrency.

Epidemiology

HIV infection is simulated based on a four-stage disease progression model in which persons transition from acute to latent to pre-AIDS to AIDS stages. These transitions occur at deterministic intervals based on estimates of the average time per stage.

The transmission probability to uninfected partners varies by stage of the infected partner: it is highest in the acute stage and lowest in the AIDS stage when no sexual acts occur. See the Hollingsworth reference for further details.

Model Assumptions

This model makes several simplifying assumptions about partnership formation and dissolution, such as the phenomenon of all dissolving partnerships being immediately replaced by a new partnership in the network. Additionally, the user may specify whether concurrency is allowed, but not the level of concurrency (it is calculated based on a binomial distribution with the probability equal to the mean degree parameter). Therefore, this model serves as an introduction to network modeling featured in the network class of functions in EpiModel; there the user has much more control over the network parameterization and simulation.

References

The background and details of this model are explained in a full tutorial on concurrency at https://statnet.csde.washington.edu/trac/wiki/ConcurrencyIndex.

Hollingsworth TD, Anderson RM, Fraser C. HIV-1 transmission, by stage of infection. Journal of Infectious Diseases. 2008; 198(5): 687-693.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# No concurrency model
no.conc <- conc_microsim(s.num.f = 1000, i.num.f = 50,
                         s.num.m = 1000, i.num.m = 50,
                         monog.f = TRUE, monog.m = TRUE,
                         meandeg = 0.8, part.duration = 10,
                         nsteps = 2000, nsims = 20)

# Male concurrency only model
male.conc <- conc_microsim(s.num.f = 1000, i.num.f = 50,
                           s.num.m = 1000, i.num.m = 50,
                           monog.f = TRUE, monog.m = FALSE,
                           meandeg = 0.8, part.duration = 10,
                           nsteps = 2000, nsims = 20)

# Female concurrency only model
feml.conc <- conc_microsim(s.num.f = 1000, i.num.f = 50,
                           s.num.m = 1000, i.num.m = 50,
                           monog.f = FALSE, monog.m = TRUE,
                           meandeg = 0.8, part.duration = 10,
                           nsteps = 2000, nsims = 20)

# Both sexes concurrency model
both.conc <- conc_microsim(s.num.f = 1000, i.num.f = 50,
                           s.num.m = 1000, i.num.m = 50,
                           monog.f = FALSE, monog.m = FALSE,
                           meandeg = 0.8, part.duration = 10,
                           nsteps = 2000, nsims = 20)

# Plot the results
par(mfrow = c(2,2), mar = c(3,3,2,1), mgp = c(2,1,0))
plot(no.conc, qnt.alpha = 0.5, main = "No Concurrency")
plot(male.conc, qnt.alpha = 0.5, main = "Male Concurrency")
plot(feml.conc, qnt.alpha = 0.5, main = "Female Concurrency")
plot(both.conc, qnt.alpha = 0.5, main = "Both Concurrency")

statnet/concurrency.sim documentation built on Aug. 10, 2020, 2:33 a.m.